From 6fba2d09aa3d8aa24c58140b9495d797e2a85d0b Mon Sep 17 00:00:00 2001 From: Jesse Snyder Date: Mon, 27 Jan 2025 16:57:02 -0700 Subject: [PATCH] contrib smart-order-router --- .../types/other/IApproveAndCall.d.ts | 437 ++++ .../types/other/IImmutableState.d.ts | 114 + .../types/other/IMixedRouteQuoterV1.d.ts | 242 +++ .../types/other/IMulticallExtended.d.ts | 174 ++ .../types/other/IOracleSlippage.d.ts | 166 ++ .../other/IPeripheryPaymentsExtended.d.ts | 303 +++ .../IPeripheryPaymentsWithFeeExtended.d.ts | 482 +++++ .../types/other/IQuoter.d.ts | 269 +++ .../types/other/IQuoterV2.d.ts | 333 +++ .../types/other/ISwapRouter02.d.ts | 1228 +++++++++++ .../types/other/ITokenValidator.d.ts | 168 ++ .../types/other/IV2SwapRouter.d.ts | 181 ++ .../types/other/IV3SwapRouter.d.ts | 425 ++++ .../smart-order-router/types/other/IWETH.d.ts | 169 ++ .../types/other/MixedRouteQuoterV1.d.ts | 325 +++ .../types/other/Quoter.d.ts | 339 +++ .../types/other/QuoterV2.d.ts | 403 ++++ .../types/other/SwapRouter02.d.ts | 1768 ++++++++++++++++ .../types/other/TokenValidator.d.ts | 249 +++ .../types/other/V2SwapRouter.d.ts | 637 ++++++ .../types/other/V3SwapRouter.d.ts | 933 ++++++++ .../types/other/common.d.ts | 35 + .../factories/IApproveAndCall__factory.ts | 228 ++ .../factories/IImmutableState__factory.ts | 52 + .../factories/IMixedRouteQuoterV1__factory.ts | 164 ++ .../factories/IMulticallExtended__factory.ts | 93 + .../factories/IOracleSlippage__factory.ts | 77 + .../IPeripheryPaymentsExtended__factory.ts | 140 ++ ...ripheryPaymentsWithFeeExtended__factory.ts | 254 +++ .../other/factories/IQuoterV2__factory.ts | 223 ++ .../types/other/factories/IQuoter__factory.ts | 149 ++ .../other/factories/ISwapRouter02__factory.ts | 729 +++++++ .../factories/ITokenValidator__factory.ts | 84 + .../other/factories/IV2SwapRouter__factory.ts | 91 + .../other/factories/IV3SwapRouter__factory.ts | 240 +++ .../types/other/factories/IWETH__factory.ts | 64 + .../factories/MixedRouteQuoterV1__factory.ts | 293 +++ .../other/factories/QuoterV2__factory.ts | 322 +++ .../types/other/factories/Quoter__factory.ts | 245 +++ .../other/factories/SwapRouter02__factory.ts | 1134 ++++++++++ .../factories/TokenValidator__factory.ts | 196 ++ .../other/factories/V2SwapRouter__factory.ts | 369 ++++ .../other/factories/V3SwapRouter__factory.ts | 543 +++++ .../smart-order-router/types/other/index.ts | 46 + .../types/v2/IUniswapV2Callee.d.ts | 132 ++ .../types/v2/IUniswapV2ERC20.d.ts | 486 +++++ .../types/v2/IUniswapV2Factory.d.ts | 317 +++ .../types/v2/IUniswapV2Migrator.d.ts | 134 ++ .../types/v2/IUniswapV2Pair.d.ts | 957 +++++++++ .../types/v2/IUniswapV2Router01.d.ts | 1119 ++++++++++ .../types/v2/IUniswapV2Router02.d.ts | 1432 +++++++++++++ .../types/v2/UniswapV2ERC20.d.ts | 486 +++++ .../types/v2/UniswapV2Factory.d.ts | 317 +++ .../types/v2/UniswapV2Migrator.d.ts | 134 ++ .../types/v2/UniswapV2Pair.d.ts | 957 +++++++++ .../types/v2/UniswapV2Router01.d.ts | 1119 ++++++++++ .../types/v2/UniswapV2Router02.d.ts | 1432 +++++++++++++ .../smart-order-router/types/v2/common.d.ts | 35 + .../v2/factories/IUniswapV2Callee__factory.ts | 54 + .../v2/factories/IUniswapV2ERC20__factory.ts | 362 ++++ .../factories/IUniswapV2Factory__factory.ts | 189 ++ .../factories/IUniswapV2Migrator__factory.ts | 59 + .../v2/factories/IUniswapV2Pair__factory.ts | 677 ++++++ .../factories/IUniswapV2Router01__factory.ts | 775 +++++++ .../factories/IUniswapV2Router02__factory.ts | 977 +++++++++ .../v2/factories/UniswapV2ERC20__factory.ts | 398 ++++ .../v2/factories/UniswapV2Factory__factory.ts | 252 +++ .../factories/UniswapV2Migrator__factory.ts | 117 + .../v2/factories/UniswapV2Pair__factory.ts | 764 +++++++ .../factories/UniswapV2Router01__factory.ts | 833 ++++++++ .../factories/UniswapV2Router02__factory.ts | 1035 +++++++++ .../smart-order-router/types/v2/index.ts | 30 + .../smart-order-router/types/v3/IERC1271.d.ts | 121 ++ .../types/v3/IERC20Metadata.d.ts | 363 ++++ .../types/v3/IERC20Minimal.d.ts | 305 +++ .../types/v3/IERC20PermitAllowed.d.ts | 158 ++ .../types/v3/IERC721Permit.d.ts | 621 ++++++ .../types/v3/IMulticall.d.ts | 111 + .../types/v3/INonfungiblePositionManager.d.ts | 1538 ++++++++++++++ .../INonfungibleTokenPositionDescriptor.d.ts | 119 ++ .../types/v3/IPeripheryImmutableState.d.ts | 108 + .../types/v3/IPeripheryPayments.d.ts | 184 ++ .../types/v3/IPeripheryPaymentsWithFee.d.ts | 287 +++ .../types/v3/IPoolInitializer.d.ts | 132 ++ .../smart-order-router/types/v3/IQuoter.d.ts | 269 +++ .../types/v3/IQuoterV2.d.ts | 333 +++ .../types/v3/ISelfPermit.d.ts | 344 +++ .../types/v3/ISwapRouter.d.ts | 449 ++++ .../types/v3/ITickLens.d.ts | 147 ++ .../types/v3/IUniswapV3Factory.d.ts | 362 ++++ .../types/v3/IUniswapV3FlashCallback.d.ts | 127 ++ .../types/v3/IUniswapV3MintCallback.d.ts | 127 ++ .../types/v3/IUniswapV3Pool.d.ts | 1436 +++++++++++++ .../types/v3/IUniswapV3PoolActions.d.ts | 396 ++++ .../types/v3/IUniswapV3PoolDeployer.d.ts | 128 ++ .../types/v3/IUniswapV3PoolDerivedState.d.ts | 185 ++ .../types/v3/IUniswapV3PoolEvents.d.ts | 482 +++++ .../types/v3/IUniswapV3PoolImmutables.d.ts | 174 ++ .../types/v3/IUniswapV3PoolOwnerActions.d.ts | 168 ++ .../types/v3/IUniswapV3PoolState.d.ts | 438 ++++ .../types/v3/IUniswapV3SwapCallback.d.ts | 127 ++ .../types/v3/IV3Migrator.d.ts | 539 +++++ .../smart-order-router/types/v3/IWETH9.d.ts | 374 ++++ .../types/v3/NFTDescriptor.d.ts | 208 ++ .../types/v3/NonfungiblePositionManager.d.ts | 1881 +++++++++++++++++ .../NonfungibleTokenPositionDescriptor.d.ts | 254 +++ .../types/v3/PairFlash.d.ts | 352 +++ .../smart-order-router/types/v3/Quoter.d.ts | 339 +++ .../smart-order-router/types/v3/QuoterV2.d.ts | 403 ++++ .../types/v3/SwapRouter.d.ts | 968 +++++++++ .../smart-order-router/types/v3/TickLens.d.ts | 147 ++ .../types/v3/UniswapInterfaceMulticall.d.ts | 178 ++ .../types/v3/UniswapV3Factory.d.ts | 408 ++++ .../types/v3/UniswapV3Pool.d.ts | 1433 +++++++++++++ .../types/v3/V3Migrator.d.ts | 586 +++++ .../smart-order-router/types/v3/common.d.ts | 35 + .../types/v3/factories/IERC1271__factory.ts | 47 + .../v3/factories/IERC20Metadata__factory.ts | 248 +++ .../v3/factories/IERC20Minimal__factory.ts | 193 ++ .../factories/IERC20PermitAllowed__factory.ts | 74 + .../v3/factories/IERC721Permit__factory.ts | 372 ++++ .../types/v3/factories/IMulticall__factory.ts | 42 + .../INonfungiblePositionManager__factory.ts | 1019 +++++++++ ...ungibleTokenPositionDescriptor__factory.ts | 56 + .../IPeripheryImmutableState__factory.ts | 56 + .../IPeripheryPaymentsWithFee__factory.ts | 139 ++ .../factories/IPeripheryPayments__factory.ts | 74 + .../v3/factories/IPoolInitializer__factory.ts | 60 + .../types/v3/factories/IQuoterV2__factory.ts | 223 ++ .../types/v3/factories/IQuoter__factory.ts | 149 ++ .../v3/factories/ISelfPermit__factory.ts | 175 ++ .../v3/factories/ISwapRouter__factory.ts | 260 +++ .../types/v3/factories/ITickLens__factory.ts | 64 + .../factories/IUniswapV3Factory__factory.ts | 222 ++ .../IUniswapV3FlashCallback__factory.ts | 53 + .../IUniswapV3MintCallback__factory.ts | 53 + .../IUniswapV3PoolActions__factory.ts | 250 +++ .../IUniswapV3PoolDeployer__factory.ts | 63 + .../IUniswapV3PoolDerivedState__factory.ts | 88 + .../IUniswapV3PoolEvents__factory.ts | 357 ++++ .../IUniswapV3PoolImmutables__factory.ts | 108 + .../IUniswapV3PoolOwnerActions__factory.ts | 82 + .../factories/IUniswapV3PoolState__factory.ts | 272 +++ .../v3/factories/IUniswapV3Pool__factory.ts | 1007 +++++++++ .../IUniswapV3SwapCallback__factory.ts | 53 + .../v3/factories/IV3Migrator__factory.ts | 308 +++ .../types/v3/factories/IWETH9__factory.ts | 223 ++ .../v3/factories/NFTDescriptor__factory.ts | 144 ++ .../NonfungiblePositionManager__factory.ts | 1297 ++++++++++++ ...ungibleTokenPositionDescriptor__factory.ts | 256 +++ .../types/v3/factories/PairFlash__factory.ts | 254 +++ .../types/v3/factories/QuoterV2__factory.ts | 322 +++ .../types/v3/factories/Quoter__factory.ts | 245 +++ .../types/v3/factories/SwapRouter__factory.ts | 624 ++++++ .../types/v3/factories/TickLens__factory.ts | 94 + .../UniswapInterfaceMulticall__factory.ts | 150 ++ .../v3/factories/UniswapV3Factory__factory.ts | 290 +++ .../v3/factories/UniswapV3Pool__factory.ts | 1039 +++++++++ .../types/v3/factories/V3Migrator__factory.ts | 418 ++++ .../smart-order-router/types/v3/index.ts | 90 + 160 files changed, 60152 insertions(+) create mode 100644 src/contrib/smart-order-router/types/other/IApproveAndCall.d.ts create mode 100644 src/contrib/smart-order-router/types/other/IImmutableState.d.ts create mode 100644 src/contrib/smart-order-router/types/other/IMixedRouteQuoterV1.d.ts create mode 100644 src/contrib/smart-order-router/types/other/IMulticallExtended.d.ts create mode 100644 src/contrib/smart-order-router/types/other/IOracleSlippage.d.ts create mode 100644 src/contrib/smart-order-router/types/other/IPeripheryPaymentsExtended.d.ts create mode 100644 src/contrib/smart-order-router/types/other/IPeripheryPaymentsWithFeeExtended.d.ts create mode 100644 src/contrib/smart-order-router/types/other/IQuoter.d.ts create mode 100644 src/contrib/smart-order-router/types/other/IQuoterV2.d.ts create mode 100644 src/contrib/smart-order-router/types/other/ISwapRouter02.d.ts create mode 100644 src/contrib/smart-order-router/types/other/ITokenValidator.d.ts create mode 100644 src/contrib/smart-order-router/types/other/IV2SwapRouter.d.ts create mode 100644 src/contrib/smart-order-router/types/other/IV3SwapRouter.d.ts create mode 100644 src/contrib/smart-order-router/types/other/IWETH.d.ts create mode 100644 src/contrib/smart-order-router/types/other/MixedRouteQuoterV1.d.ts create mode 100644 src/contrib/smart-order-router/types/other/Quoter.d.ts create mode 100644 src/contrib/smart-order-router/types/other/QuoterV2.d.ts create mode 100644 src/contrib/smart-order-router/types/other/SwapRouter02.d.ts create mode 100644 src/contrib/smart-order-router/types/other/TokenValidator.d.ts create mode 100644 src/contrib/smart-order-router/types/other/V2SwapRouter.d.ts create mode 100644 src/contrib/smart-order-router/types/other/V3SwapRouter.d.ts create mode 100644 src/contrib/smart-order-router/types/other/common.d.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/IApproveAndCall__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/IImmutableState__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/IMixedRouteQuoterV1__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/IMulticallExtended__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/IOracleSlippage__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/IPeripheryPaymentsExtended__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/IPeripheryPaymentsWithFeeExtended__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/IQuoterV2__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/IQuoter__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/ISwapRouter02__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/ITokenValidator__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/IV2SwapRouter__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/IV3SwapRouter__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/IWETH__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/MixedRouteQuoterV1__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/QuoterV2__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/Quoter__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/SwapRouter02__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/TokenValidator__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/V2SwapRouter__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/factories/V3SwapRouter__factory.ts create mode 100644 src/contrib/smart-order-router/types/other/index.ts create mode 100644 src/contrib/smart-order-router/types/v2/IUniswapV2Callee.d.ts create mode 100644 src/contrib/smart-order-router/types/v2/IUniswapV2ERC20.d.ts create mode 100644 src/contrib/smart-order-router/types/v2/IUniswapV2Factory.d.ts create mode 100644 src/contrib/smart-order-router/types/v2/IUniswapV2Migrator.d.ts create mode 100644 src/contrib/smart-order-router/types/v2/IUniswapV2Pair.d.ts create mode 100644 src/contrib/smart-order-router/types/v2/IUniswapV2Router01.d.ts create mode 100644 src/contrib/smart-order-router/types/v2/IUniswapV2Router02.d.ts create mode 100644 src/contrib/smart-order-router/types/v2/UniswapV2ERC20.d.ts create mode 100644 src/contrib/smart-order-router/types/v2/UniswapV2Factory.d.ts create mode 100644 src/contrib/smart-order-router/types/v2/UniswapV2Migrator.d.ts create mode 100644 src/contrib/smart-order-router/types/v2/UniswapV2Pair.d.ts create mode 100644 src/contrib/smart-order-router/types/v2/UniswapV2Router01.d.ts create mode 100644 src/contrib/smart-order-router/types/v2/UniswapV2Router02.d.ts create mode 100644 src/contrib/smart-order-router/types/v2/common.d.ts create mode 100644 src/contrib/smart-order-router/types/v2/factories/IUniswapV2Callee__factory.ts create mode 100644 src/contrib/smart-order-router/types/v2/factories/IUniswapV2ERC20__factory.ts create mode 100644 src/contrib/smart-order-router/types/v2/factories/IUniswapV2Factory__factory.ts create mode 100644 src/contrib/smart-order-router/types/v2/factories/IUniswapV2Migrator__factory.ts create mode 100644 src/contrib/smart-order-router/types/v2/factories/IUniswapV2Pair__factory.ts create mode 100644 src/contrib/smart-order-router/types/v2/factories/IUniswapV2Router01__factory.ts create mode 100644 src/contrib/smart-order-router/types/v2/factories/IUniswapV2Router02__factory.ts create mode 100644 src/contrib/smart-order-router/types/v2/factories/UniswapV2ERC20__factory.ts create mode 100644 src/contrib/smart-order-router/types/v2/factories/UniswapV2Factory__factory.ts create mode 100644 src/contrib/smart-order-router/types/v2/factories/UniswapV2Migrator__factory.ts create mode 100644 src/contrib/smart-order-router/types/v2/factories/UniswapV2Pair__factory.ts create mode 100644 src/contrib/smart-order-router/types/v2/factories/UniswapV2Router01__factory.ts create mode 100644 src/contrib/smart-order-router/types/v2/factories/UniswapV2Router02__factory.ts create mode 100644 src/contrib/smart-order-router/types/v2/index.ts create mode 100644 src/contrib/smart-order-router/types/v3/IERC1271.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IERC20Metadata.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IERC20Minimal.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IERC20PermitAllowed.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IERC721Permit.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IMulticall.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/INonfungiblePositionManager.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/INonfungibleTokenPositionDescriptor.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IPeripheryImmutableState.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IPeripheryPayments.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IPeripheryPaymentsWithFee.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IPoolInitializer.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IQuoter.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IQuoterV2.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/ISelfPermit.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/ISwapRouter.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/ITickLens.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IUniswapV3Factory.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IUniswapV3FlashCallback.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IUniswapV3MintCallback.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IUniswapV3Pool.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IUniswapV3PoolActions.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IUniswapV3PoolDeployer.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IUniswapV3PoolDerivedState.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IUniswapV3PoolEvents.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IUniswapV3PoolImmutables.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IUniswapV3PoolOwnerActions.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IUniswapV3PoolState.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IUniswapV3SwapCallback.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IV3Migrator.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/IWETH9.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/NFTDescriptor.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/NonfungiblePositionManager.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/NonfungibleTokenPositionDescriptor.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/PairFlash.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/Quoter.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/QuoterV2.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/SwapRouter.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/TickLens.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/UniswapInterfaceMulticall.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/UniswapV3Factory.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/UniswapV3Pool.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/V3Migrator.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/common.d.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IERC1271__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IERC20Metadata__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IERC20Minimal__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IERC20PermitAllowed__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IERC721Permit__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IMulticall__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/INonfungiblePositionManager__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/INonfungibleTokenPositionDescriptor__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IPeripheryImmutableState__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IPeripheryPaymentsWithFee__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IPeripheryPayments__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IPoolInitializer__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IQuoterV2__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IQuoter__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/ISelfPermit__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/ISwapRouter__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/ITickLens__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IUniswapV3Factory__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IUniswapV3FlashCallback__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IUniswapV3MintCallback__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolActions__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolDeployer__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolDerivedState__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolEvents__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolImmutables__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolOwnerActions__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolState__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IUniswapV3Pool__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IUniswapV3SwapCallback__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IV3Migrator__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/IWETH9__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/NFTDescriptor__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/NonfungiblePositionManager__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/NonfungibleTokenPositionDescriptor__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/PairFlash__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/QuoterV2__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/Quoter__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/SwapRouter__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/TickLens__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/UniswapInterfaceMulticall__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/UniswapV3Factory__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/UniswapV3Pool__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/factories/V3Migrator__factory.ts create mode 100644 src/contrib/smart-order-router/types/v3/index.ts diff --git a/src/contrib/smart-order-router/types/other/IApproveAndCall.d.ts b/src/contrib/smart-order-router/types/other/IApproveAndCall.d.ts new file mode 100644 index 0000000..9d49da2 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/IApproveAndCall.d.ts @@ -0,0 +1,437 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IApproveAndCallInterface extends ethers.utils.Interface { + functions: { + "approveMax(address)": FunctionFragment; + "approveMaxMinusOne(address)": FunctionFragment; + "approveZeroThenMax(address)": FunctionFragment; + "approveZeroThenMaxMinusOne(address)": FunctionFragment; + "callPositionManager(bytes)": FunctionFragment; + "getApprovalType(address,uint256)": FunctionFragment; + "increaseLiquidity((address,address,uint256,uint256,uint256))": FunctionFragment; + "mint((address,address,uint24,int24,int24,uint256,uint256,address))": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "approveMax", values: [string]): string; + encodeFunctionData( + functionFragment: "approveMaxMinusOne", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "approveZeroThenMax", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "approveZeroThenMaxMinusOne", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "callPositionManager", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "getApprovalType", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "increaseLiquidity", + values: [ + { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [ + { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + } + ] + ): string; + + decodeFunctionResult(functionFragment: "approveMax", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "approveMaxMinusOne", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "approveZeroThenMax", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "approveZeroThenMaxMinusOne", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "callPositionManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getApprovalType", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "increaseLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + + events: {}; +} + +export class IApproveAndCall extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IApproveAndCallInterface; + + functions: { + approveMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + approveMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + approveMax(token: string, overrides?: CallOverrides): Promise; + + approveMaxMinusOne(token: string, overrides?: CallOverrides): Promise; + + approveZeroThenMax(token: string, overrides?: CallOverrides): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: CallOverrides + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + approveMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + approveMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/IImmutableState.d.ts b/src/contrib/smart-order-router/types/other/IImmutableState.d.ts new file mode 100644 index 0000000..558fecd --- /dev/null +++ b/src/contrib/smart-order-router/types/other/IImmutableState.d.ts @@ -0,0 +1,114 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IImmutableStateInterface extends ethers.utils.Interface { + functions: { + "factoryV2()": FunctionFragment; + "positionManager()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "factoryV2", values?: undefined): string; + encodeFunctionData( + functionFragment: "positionManager", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "factoryV2", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "positionManager", + data: BytesLike + ): Result; + + events: {}; +} + +export class IImmutableState extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IImmutableStateInterface; + + functions: { + factoryV2(overrides?: CallOverrides): Promise<[string]>; + + positionManager(overrides?: CallOverrides): Promise<[string]>; + }; + + factoryV2(overrides?: CallOverrides): Promise; + + positionManager(overrides?: CallOverrides): Promise; + + callStatic: { + factoryV2(overrides?: CallOverrides): Promise; + + positionManager(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + factoryV2(overrides?: CallOverrides): Promise; + + positionManager(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + factoryV2(overrides?: CallOverrides): Promise; + + positionManager(overrides?: CallOverrides): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/IMixedRouteQuoterV1.d.ts b/src/contrib/smart-order-router/types/other/IMixedRouteQuoterV1.d.ts new file mode 100644 index 0000000..e0e5996 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/IMixedRouteQuoterV1.d.ts @@ -0,0 +1,242 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IMixedRouteQuoterV1Interface extends ethers.utils.Interface { + functions: { + "quoteExactInput(bytes,uint256)": FunctionFragment; + "quoteExactInputSingleV2((address,address,uint256))": FunctionFragment; + "quoteExactInputSingleV3((address,address,uint256,uint24,uint160))": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "quoteExactInput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactInputSingleV2", + values: [{ tokenIn: string; tokenOut: string; amountIn: BigNumberish }] + ): string; + encodeFunctionData( + functionFragment: "quoteExactInputSingleV3", + values: [ + { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + + decodeFunctionResult( + functionFragment: "quoteExactInput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactInputSingleV2", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactInputSingleV3", + data: BytesLike + ): Result; + + events: {}; +} + +export class IMixedRouteQuoterV1 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IMixedRouteQuoterV1Interface; + + functions: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingleV2( + params: { tokenIn: string; tokenOut: string; amountIn: BigNumberish }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingleV3( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingleV2( + params: { tokenIn: string; tokenOut: string; amountIn: BigNumberish }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingleV3( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber[], number[], BigNumber] & { + amountOut: BigNumber; + v3SqrtPriceX96AfterList: BigNumber[]; + v3InitializedTicksCrossedList: number[]; + v3SwapGasEstimate: BigNumber; + } + >; + + quoteExactInputSingleV2( + params: { tokenIn: string; tokenOut: string; amountIn: BigNumberish }, + overrides?: CallOverrides + ): Promise; + + quoteExactInputSingleV3( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number, BigNumber] & { + amountOut: BigNumber; + sqrtPriceX96After: BigNumber; + initializedTicksCrossed: number; + gasEstimate: BigNumber; + } + >; + }; + + filters: {}; + + estimateGas: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingleV2( + params: { tokenIn: string; tokenOut: string; amountIn: BigNumberish }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingleV3( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingleV2( + params: { tokenIn: string; tokenOut: string; amountIn: BigNumberish }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingleV3( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/IMulticallExtended.d.ts b/src/contrib/smart-order-router/types/other/IMulticallExtended.d.ts new file mode 100644 index 0000000..47849d7 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/IMulticallExtended.d.ts @@ -0,0 +1,174 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IMulticallExtendedInterface extends ethers.utils.Interface { + functions: { + "multicall(bytes32,bytes[])": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "multicall", + values: [BytesLike, BytesLike[]] + ): string; + + decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result; + + events: {}; +} + +export class IMulticallExtended extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IMulticallExtendedInterface; + + functions: { + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/IOracleSlippage.d.ts b/src/contrib/smart-order-router/types/other/IOracleSlippage.d.ts new file mode 100644 index 0000000..8840ce9 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/IOracleSlippage.d.ts @@ -0,0 +1,166 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IOracleSlippageInterface extends ethers.utils.Interface { + functions: { + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "checkOracleSlippage", + values: [BytesLike[], BigNumberish[], BigNumberish, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "checkOracleSlippage", + data: BytesLike + ): Result; + + events: {}; +} + +export class IOracleSlippage extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IOracleSlippageInterface; + + functions: { + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise<[void]>; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise<[void]>; + }; + + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + callStatic: { + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/IPeripheryPaymentsExtended.d.ts b/src/contrib/smart-order-router/types/other/IPeripheryPaymentsExtended.d.ts new file mode 100644 index 0000000..5f2de8e --- /dev/null +++ b/src/contrib/smart-order-router/types/other/IPeripheryPaymentsExtended.d.ts @@ -0,0 +1,303 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IPeripheryPaymentsExtendedInterface extends ethers.utils.Interface { + functions: { + "pull(address,uint256)": FunctionFragment; + "refundETH()": FunctionFragment; + "sweepToken(address,uint256,address)": FunctionFragment; + "unwrapWETH9(uint256,address)": FunctionFragment; + "wrapETH(uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "pull", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "refundETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "sweepToken", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "wrapETH", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "pull", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "refundETH", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sweepToken", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "wrapETH", data: BytesLike): Result; + + events: {}; +} + +export class IPeripheryPaymentsExtended extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IPeripheryPaymentsExtendedInterface; + + functions: { + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + pull( + token: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + refundETH(overrides?: CallOverrides): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: CallOverrides + ): Promise; + + wrapETH(value: BigNumberish, overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/IPeripheryPaymentsWithFeeExtended.d.ts b/src/contrib/smart-order-router/types/other/IPeripheryPaymentsWithFeeExtended.d.ts new file mode 100644 index 0000000..e842a2f --- /dev/null +++ b/src/contrib/smart-order-router/types/other/IPeripheryPaymentsWithFeeExtended.d.ts @@ -0,0 +1,482 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IPeripheryPaymentsWithFeeExtendedInterface + extends ethers.utils.Interface { + functions: { + "pull(address,uint256)": FunctionFragment; + "refundETH()": FunctionFragment; + "sweepToken(address,uint256,address)": FunctionFragment; + "sweepTokenWithFee(address,uint256,uint256,address)": FunctionFragment; + "unwrapWETH9(uint256,address)": FunctionFragment; + "unwrapWETH9WithFee(uint256,address,uint256,address)": FunctionFragment; + "wrapETH(uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "pull", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "refundETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "sweepToken", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "sweepTokenWithFee", + values: [string, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9WithFee", + values: [BigNumberish, string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "wrapETH", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "pull", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "refundETH", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sweepToken", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "sweepTokenWithFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9WithFee", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "wrapETH", data: BytesLike): Result; + + events: {}; +} + +export class IPeripheryPaymentsWithFeeExtended extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IPeripheryPaymentsWithFeeExtendedInterface; + + functions: { + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + pull( + token: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + refundETH(overrides?: CallOverrides): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + wrapETH(value: BigNumberish, overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/IQuoter.d.ts b/src/contrib/smart-order-router/types/other/IQuoter.d.ts new file mode 100644 index 0000000..da6c529 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/IQuoter.d.ts @@ -0,0 +1,269 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IQuoterInterface extends ethers.utils.Interface { + functions: { + "quoteExactInput(bytes,uint256)": FunctionFragment; + "quoteExactInputSingle(address,address,uint24,uint256,uint160)": FunctionFragment; + "quoteExactOutput(bytes,uint256)": FunctionFragment; + "quoteExactOutputSingle(address,address,uint24,uint256,uint160)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "quoteExactInput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactInputSingle", + values: [string, string, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutputSingle", + values: [string, string, BigNumberish, BigNumberish, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "quoteExactInput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutputSingle", + data: BytesLike + ): Result; + + events: {}; +} + +export class IQuoter extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IQuoterInterface; + + functions: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: CallOverrides + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/IQuoterV2.d.ts b/src/contrib/smart-order-router/types/other/IQuoterV2.d.ts new file mode 100644 index 0000000..55da86a --- /dev/null +++ b/src/contrib/smart-order-router/types/other/IQuoterV2.d.ts @@ -0,0 +1,333 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IQuoterV2Interface extends ethers.utils.Interface { + functions: { + "quoteExactInput(bytes,uint256)": FunctionFragment; + "quoteExactInputSingle((address,address,uint256,uint24,uint160))": FunctionFragment; + "quoteExactOutput(bytes,uint256)": FunctionFragment; + "quoteExactOutputSingle((address,address,uint256,uint24,uint160))": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "quoteExactInput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactInputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + + decodeFunctionResult( + functionFragment: "quoteExactInput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutputSingle", + data: BytesLike + ): Result; + + events: {}; +} + +export class IQuoterV2 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IQuoterV2Interface; + + functions: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber[], number[], BigNumber] & { + amountOut: BigNumber; + sqrtPriceX96AfterList: BigNumber[]; + initializedTicksCrossedList: number[]; + gasEstimate: BigNumber; + } + >; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number, BigNumber] & { + amountOut: BigNumber; + sqrtPriceX96After: BigNumber; + initializedTicksCrossed: number; + gasEstimate: BigNumber; + } + >; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber[], number[], BigNumber] & { + amountIn: BigNumber; + sqrtPriceX96AfterList: BigNumber[]; + initializedTicksCrossedList: number[]; + gasEstimate: BigNumber; + } + >; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number, BigNumber] & { + amountIn: BigNumber; + sqrtPriceX96After: BigNumber; + initializedTicksCrossed: number; + gasEstimate: BigNumber; + } + >; + }; + + filters: {}; + + estimateGas: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/ISwapRouter02.d.ts b/src/contrib/smart-order-router/types/other/ISwapRouter02.d.ts new file mode 100644 index 0000000..84f198b --- /dev/null +++ b/src/contrib/smart-order-router/types/other/ISwapRouter02.d.ts @@ -0,0 +1,1228 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface ISwapRouter02Interface extends ethers.utils.Interface { + functions: { + "approveMax(address)": FunctionFragment; + "approveMaxMinusOne(address)": FunctionFragment; + "approveZeroThenMax(address)": FunctionFragment; + "approveZeroThenMaxMinusOne(address)": FunctionFragment; + "callPositionManager(bytes)": FunctionFragment; + "exactInput((bytes,address,uint256,uint256))": FunctionFragment; + "exactInputSingle((address,address,uint24,address,uint256,uint256,uint160))": FunctionFragment; + "exactOutput((bytes,address,uint256,uint256))": FunctionFragment; + "exactOutputSingle((address,address,uint24,address,uint256,uint256,uint160))": FunctionFragment; + "getApprovalType(address,uint256)": FunctionFragment; + "increaseLiquidity((address,address,uint256,uint256,uint256))": FunctionFragment; + "mint((address,address,uint24,int24,int24,uint256,uint256,address))": FunctionFragment; + "multicall(bytes32,bytes[])": FunctionFragment; + "selfPermit(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitAllowed(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitAllowedIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "swapExactTokensForTokens(uint256,uint256,address[],address)": FunctionFragment; + "swapTokensForExactTokens(uint256,uint256,address[],address)": FunctionFragment; + "uniswapV3SwapCallback(int256,int256,bytes)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "approveMax", values: [string]): string; + encodeFunctionData( + functionFragment: "approveMaxMinusOne", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "approveZeroThenMax", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "approveZeroThenMaxMinusOne", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "callPositionManager", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "exactInput", + values: [ + { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactInputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactOutput", + values: [ + { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactOutputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "getApprovalType", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "increaseLiquidity", + values: [ + { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [ + { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + } + ] + ): string; + encodeFunctionData( + functionFragment: "multicall", + values: [BytesLike, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "selfPermit", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitAllowed", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitAllowedIfNecessary", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitIfNecessary", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokens", + values: [BigNumberish, BigNumberish, string[], string] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactTokens", + values: [BigNumberish, BigNumberish, string[], string] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "approveMax", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "approveMaxMinusOne", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "approveZeroThenMax", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "approveZeroThenMaxMinusOne", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "callPositionManager", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "exactInput", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "exactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getApprovalType", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "increaseLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "selfPermit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "selfPermitAllowed", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "selfPermitAllowedIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "selfPermitIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; + + events: {}; +} + +export class ISwapRouter02 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: ISwapRouter02Interface; + + functions: { + approveMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + approveMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + approveMax(token: string, overrides?: CallOverrides): Promise; + + approveMaxMinusOne(token: string, overrides?: CallOverrides): Promise; + + approveZeroThenMax(token: string, overrides?: CallOverrides): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: CallOverrides + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: CallOverrides + ): Promise; + + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: CallOverrides + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: CallOverrides + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: CallOverrides + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + approveMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + approveMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/ITokenValidator.d.ts b/src/contrib/smart-order-router/types/other/ITokenValidator.d.ts new file mode 100644 index 0000000..4811175 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/ITokenValidator.d.ts @@ -0,0 +1,168 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface ITokenValidatorInterface extends ethers.utils.Interface { + functions: { + "batchValidate(address[],address[],uint256)": FunctionFragment; + "validate(address,address[],uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "batchValidate", + values: [string[], string[], BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "validate", + values: [string, string[], BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "batchValidate", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "validate", data: BytesLike): Result; + + events: {}; +} + +export class ITokenValidator extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: ITokenValidatorInterface; + + functions: { + batchValidate( + tokens: string[], + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + validate( + token: string, + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + batchValidate( + tokens: string[], + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + validate( + token: string, + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + batchValidate( + tokens: string[], + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: CallOverrides + ): Promise; + + validate( + token: string, + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + batchValidate( + tokens: string[], + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + validate( + token: string, + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + batchValidate( + tokens: string[], + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + validate( + token: string, + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/IV2SwapRouter.d.ts b/src/contrib/smart-order-router/types/other/IV2SwapRouter.d.ts new file mode 100644 index 0000000..e8d8274 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/IV2SwapRouter.d.ts @@ -0,0 +1,181 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IV2SwapRouterInterface extends ethers.utils.Interface { + functions: { + "swapExactTokensForTokens(uint256,uint256,address[],address)": FunctionFragment; + "swapTokensForExactTokens(uint256,uint256,address[],address)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "swapExactTokensForTokens", + values: [BigNumberish, BigNumberish, string[], string] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactTokens", + values: [BigNumberish, BigNumberish, string[], string] + ): string; + + decodeFunctionResult( + functionFragment: "swapExactTokensForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactTokens", + data: BytesLike + ): Result; + + events: {}; +} + +export class IV2SwapRouter extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IV2SwapRouterInterface; + + functions: { + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: CallOverrides + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/IV3SwapRouter.d.ts b/src/contrib/smart-order-router/types/other/IV3SwapRouter.d.ts new file mode 100644 index 0000000..98176bc --- /dev/null +++ b/src/contrib/smart-order-router/types/other/IV3SwapRouter.d.ts @@ -0,0 +1,425 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IV3SwapRouterInterface extends ethers.utils.Interface { + functions: { + "exactInput((bytes,address,uint256,uint256))": FunctionFragment; + "exactInputSingle((address,address,uint24,address,uint256,uint256,uint160))": FunctionFragment; + "exactOutput((bytes,address,uint256,uint256))": FunctionFragment; + "exactOutputSingle((address,address,uint24,address,uint256,uint256,uint160))": FunctionFragment; + "uniswapV3SwapCallback(int256,int256,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "exactInput", + values: [ + { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactInputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactOutput", + values: [ + { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactOutputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "exactInput", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "exactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; + + events: {}; +} + +export class IV3SwapRouter extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IV3SwapRouterInterface; + + functions: { + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/IWETH.d.ts b/src/contrib/smart-order-router/types/other/IWETH.d.ts new file mode 100644 index 0000000..29e2131 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/IWETH.d.ts @@ -0,0 +1,169 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IWETHInterface extends ethers.utils.Interface { + functions: { + "deposit()": FunctionFragment; + "transfer(address,uint256)": FunctionFragment; + "withdraw(uint256)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "deposit", values?: undefined): string; + encodeFunctionData( + functionFragment: "transfer", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + + events: {}; +} + +export class IWETH extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IWETHInterface; + + functions: { + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + withdraw( + arg0: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + withdraw( + arg0: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + deposit(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + withdraw(arg0: BigNumberish, overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + withdraw( + arg0: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + withdraw( + arg0: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/MixedRouteQuoterV1.d.ts b/src/contrib/smart-order-router/types/other/MixedRouteQuoterV1.d.ts new file mode 100644 index 0000000..5620a87 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/MixedRouteQuoterV1.d.ts @@ -0,0 +1,325 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface MixedRouteQuoterV1Interface extends ethers.utils.Interface { + functions: { + "WETH9()": FunctionFragment; + "factory()": FunctionFragment; + "factoryV2()": FunctionFragment; + "quoteExactInput(bytes,uint256)": FunctionFragment; + "quoteExactInputSingleV2((address,address,uint256))": FunctionFragment; + "quoteExactInputSingleV3((address,address,uint256,uint24,uint160))": FunctionFragment; + "uniswapV3SwapCallback(int256,int256,bytes)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData(functionFragment: "factoryV2", values?: undefined): string; + encodeFunctionData( + functionFragment: "quoteExactInput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactInputSingleV2", + values: [{ tokenIn: string; tokenOut: string; amountIn: BigNumberish }] + ): string; + encodeFunctionData( + functionFragment: "quoteExactInputSingleV3", + values: [ + { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factoryV2", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "quoteExactInput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactInputSingleV2", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactInputSingleV3", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; + + events: {}; +} + +export class MixedRouteQuoterV1 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: MixedRouteQuoterV1Interface; + + functions: { + WETH9(overrides?: CallOverrides): Promise<[string]>; + + factory(overrides?: CallOverrides): Promise<[string]>; + + factoryV2(overrides?: CallOverrides): Promise<[string]>; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingleV2( + params: { tokenIn: string; tokenOut: string; amountIn: BigNumberish }, + overrides?: CallOverrides + ): Promise<[BigNumber] & { amountOut: BigNumber }>; + + quoteExactInputSingleV3( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + }; + + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingleV2( + params: { tokenIn: string; tokenOut: string; amountIn: BigNumberish }, + overrides?: CallOverrides + ): Promise; + + quoteExactInputSingleV3( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber[], number[], BigNumber] & { + amountOut: BigNumber; + v3SqrtPriceX96AfterList: BigNumber[]; + v3InitializedTicksCrossedList: number[]; + v3SwapGasEstimate: BigNumber; + } + >; + + quoteExactInputSingleV2( + params: { tokenIn: string; tokenOut: string; amountIn: BigNumberish }, + overrides?: CallOverrides + ): Promise; + + quoteExactInputSingleV3( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number, BigNumber] & { + amountOut: BigNumber; + sqrtPriceX96After: BigNumber; + initializedTicksCrossed: number; + gasEstimate: BigNumber; + } + >; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingleV2( + params: { tokenIn: string; tokenOut: string; amountIn: BigNumberish }, + overrides?: CallOverrides + ): Promise; + + quoteExactInputSingleV3( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingleV2( + params: { tokenIn: string; tokenOut: string; amountIn: BigNumberish }, + overrides?: CallOverrides + ): Promise; + + quoteExactInputSingleV3( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/Quoter.d.ts b/src/contrib/smart-order-router/types/other/Quoter.d.ts new file mode 100644 index 0000000..9ffe872 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/Quoter.d.ts @@ -0,0 +1,339 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface QuoterInterface extends ethers.utils.Interface { + functions: { + "WETH9()": FunctionFragment; + "factory()": FunctionFragment; + "quoteExactInput(bytes,uint256)": FunctionFragment; + "quoteExactInputSingle(address,address,uint24,uint256,uint160)": FunctionFragment; + "quoteExactOutput(bytes,uint256)": FunctionFragment; + "quoteExactOutputSingle(address,address,uint24,uint256,uint160)": FunctionFragment; + "uniswapV3SwapCallback(int256,int256,bytes)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "quoteExactInput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactInputSingle", + values: [string, string, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutputSingle", + values: [string, string, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "quoteExactInput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; + + events: {}; +} + +export class Quoter extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: QuoterInterface; + + functions: { + WETH9(overrides?: CallOverrides): Promise<[string]>; + + factory(overrides?: CallOverrides): Promise<[string]>; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + }; + + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: CallOverrides + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/QuoterV2.d.ts b/src/contrib/smart-order-router/types/other/QuoterV2.d.ts new file mode 100644 index 0000000..1d11c51 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/QuoterV2.d.ts @@ -0,0 +1,403 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface QuoterV2Interface extends ethers.utils.Interface { + functions: { + "WETH9()": FunctionFragment; + "factory()": FunctionFragment; + "quoteExactInput(bytes,uint256)": FunctionFragment; + "quoteExactInputSingle((address,address,uint256,uint24,uint160))": FunctionFragment; + "quoteExactOutput(bytes,uint256)": FunctionFragment; + "quoteExactOutputSingle((address,address,uint256,uint24,uint160))": FunctionFragment; + "uniswapV3SwapCallback(int256,int256,bytes)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "quoteExactInput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactInputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "quoteExactInput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; + + events: {}; +} + +export class QuoterV2 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: QuoterV2Interface; + + functions: { + WETH9(overrides?: CallOverrides): Promise<[string]>; + + factory(overrides?: CallOverrides): Promise<[string]>; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + }; + + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber[], number[], BigNumber] & { + amountOut: BigNumber; + sqrtPriceX96AfterList: BigNumber[]; + initializedTicksCrossedList: number[]; + gasEstimate: BigNumber; + } + >; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number, BigNumber] & { + amountOut: BigNumber; + sqrtPriceX96After: BigNumber; + initializedTicksCrossed: number; + gasEstimate: BigNumber; + } + >; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber[], number[], BigNumber] & { + amountIn: BigNumber; + sqrtPriceX96AfterList: BigNumber[]; + initializedTicksCrossedList: number[]; + gasEstimate: BigNumber; + } + >; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number, BigNumber] & { + amountIn: BigNumber; + sqrtPriceX96After: BigNumber; + initializedTicksCrossed: number; + gasEstimate: BigNumber; + } + >; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/SwapRouter02.d.ts b/src/contrib/smart-order-router/types/other/SwapRouter02.d.ts new file mode 100644 index 0000000..a5fdf65 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/SwapRouter02.d.ts @@ -0,0 +1,1768 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface SwapRouter02Interface extends ethers.utils.Interface { + functions: { + "WETH9()": FunctionFragment; + "approveMax(address)": FunctionFragment; + "approveMaxMinusOne(address)": FunctionFragment; + "approveZeroThenMax(address)": FunctionFragment; + "approveZeroThenMaxMinusOne(address)": FunctionFragment; + "callPositionManager(bytes)": FunctionFragment; + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)": FunctionFragment; + "exactInput((bytes,address,uint256,uint256))": FunctionFragment; + "exactInputSingle((address,address,uint24,address,uint256,uint256,uint160))": FunctionFragment; + "exactOutput((bytes,address,uint256,uint256))": FunctionFragment; + "exactOutputSingle((address,address,uint24,address,uint256,uint256,uint160))": FunctionFragment; + "factory()": FunctionFragment; + "factoryV2()": FunctionFragment; + "getApprovalType(address,uint256)": FunctionFragment; + "increaseLiquidity((address,address,uint256,uint256,uint256))": FunctionFragment; + "mint((address,address,uint24,int24,int24,uint256,uint256,address))": FunctionFragment; + "multicall(bytes32,bytes[])": FunctionFragment; + "positionManager()": FunctionFragment; + "pull(address,uint256)": FunctionFragment; + "refundETH()": FunctionFragment; + "selfPermit(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitAllowed(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitAllowedIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "swapExactTokensForTokens(uint256,uint256,address[],address)": FunctionFragment; + "swapTokensForExactTokens(uint256,uint256,address[],address)": FunctionFragment; + "sweepToken(address,uint256,address)": FunctionFragment; + "sweepTokenWithFee(address,uint256,uint256,address)": FunctionFragment; + "uniswapV3SwapCallback(int256,int256,bytes)": FunctionFragment; + "unwrapWETH9(uint256,address)": FunctionFragment; + "unwrapWETH9WithFee(uint256,address,uint256,address)": FunctionFragment; + "wrapETH(uint256)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData(functionFragment: "approveMax", values: [string]): string; + encodeFunctionData( + functionFragment: "approveMaxMinusOne", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "approveZeroThenMax", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "approveZeroThenMaxMinusOne", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "callPositionManager", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "checkOracleSlippage", + values: [BytesLike[], BigNumberish[], BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "exactInput", + values: [ + { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactInputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactOutput", + values: [ + { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactOutputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData(functionFragment: "factoryV2", values?: undefined): string; + encodeFunctionData( + functionFragment: "getApprovalType", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "increaseLiquidity", + values: [ + { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [ + { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + } + ] + ): string; + encodeFunctionData( + functionFragment: "multicall", + values: [BytesLike, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "positionManager", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "pull", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "refundETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "selfPermit", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitAllowed", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitAllowedIfNecessary", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitIfNecessary", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokens", + values: [BigNumberish, BigNumberish, string[], string] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactTokens", + values: [BigNumberish, BigNumberish, string[], string] + ): string; + encodeFunctionData( + functionFragment: "sweepToken", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "sweepTokenWithFee", + values: [string, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9WithFee", + values: [BigNumberish, string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "wrapETH", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approveMax", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "approveMaxMinusOne", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "approveZeroThenMax", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "approveZeroThenMaxMinusOne", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "callPositionManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "checkOracleSlippage", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "exactInput", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "exactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutputSingle", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factoryV2", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getApprovalType", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "increaseLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "positionManager", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "pull", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "refundETH", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "selfPermit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "selfPermitAllowed", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "selfPermitAllowedIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "selfPermitIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactTokens", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "sweepToken", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "sweepTokenWithFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9WithFee", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "wrapETH", data: BytesLike): Result; + + events: {}; +} + +export class SwapRouter02 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: SwapRouter02Interface; + + functions: { + WETH9(overrides?: CallOverrides): Promise<[string]>; + + approveMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise<[void]>; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise<[void]>; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise<[string]>; + + factoryV2(overrides?: CallOverrides): Promise<[string]>; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + positionManager(overrides?: CallOverrides): Promise<[string]>; + + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + WETH9(overrides?: CallOverrides): Promise; + + approveMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + positionManager(overrides?: CallOverrides): Promise; + + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + WETH9(overrides?: CallOverrides): Promise; + + approveMax(token: string, overrides?: CallOverrides): Promise; + + approveMaxMinusOne(token: string, overrides?: CallOverrides): Promise; + + approveZeroThenMax(token: string, overrides?: CallOverrides): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: CallOverrides + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: CallOverrides + ): Promise; + + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: CallOverrides + ): Promise; + + positionManager(overrides?: CallOverrides): Promise; + + pull( + token: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + refundETH(overrides?: CallOverrides): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: CallOverrides + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: CallOverrides + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + wrapETH(value: BigNumberish, overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + WETH9(overrides?: CallOverrides): Promise; + + approveMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + positionManager(overrides?: CallOverrides): Promise; + + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + WETH9(overrides?: CallOverrides): Promise; + + approveMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMax( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + approveZeroThenMaxMinusOne( + token: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callPositionManager( + data: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + getApprovalType( + token: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseLiquidity( + params: { + token0: string; + token1: string; + tokenId: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes32,bytes[])"( + previousBlockhash: BytesLike, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(uint256,bytes[])"( + deadline: BigNumberish, + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "multicall(bytes[])"( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + positionManager(overrides?: CallOverrides): Promise; + + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/TokenValidator.d.ts b/src/contrib/smart-order-router/types/other/TokenValidator.d.ts new file mode 100644 index 0000000..6aedba0 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/TokenValidator.d.ts @@ -0,0 +1,249 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface TokenValidatorInterface extends ethers.utils.Interface { + functions: { + "batchValidate(address[],address[],uint256)": FunctionFragment; + "factoryV2()": FunctionFragment; + "positionManager()": FunctionFragment; + "uniswapV2Call(address,uint256,uint256,bytes)": FunctionFragment; + "validate(address,address[],uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "batchValidate", + values: [string[], string[], BigNumberish] + ): string; + encodeFunctionData(functionFragment: "factoryV2", values?: undefined): string; + encodeFunctionData( + functionFragment: "positionManager", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "uniswapV2Call", + values: [string, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "validate", + values: [string, string[], BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "batchValidate", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factoryV2", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "positionManager", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV2Call", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "validate", data: BytesLike): Result; + + events: {}; +} + +export class TokenValidator extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TokenValidatorInterface; + + functions: { + batchValidate( + tokens: string[], + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + factoryV2(overrides?: CallOverrides): Promise<[string]>; + + positionManager(overrides?: CallOverrides): Promise<[string]>; + + uniswapV2Call( + arg0: string, + amount0: BigNumberish, + arg2: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + + validate( + token: string, + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + batchValidate( + tokens: string[], + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + positionManager(overrides?: CallOverrides): Promise; + + uniswapV2Call( + arg0: string, + amount0: BigNumberish, + arg2: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + validate( + token: string, + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + batchValidate( + tokens: string[], + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: CallOverrides + ): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + positionManager(overrides?: CallOverrides): Promise; + + uniswapV2Call( + arg0: string, + amount0: BigNumberish, + arg2: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + validate( + token: string, + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + batchValidate( + tokens: string[], + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + positionManager(overrides?: CallOverrides): Promise; + + uniswapV2Call( + arg0: string, + amount0: BigNumberish, + arg2: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + validate( + token: string, + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + batchValidate( + tokens: string[], + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + positionManager(overrides?: CallOverrides): Promise; + + uniswapV2Call( + arg0: string, + amount0: BigNumberish, + arg2: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + validate( + token: string, + baseTokens: string[], + amountToBorrow: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/V2SwapRouter.d.ts b/src/contrib/smart-order-router/types/other/V2SwapRouter.d.ts new file mode 100644 index 0000000..3c829de --- /dev/null +++ b/src/contrib/smart-order-router/types/other/V2SwapRouter.d.ts @@ -0,0 +1,637 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface V2SwapRouterInterface extends ethers.utils.Interface { + functions: { + "WETH9()": FunctionFragment; + "factory()": FunctionFragment; + "factoryV2()": FunctionFragment; + "positionManager()": FunctionFragment; + "pull(address,uint256)": FunctionFragment; + "refundETH()": FunctionFragment; + "swapExactTokensForTokens(uint256,uint256,address[],address)": FunctionFragment; + "swapTokensForExactTokens(uint256,uint256,address[],address)": FunctionFragment; + "sweepToken(address,uint256,address)": FunctionFragment; + "sweepTokenWithFee(address,uint256,uint256,address)": FunctionFragment; + "unwrapWETH9(uint256,address)": FunctionFragment; + "unwrapWETH9WithFee(uint256,address,uint256,address)": FunctionFragment; + "wrapETH(uint256)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData(functionFragment: "factoryV2", values?: undefined): string; + encodeFunctionData( + functionFragment: "positionManager", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "pull", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "refundETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokens", + values: [BigNumberish, BigNumberish, string[], string] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactTokens", + values: [BigNumberish, BigNumberish, string[], string] + ): string; + encodeFunctionData( + functionFragment: "sweepToken", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "sweepTokenWithFee", + values: [string, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9WithFee", + values: [BigNumberish, string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "wrapETH", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factoryV2", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "positionManager", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "pull", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "refundETH", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactTokens", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "sweepToken", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "sweepTokenWithFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9WithFee", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "wrapETH", data: BytesLike): Result; + + events: {}; +} + +export class V2SwapRouter extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: V2SwapRouterInterface; + + functions: { + WETH9(overrides?: CallOverrides): Promise<[string]>; + + factory(overrides?: CallOverrides): Promise<[string]>; + + factoryV2(overrides?: CallOverrides): Promise<[string]>; + + positionManager(overrides?: CallOverrides): Promise<[string]>; + + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + positionManager(overrides?: CallOverrides): Promise; + + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + positionManager(overrides?: CallOverrides): Promise; + + pull( + token: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + refundETH(overrides?: CallOverrides): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: CallOverrides + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: CallOverrides + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + wrapETH(value: BigNumberish, overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + positionManager(overrides?: CallOverrides): Promise; + + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + factoryV2(overrides?: CallOverrides): Promise; + + positionManager(overrides?: CallOverrides): Promise; + + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/V3SwapRouter.d.ts b/src/contrib/smart-order-router/types/other/V3SwapRouter.d.ts new file mode 100644 index 0000000..4b71cca --- /dev/null +++ b/src/contrib/smart-order-router/types/other/V3SwapRouter.d.ts @@ -0,0 +1,933 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface V3SwapRouterInterface extends ethers.utils.Interface { + functions: { + "WETH9()": FunctionFragment; + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)": FunctionFragment; + "exactInput((bytes,address,uint256,uint256))": FunctionFragment; + "exactInputSingle((address,address,uint24,address,uint256,uint256,uint160))": FunctionFragment; + "exactOutput((bytes,address,uint256,uint256))": FunctionFragment; + "exactOutputSingle((address,address,uint24,address,uint256,uint256,uint160))": FunctionFragment; + "factory()": FunctionFragment; + "pull(address,uint256)": FunctionFragment; + "refundETH()": FunctionFragment; + "sweepToken(address,uint256,address)": FunctionFragment; + "sweepTokenWithFee(address,uint256,uint256,address)": FunctionFragment; + "uniswapV3SwapCallback(int256,int256,bytes)": FunctionFragment; + "unwrapWETH9(uint256,address)": FunctionFragment; + "unwrapWETH9WithFee(uint256,address,uint256,address)": FunctionFragment; + "wrapETH(uint256)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData( + functionFragment: "checkOracleSlippage", + values: [BytesLike[], BigNumberish[], BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "exactInput", + values: [ + { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactInputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactOutput", + values: [ + { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactOutputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "pull", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "refundETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "sweepToken", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "sweepTokenWithFee", + values: [string, BigNumberish, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9WithFee", + values: [BigNumberish, string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "wrapETH", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "checkOracleSlippage", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "exactInput", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "exactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutputSingle", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pull", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "refundETH", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sweepToken", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "sweepTokenWithFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9WithFee", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "wrapETH", data: BytesLike): Result; + + events: {}; +} + +export class V3SwapRouter extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: V3SwapRouterInterface; + + functions: { + WETH9(overrides?: CallOverrides): Promise<[string]>; + + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise<[void]>; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise<[void]>; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise<[string]>; + + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + WETH9(overrides?: CallOverrides): Promise; + + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + WETH9(overrides?: CallOverrides): Promise; + + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + pull( + token: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + refundETH(overrides?: CallOverrides): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + wrapETH(value: BigNumberish, overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + WETH9(overrides?: CallOverrides): Promise; + + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + WETH9(overrides?: CallOverrides): Promise; + + "checkOracleSlippage(bytes[],uint128[],uint24,uint32)"( + paths: BytesLike[], + amounts: BigNumberish[], + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "checkOracleSlippage(bytes,uint24,uint32)"( + path: BytesLike, + maximumTickDivergence: BigNumberish, + secondsAgo: BigNumberish, + overrides?: CallOverrides + ): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + pull( + token: string, + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepToken(address,uint256)"( + token: string, + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "sweepTokenWithFee(address,uint256,address,uint256,address)"( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9(uint256)"( + amountMinimum: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,address,uint256,address)"( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "unwrapWETH9WithFee(uint256,uint256,address)"( + amountMinimum: BigNumberish, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + wrapETH( + value: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/other/common.d.ts b/src/contrib/smart-order-router/types/other/common.d.ts new file mode 100644 index 0000000..fc93782 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/common.d.ts @@ -0,0 +1,35 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { EventFilter, Event } from "ethers"; +import { Result } from "@ethersproject/abi"; + +export interface TypedEventFilter<_EventArgsArray, _EventArgsObject> + extends EventFilter {} + +export interface TypedEvent extends Event { + args: EventArgs; +} + +export type TypedListener< + EventArgsArray extends Array, + EventArgsObject +> = ( + ...listenerArg: [ + ...EventArgsArray, + TypedEvent + ] +) => void; + +export type MinEthersFactory = { + deploy(...a: ARGS[]): Promise; +}; +export type GetContractTypeFromFactory = F extends MinEthersFactory< + infer C, + any +> + ? C + : never; +export type GetARGsTypeFromFactory = F extends MinEthersFactory + ? Parameters + : never; diff --git a/src/contrib/smart-order-router/types/other/factories/IApproveAndCall__factory.ts b/src/contrib/smart-order-router/types/other/factories/IApproveAndCall__factory.ts new file mode 100644 index 0000000..7c3a30f --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/IApproveAndCall__factory.ts @@ -0,0 +1,228 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IApproveAndCall, + IApproveAndCallInterface, +} from "../IApproveAndCall"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "approveMax", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "approveMaxMinusOne", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "approveZeroThenMax", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "approveZeroThenMaxMinusOne", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "callPositionManager", + outputs: [ + { + internalType: "bytes", + name: "result", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "getApprovalType", + outputs: [ + { + internalType: "enum IApproveAndCall.ApprovalType", + name: "", + type: "uint8", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + ], + internalType: "struct IApproveAndCall.IncreaseLiquidityParams", + name: "params", + type: "tuple", + }, + ], + name: "increaseLiquidity", + outputs: [ + { + internalType: "bytes", + name: "result", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + internalType: "struct IApproveAndCall.MintParams", + name: "params", + type: "tuple", + }, + ], + name: "mint", + outputs: [ + { + internalType: "bytes", + name: "result", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, +]; + +export class IApproveAndCall__factory { + static readonly abi = _abi; + static createInterface(): IApproveAndCallInterface { + return new utils.Interface(_abi) as IApproveAndCallInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IApproveAndCall { + return new Contract(address, _abi, signerOrProvider) as IApproveAndCall; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/IImmutableState__factory.ts b/src/contrib/smart-order-router/types/other/factories/IImmutableState__factory.ts new file mode 100644 index 0000000..82da1b1 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/IImmutableState__factory.ts @@ -0,0 +1,52 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IImmutableState, + IImmutableStateInterface, +} from "../IImmutableState"; + +const _abi = [ + { + inputs: [], + name: "factoryV2", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "positionManager", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class IImmutableState__factory { + static readonly abi = _abi; + static createInterface(): IImmutableStateInterface { + return new utils.Interface(_abi) as IImmutableStateInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IImmutableState { + return new Contract(address, _abi, signerOrProvider) as IImmutableState; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/IMixedRouteQuoterV1__factory.ts b/src/contrib/smart-order-router/types/other/factories/IMixedRouteQuoterV1__factory.ts new file mode 100644 index 0000000..462b400 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/IMixedRouteQuoterV1__factory.ts @@ -0,0 +1,164 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IMixedRouteQuoterV1, + IMixedRouteQuoterV1Interface, +} from "../IMixedRouteQuoterV1"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + name: "quoteExactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160[]", + name: "v3SqrtPriceX96AfterList", + type: "uint160[]", + }, + { + internalType: "uint32[]", + name: "v3InitializedTicksCrossedList", + type: "uint32[]", + }, + { + internalType: "uint256", + name: "v3SwapGasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + internalType: + "struct IMixedRouteQuoterV1.QuoteExactInputSingleV2Params", + name: "params", + type: "tuple", + }, + ], + name: "quoteExactInputSingleV2", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: + "struct IMixedRouteQuoterV1.QuoteExactInputSingleV3Params", + name: "params", + type: "tuple", + }, + ], + name: "quoteExactInputSingleV3", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceX96After", + type: "uint160", + }, + { + internalType: "uint32", + name: "initializedTicksCrossed", + type: "uint32", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IMixedRouteQuoterV1__factory { + static readonly abi = _abi; + static createInterface(): IMixedRouteQuoterV1Interface { + return new utils.Interface(_abi) as IMixedRouteQuoterV1Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IMixedRouteQuoterV1 { + return new Contract(address, _abi, signerOrProvider) as IMixedRouteQuoterV1; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/IMulticallExtended__factory.ts b/src/contrib/smart-order-router/types/other/factories/IMulticallExtended__factory.ts new file mode 100644 index 0000000..f5d1945 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/IMulticallExtended__factory.ts @@ -0,0 +1,93 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IMulticallExtended, + IMulticallExtendedInterface, +} from "../IMulticallExtended"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes32", + name: "previousBlockhash", + type: "bytes32", + }, + { + internalType: "bytes[]", + name: "data", + type: "bytes[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "bytes[]", + name: "results", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bytes[]", + name: "data", + type: "bytes[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "bytes[]", + name: "results", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "data", + type: "bytes[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "bytes[]", + name: "results", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, +]; + +export class IMulticallExtended__factory { + static readonly abi = _abi; + static createInterface(): IMulticallExtendedInterface { + return new utils.Interface(_abi) as IMulticallExtendedInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IMulticallExtended { + return new Contract(address, _abi, signerOrProvider) as IMulticallExtended; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/IOracleSlippage__factory.ts b/src/contrib/smart-order-router/types/other/factories/IOracleSlippage__factory.ts new file mode 100644 index 0000000..c641020 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/IOracleSlippage__factory.ts @@ -0,0 +1,77 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IOracleSlippage, + IOracleSlippageInterface, +} from "../IOracleSlippage"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes[]", + name: "paths", + type: "bytes[]", + }, + { + internalType: "uint128[]", + name: "amounts", + type: "uint128[]", + }, + { + internalType: "uint24", + name: "maximumTickDivergence", + type: "uint24", + }, + { + internalType: "uint32", + name: "secondsAgo", + type: "uint32", + }, + ], + name: "checkOracleSlippage", + outputs: [], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint24", + name: "maximumTickDivergence", + type: "uint24", + }, + { + internalType: "uint32", + name: "secondsAgo", + type: "uint32", + }, + ], + name: "checkOracleSlippage", + outputs: [], + stateMutability: "view", + type: "function", + }, +]; + +export class IOracleSlippage__factory { + static readonly abi = _abi; + static createInterface(): IOracleSlippageInterface { + return new utils.Interface(_abi) as IOracleSlippageInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IOracleSlippage { + return new Contract(address, _abi, signerOrProvider) as IOracleSlippage; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/IPeripheryPaymentsExtended__factory.ts b/src/contrib/smart-order-router/types/other/factories/IPeripheryPaymentsExtended__factory.ts new file mode 100644 index 0000000..664176d --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/IPeripheryPaymentsExtended__factory.ts @@ -0,0 +1,140 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IPeripheryPaymentsExtended, + IPeripheryPaymentsExtendedInterface, +} from "../IPeripheryPaymentsExtended"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "pull", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "refundETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "wrapETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, +]; + +export class IPeripheryPaymentsExtended__factory { + static readonly abi = _abi; + static createInterface(): IPeripheryPaymentsExtendedInterface { + return new utils.Interface(_abi) as IPeripheryPaymentsExtendedInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IPeripheryPaymentsExtended { + return new Contract( + address, + _abi, + signerOrProvider + ) as IPeripheryPaymentsExtended; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/IPeripheryPaymentsWithFeeExtended__factory.ts b/src/contrib/smart-order-router/types/other/factories/IPeripheryPaymentsWithFeeExtended__factory.ts new file mode 100644 index 0000000..49c2f76 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/IPeripheryPaymentsWithFeeExtended__factory.ts @@ -0,0 +1,254 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IPeripheryPaymentsWithFeeExtended, + IPeripheryPaymentsWithFeeExtendedInterface, +} from "../IPeripheryPaymentsWithFeeExtended"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "pull", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "refundETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "sweepTokenWithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "sweepTokenWithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "unwrapWETH9WithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "unwrapWETH9WithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "wrapETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, +]; + +export class IPeripheryPaymentsWithFeeExtended__factory { + static readonly abi = _abi; + static createInterface(): IPeripheryPaymentsWithFeeExtendedInterface { + return new utils.Interface( + _abi + ) as IPeripheryPaymentsWithFeeExtendedInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IPeripheryPaymentsWithFeeExtended { + return new Contract( + address, + _abi, + signerOrProvider + ) as IPeripheryPaymentsWithFeeExtended; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/IQuoterV2__factory.ts b/src/contrib/smart-order-router/types/other/factories/IQuoterV2__factory.ts new file mode 100644 index 0000000..09d6480 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/IQuoterV2__factory.ts @@ -0,0 +1,223 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IQuoterV2, IQuoterV2Interface } from "../IQuoterV2"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + name: "quoteExactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160[]", + name: "sqrtPriceX96AfterList", + type: "uint160[]", + }, + { + internalType: "uint32[]", + name: "initializedTicksCrossedList", + type: "uint32[]", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IQuoterV2.QuoteExactInputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "quoteExactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceX96After", + type: "uint160", + }, + { + internalType: "uint32", + name: "initializedTicksCrossed", + type: "uint32", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + name: "quoteExactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint160[]", + name: "sqrtPriceX96AfterList", + type: "uint160[]", + }, + { + internalType: "uint32[]", + name: "initializedTicksCrossedList", + type: "uint32[]", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IQuoterV2.QuoteExactOutputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "quoteExactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceX96After", + type: "uint160", + }, + { + internalType: "uint32", + name: "initializedTicksCrossed", + type: "uint32", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IQuoterV2__factory { + static readonly abi = _abi; + static createInterface(): IQuoterV2Interface { + return new utils.Interface(_abi) as IQuoterV2Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IQuoterV2 { + return new Contract(address, _abi, signerOrProvider) as IQuoterV2; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/IQuoter__factory.ts b/src/contrib/smart-order-router/types/other/factories/IQuoter__factory.ts new file mode 100644 index 0000000..3167760 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/IQuoter__factory.ts @@ -0,0 +1,149 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IQuoter, IQuoterInterface } from "../IQuoter"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + name: "quoteExactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + name: "quoteExactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + name: "quoteExactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + name: "quoteExactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IQuoter__factory { + static readonly abi = _abi; + static createInterface(): IQuoterInterface { + return new utils.Interface(_abi) as IQuoterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IQuoter { + return new Contract(address, _abi, signerOrProvider) as IQuoter; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/ISwapRouter02__factory.ts b/src/contrib/smart-order-router/types/other/factories/ISwapRouter02__factory.ts new file mode 100644 index 0000000..199fd82 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/ISwapRouter02__factory.ts @@ -0,0 +1,729 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { ISwapRouter02, ISwapRouter02Interface } from "../ISwapRouter02"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "approveMax", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "approveMaxMinusOne", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "approveZeroThenMax", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "approveZeroThenMaxMinusOne", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "callPositionManager", + outputs: [ + { + internalType: "bytes", + name: "result", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + ], + internalType: "struct IV3SwapRouter.ExactInputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IV3SwapRouter.ExactInputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + ], + internalType: "struct IV3SwapRouter.ExactOutputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IV3SwapRouter.ExactOutputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "getApprovalType", + outputs: [ + { + internalType: "enum IApproveAndCall.ApprovalType", + name: "", + type: "uint8", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + ], + internalType: "struct IApproveAndCall.IncreaseLiquidityParams", + name: "params", + type: "tuple", + }, + ], + name: "increaseLiquidity", + outputs: [ + { + internalType: "bytes", + name: "result", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + internalType: "struct IApproveAndCall.MintParams", + name: "params", + type: "tuple", + }, + ], + name: "mint", + outputs: [ + { + internalType: "bytes", + name: "result", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "previousBlockhash", + type: "bytes32", + }, + { + internalType: "bytes[]", + name: "data", + type: "bytes[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "bytes[]", + name: "results", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bytes[]", + name: "data", + type: "bytes[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "bytes[]", + name: "results", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "data", + type: "bytes[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "bytes[]", + name: "results", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitAllowed", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitAllowedIfNecessary", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitIfNecessary", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "swapExactTokensForTokens", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "swapTokensForExactTokens", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class ISwapRouter02__factory { + static readonly abi = _abi; + static createInterface(): ISwapRouter02Interface { + return new utils.Interface(_abi) as ISwapRouter02Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): ISwapRouter02 { + return new Contract(address, _abi, signerOrProvider) as ISwapRouter02; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/ITokenValidator__factory.ts b/src/contrib/smart-order-router/types/other/factories/ITokenValidator__factory.ts new file mode 100644 index 0000000..fe62a17 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/ITokenValidator__factory.ts @@ -0,0 +1,84 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + ITokenValidator, + ITokenValidatorInterface, +} from "../ITokenValidator"; + +const _abi = [ + { + inputs: [ + { + internalType: "address[]", + name: "tokens", + type: "address[]", + }, + { + internalType: "address[]", + name: "baseTokens", + type: "address[]", + }, + { + internalType: "uint256", + name: "amountToBorrow", + type: "uint256", + }, + ], + name: "batchValidate", + outputs: [ + { + internalType: "enum ITokenValidator.Status[]", + name: "", + type: "uint8[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address[]", + name: "baseTokens", + type: "address[]", + }, + { + internalType: "uint256", + name: "amountToBorrow", + type: "uint256", + }, + ], + name: "validate", + outputs: [ + { + internalType: "enum ITokenValidator.Status", + name: "", + type: "uint8", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class ITokenValidator__factory { + static readonly abi = _abi; + static createInterface(): ITokenValidatorInterface { + return new utils.Interface(_abi) as ITokenValidatorInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): ITokenValidator { + return new Contract(address, _abi, signerOrProvider) as ITokenValidator; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/IV2SwapRouter__factory.ts b/src/contrib/smart-order-router/types/other/factories/IV2SwapRouter__factory.ts new file mode 100644 index 0000000..0396215 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/IV2SwapRouter__factory.ts @@ -0,0 +1,91 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IV2SwapRouter, IV2SwapRouterInterface } from "../IV2SwapRouter"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "swapExactTokensForTokens", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "swapTokensForExactTokens", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, +]; + +export class IV2SwapRouter__factory { + static readonly abi = _abi; + static createInterface(): IV2SwapRouterInterface { + return new utils.Interface(_abi) as IV2SwapRouterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IV2SwapRouter { + return new Contract(address, _abi, signerOrProvider) as IV2SwapRouter; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/IV3SwapRouter__factory.ts b/src/contrib/smart-order-router/types/other/factories/IV3SwapRouter__factory.ts new file mode 100644 index 0000000..71af4ee --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/IV3SwapRouter__factory.ts @@ -0,0 +1,240 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IV3SwapRouter, IV3SwapRouterInterface } from "../IV3SwapRouter"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + ], + internalType: "struct IV3SwapRouter.ExactInputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IV3SwapRouter.ExactInputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + ], + internalType: "struct IV3SwapRouter.ExactOutputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IV3SwapRouter.ExactOutputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IV3SwapRouter__factory { + static readonly abi = _abi; + static createInterface(): IV3SwapRouterInterface { + return new utils.Interface(_abi) as IV3SwapRouterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IV3SwapRouter { + return new Contract(address, _abi, signerOrProvider) as IV3SwapRouter; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/IWETH__factory.ts b/src/contrib/smart-order-router/types/other/factories/IWETH__factory.ts new file mode 100644 index 0000000..1c031b9 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/IWETH__factory.ts @@ -0,0 +1,64 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IWETH, IWETHInterface } from "../IWETH"; + +const _abi = [ + { + inputs: [], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IWETH__factory { + static readonly abi = _abi; + static createInterface(): IWETHInterface { + return new utils.Interface(_abi) as IWETHInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): IWETH { + return new Contract(address, _abi, signerOrProvider) as IWETH; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/MixedRouteQuoterV1__factory.ts b/src/contrib/smart-order-router/types/other/factories/MixedRouteQuoterV1__factory.ts new file mode 100644 index 0000000..c8c9147 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/MixedRouteQuoterV1__factory.ts @@ -0,0 +1,293 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + MixedRouteQuoterV1, + MixedRouteQuoterV1Interface, +} from "../MixedRouteQuoterV1"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factory", + type: "address", + }, + { + internalType: "address", + name: "_factoryV2", + type: "address", + }, + { + internalType: "address", + name: "_WETH9", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "factoryV2", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + name: "quoteExactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160[]", + name: "v3SqrtPriceX96AfterList", + type: "uint160[]", + }, + { + internalType: "uint32[]", + name: "v3InitializedTicksCrossedList", + type: "uint32[]", + }, + { + internalType: "uint256", + name: "v3SwapGasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + internalType: + "struct IMixedRouteQuoterV1.QuoteExactInputSingleV2Params", + name: "params", + type: "tuple", + }, + ], + name: "quoteExactInputSingleV2", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: + "struct IMixedRouteQuoterV1.QuoteExactInputSingleV3Params", + name: "params", + type: "tuple", + }, + ], + name: "quoteExactInputSingleV3", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceX96After", + type: "uint160", + }, + { + internalType: "uint32", + name: "initializedTicksCrossed", + type: "uint32", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60e06040523480156200001157600080fd5b506040516200225438038062002254833981016040819052620000349162000078565b6001600160601b0319606093841b811660805290831b811660a052911b1660c052620000c1565b80516001600160a01b03811681146200007357600080fd5b919050565b6000806000606084860312156200008d578283fd5b62000098846200005b565b9250620000a8602085016200005b565b9150620000b8604085016200005b565b90509250925092565b60805160601c60a05160601c60c05160601c61214e620001066000398061015152806107b052508061012d52508061036d528061061252806107f6525061214e6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063b174a0a71161005b578063b174a0a7146100c8578063c45a0155146100eb578063cdca1753146100f3578063fa461e33146101165761007d565b80634aa4a4fc1461008257806368e0d4e1146100a05780638a499286146100a8575b600080fd5b61008a61012b565b6040516100979190611ea7565b60405180910390f35b61008a61014f565b6100bb6100b6366004611c32565b610173565b6040516100979190611fa0565b6100db6100d6366004611c96565b610192565b6040516100979493929190612051565b61008a61036b565b610106610101366004611b14565b61038f565b6040516100979493929190611fa9565b610129610124366004611b7a565b6105e1565b005b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061018c8260400151836000015184602001516107a6565b92915050565b60208101518151606083015160009283928392839273ffffffffffffffffffffffffffffffffffffffff808216908416109284926101d092906107ef565b905060005a90508173ffffffffffffffffffffffffffffffffffffffff1663128acb0830856102028c6040015161082d565b60808d015173ffffffffffffffffffffffffffffffffffffffff161561022c578c60800151610252565b8761024b5773fffd8963efd1fc6a506488495d951d5263988d25610252565b6401000276a45b8d600001518e606001518f6020015160405160200161027393929190611e41565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016102a2959493929190611ec8565b6040805180830381600087803b1580156102bb57600080fd5b505af1925050508015610309575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261030691810190611b57565b60015b61035e573d808015610337576040519150601f19603f3d011682016040523d82523d6000602084013e61033c565b606091505b505a8203945061034d81848761085f565b975097509750975050505050610364565b50505050505b9193509193565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000606080600061039f86610933565b67ffffffffffffffff811180156103b557600080fd5b506040519080825280602002602001820160405280156103df578160200160208202803683370190505b5092506103eb86610933565b67ffffffffffffffff8111801561040157600080fd5b5060405190808252806020026020018201604052801561042b578160200160208202803683370190505b50915060005b600080600061043f8a610962565b91945092509050628000008116156104a7576104a060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018b815250610173565b98506105a0565b6000806000806105246040518060a001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018f81526020018762ffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815250610192565b9350935093509350828b898151811061053957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818a898151811061058057fe5b63ffffffff90921660209283029190910190910152929b50505094909401935b6001909301926105af8a610993565b156105c4576105bd8a61099b565b99506105d0565b889750505050506105d8565b505050610431565b92959194509250565b60008313806105f05750600082135b6105f957600080fd5b600080600061060784610962565b9250925092506106397f00000000000000000000000000000000000000000000000000000000000000008484846109d0565b506000806000881361067d578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610886000036106b1565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610876000035b9150915060006106c28686866107ef565b90506000808273ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561070d57600080fd5b505afa158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190611d23565b505050505091509150841561076b57604051848152826020820152816040820152606081fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90611f6b565b60405180910390fd5b60008060006107d67f000000000000000000000000000000000000000000000000000000000000000086866109ef565b915091506107e5868383610ad7565b9695505050505050565b60006108257f0000000000000000000000000000000000000000000000000000000000000000610820868686610bad565b610c2a565b949350505050565b60007f8000000000000000000000000000000000000000000000000000000000000000821061085b57600080fd5b5090565b6000806000806000808773ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b1580156108ae57600080fd5b505afa1580156108c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e69190611d23565b509396506108fb94508d9350610d6092505050565b9197509550905061092373ffffffffffffffffffffffffffffffffffffffff89168383610e18565b9350869250505093509350935093565b805160177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec909101045b919050565b600080806109708482611470565b925061097d846014611570565b905061098a846017611470565b91509193909250565b516042111590565b805160609061018c9083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901611660565b60006109e6856109e1868686610bad565b611847565b95945050505050565b60008060006109fe8585611877565b509050600080610a0f88888861191c565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610a5457600080fd5b505afa158015610a68573d6000803e3d6000fd5b505050506040513d6060811015610a7e57600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff87811690841614610ac5578082610ac8565b81815b90999098509650505050505050565b6000808411610b4757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f494e53554646494349454e545f494e5055545f414d4f554e5400000000000000604482015290519081900360640190fd5b600083118015610b575750600082115b610b6057600080fd5b6000610b6e856103e5611a07565b90506000610b7c8285611a07565b90506000610b9683610b90886103e8611a07565b90611a2b565b9050808281610ba157fe5b04979650505050505050565b610bb5611a74565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115610bed579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610610c6c57600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b60008060008351606014610df757604484511015610daa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90611f34565b60048401935083806020019051810190610dc49190611bc8565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d9190611f1a565b83806020019051810190610e0b9190611dba565b9250925092509193909250565b60008060008060008060008060088b73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e6c57600080fd5b505afa158015610e80573d6000803e3d6000fd5b505050506040513d6020811015610e9657600080fd5b5051600290810b908c900b81610ea857fe5b0560020b901d905060006101008c73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b158015610efb57600080fd5b505afa158015610f0f573d6000803e3d6000fd5b505050506040513d6020811015610f2557600080fd5b5051600290810b908d900b81610f3757fe5b0560020b81610f4257fe5b079050600060088d73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8f57600080fd5b505afa158015610fa3573d6000803e3d6000fd5b505050506040513d6020811015610fb957600080fd5b5051600290810b908d900b81610fcb57fe5b0560020b901d905060006101008e73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561101e57600080fd5b505afa158015611032573d6000803e3d6000fd5b505050506040513d602081101561104857600080fd5b5051600290810b908e900b8161105a57fe5b0560020b8161106557fe5b07905060008160ff166001901b8f73ffffffffffffffffffffffffffffffffffffffff16635339c296856040518263ffffffff1660e01b8152600401808260010b815260200191505060206040518083038186803b1580156110c657600080fd5b505afa1580156110da573d6000803e3d6000fd5b505050506040513d60208110156110f057600080fd5b50511611801561118357508d73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561114157600080fd5b505afa158015611155573d6000803e3d6000fd5b505050506040513d602081101561116b57600080fd5b5051600290810b908d900b8161117d57fe5b0760020b155b801561119457508b60020b8d60020b135b945060008360ff166001901b8f73ffffffffffffffffffffffffffffffffffffffff16635339c296876040518263ffffffff1660e01b8152600401808260010b815260200191505060206040518083038186803b1580156111f457600080fd5b505afa158015611208573d6000803e3d6000fd5b505050506040513d602081101561121e57600080fd5b5051161180156112b157508d73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561126f57600080fd5b505afa158015611283573d6000803e3d6000fd5b505050506040513d602081101561129957600080fd5b5051600290810b908e900b816112ab57fe5b0760020b155b80156112c257508b60020b8d60020b125b95508160010b8460010b12806112ee57508160010b8460010b1480156112ee57508060ff168360ff1611155b1561130457839950829750819850809650611311565b8199508097508398508296505b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff87161b9150505b8560010b8760010b13611448578560010b8760010b1415611382577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff858103161c165b6000818c73ffffffffffffffffffffffffffffffffffffffff16635339c2968a6040518263ffffffff1660e01b8152600401808260010b815260200191505060206040518083038186803b1580156113d957600080fd5b505afa1580156113ed573d6000803e3d6000fd5b505050506040513d602081101561140357600080fd5b505116905061141181611a3b565b61ffff16989098019750506001909501947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61133d565b8115611455576001880397505b8215611462576001880397505b505050505050509392505050565b6000818260140110156114e457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b816014018351101561155757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b6000818260030110156115e457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b816003018351101561165757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b60608182601f0110156116d457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b82828401101561174557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b818301845110156117b757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b6060821580156117d6576040519150600082526020820160405261183e565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561180f5780518352602092830192016117f7565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b60006118538383610c2a565b90503373ffffffffffffffffffffffffffffffffffffffff82161461018c57600080fd5b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156118b357600080fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16106118ed5782846118f0565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff821661191557600080fd5b9250929050565b600080600061192b8585611877565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6000821580611a2257505081810281838281611a1f57fe5b04145b61018c57600080fd5b8082018281101561018c57600080fd5b6000805b821561018c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff830190921691600101611a3f565b604080516060810182526000808252602082018190529181019190915290565b600082601f830112611aa4578081fd5b8135611ab7611ab2826120ac565b612088565b818152846020838601011115611acb578283fd5b816020850160208301379081016020019190915292915050565b8051600281900b811461095d57600080fd5b803561095d8161211c565b805161ffff8116811461095d57600080fd5b60008060408385031215611b26578182fd5b823567ffffffffffffffff811115611b3c578283fd5b611b4885828601611a94565b95602094909401359450505050565b60008060408385031215611b69578182fd5b505080516020909101519092909150565b600080600060608486031215611b8e578081fd5b8335925060208401359150604084013567ffffffffffffffff811115611bb2578182fd5b611bbe86828701611a94565b9150509250925092565b600060208284031215611bd9578081fd5b815167ffffffffffffffff811115611bef578182fd5b8201601f81018413611bff578182fd5b8051611c0d611ab2826120ac565b818152856020838501011115611c21578384fd5b6109e68260208301602086016120ec565b600060608284031215611c43578081fd5b6040516060810181811067ffffffffffffffff82111715611c6057fe5b6040528235611c6e8161211c565b81526020830135611c7e8161211c565b60208201526040928301359281019290925250919050565b600060a08284031215611ca7578081fd5b60405160a0810181811067ffffffffffffffff82111715611cc457fe5b6040528235611cd28161211c565b81526020830135611ce28161211c565b602082015260408381013590820152606083013562ffffff81168114611d06578283fd5b6060820152611d1760808401611af7565b60808201529392505050565b600080600080600080600060e0888a031215611d3d578283fd5b8751611d488161211c565b9650611d5660208901611ae5565b9550611d6460408901611b02565b9450611d7260608901611b02565b9350611d8060808901611b02565b925060a088015160ff81168114611d95578283fd5b60c08901519092508015158114611daa578182fd5b8091505092959891949750929550565b600080600060608486031215611dce578081fd5b835192506020840151611de08161211c565b9150611dee60408501611ae5565b90509250925092565b60008151808452611e0f8160208601602086016120ec565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a06080830152611f0f60a0830184611df7565b979650505050505050565b600060208252611f2d6020830184611df7565b9392505050565b60208082526010908201527f556e6578706563746564206572726f7200000000000000000000000000000000604082015260600190565b6020808252818101527f4578616374206f75747075742071756f7465206e6f7420737570706f72746564604082015260600190565b90815260200190565b600060808201868352602060808185015281875180845260a0860191508289019350845b81811015611fff57845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101611fcd565b505084810360408601528651808252908201925081870190845b8181101561203b57825163ffffffff1685529383019391830191600101612019565b5050505060609290920192909252949350505050565b93845273ffffffffffffffffffffffffffffffffffffffff92909216602084015263ffffffff166040830152606082015260800190565b60405181810167ffffffffffffffff811182821017156120a457fe5b604052919050565b600067ffffffffffffffff8211156120c057fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b838110156121075781810151838201526020016120ef565b83811115612116576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461213e57600080fd5b5056fea164736f6c6343000706000a"; + +export class MixedRouteQuoterV1__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _factory: string, + _factoryV2: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _factory, + _factoryV2, + _WETH9, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _factory: string, + _factoryV2: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _factory, + _factoryV2, + _WETH9, + overrides || {} + ); + } + attach(address: string): MixedRouteQuoterV1 { + return super.attach(address) as MixedRouteQuoterV1; + } + connect(signer: Signer): MixedRouteQuoterV1__factory { + return super.connect(signer) as MixedRouteQuoterV1__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MixedRouteQuoterV1Interface { + return new utils.Interface(_abi) as MixedRouteQuoterV1Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MixedRouteQuoterV1 { + return new Contract(address, _abi, signerOrProvider) as MixedRouteQuoterV1; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/QuoterV2__factory.ts b/src/contrib/smart-order-router/types/other/factories/QuoterV2__factory.ts new file mode 100644 index 0000000..9caf38b --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/QuoterV2__factory.ts @@ -0,0 +1,322 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { QuoterV2, QuoterV2Interface } from "../QuoterV2"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factory", + type: "address", + }, + { + internalType: "address", + name: "_WETH9", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + name: "quoteExactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160[]", + name: "sqrtPriceX96AfterList", + type: "uint160[]", + }, + { + internalType: "uint32[]", + name: "initializedTicksCrossedList", + type: "uint32[]", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IQuoterV2.QuoteExactInputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "quoteExactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceX96After", + type: "uint160", + }, + { + internalType: "uint32", + name: "initializedTicksCrossed", + type: "uint32", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + name: "quoteExactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint160[]", + name: "sqrtPriceX96AfterList", + type: "uint160[]", + }, + { + internalType: "uint32[]", + name: "initializedTicksCrossedList", + type: "uint32[]", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IQuoterV2.QuoteExactOutputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "quoteExactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceX96After", + type: "uint160", + }, + { + internalType: "uint32", + name: "initializedTicksCrossed", + type: "uint32", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60c06040523480156200001157600080fd5b506040516200212c3803806200212c833981016040819052620000349162000070565b6001600160601b0319606092831b8116608052911b1660a052620000a7565b80516001600160a01b03811681146200006b57600080fd5b919050565b6000806040838503121562000083578182fd5b6200008e8362000053565b91506200009e6020840162000053565b90509250929050565b60805160601c60a05160601c612051620000db60003980610321525080610577528061095d5280610b9252506120516000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063c45a01551161005b578063c45a0155146100e6578063c6a5026a146100ee578063cdca175314610101578063fa461e33146101145761007d565b80632f80bb1d146100825780634aa4a4fc146100ae578063bd21704a146100c3575b600080fd5b610095610090366004611b2b565b610129565b6040516100a59493929190611eac565b60405180910390f35b6100b661031f565b6040516100a59190611def565b6100d66100d1366004611c49565b610343565b6040516100a59493929190611f54565b6100b6610575565b6100d66100fc366004611c49565b610599565b61009561010f366004611b2b565b610754565b610127610122366004611b91565b61092c565b005b6000606080600061013986610ae8565b67ffffffffffffffff8111801561014f57600080fd5b50604051908082528060200260200182016040528015610179578160200160208202803683370190505b50925061018586610ae8565b67ffffffffffffffff8111801561019b57600080fd5b506040519080825280602002602001820160405280156101c5578160200160208202803683370190505b50915060005b60008060006101d98a610b17565b92509250925060008060008061025c6040518060a001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018f81526020018762ffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815250610343565b9350935093509350828b898151811061027157fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818a89815181106102b857fe5b63ffffffff90921660209283029190910190910152929b50968201966001909601958b926102e58e610b48565b156102fa576102f38e610b50565b9d5061030a565b8c9b505050505050505050610316565b505050505050506101cb565b92959194509250565b7f000000000000000000000000000000000000000000000000000000000000000081565b60208101518151606083015160009283928392839273ffffffffffffffffffffffffffffffffffffffff808216908416109284926103819290610b8b565b9050866080015173ffffffffffffffffffffffffffffffffffffffff16600014156103af5760408701516000555b60005a90508173ffffffffffffffffffffffffffffffffffffffff1663128acb0830856103df8c60400151610bc9565b6000038c6080015173ffffffffffffffffffffffffffffffffffffffff1660001461040e578c60800151610434565b8761042d5773fffd8963efd1fc6a506488495d951d5263988d25610434565b6401000276a45b8d602001518e606001518f6000015160405160200161045593929190611d89565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401610484959493929190611e10565b6040805180830381600087803b15801561049d57600080fd5b505af19250505080156104eb575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526104e891810190611b6e565b60015b610568573d808015610519576040519150601f19603f3d011682016040523d82523d6000602084013e61051e565b606091505b505a82039450886080015173ffffffffffffffffffffffffffffffffffffffff166000141561054c57600080555b610557818487610bfb565b97509750975097505050505061056e565b50505050505b9193509193565b7f000000000000000000000000000000000000000000000000000000000000000081565b60208101518151606083015160009283928392839273ffffffffffffffffffffffffffffffffffffffff808216908416109284926105d79290610b8b565b905060005a90508173ffffffffffffffffffffffffffffffffffffffff1663128acb0830856106098c60400151610bc9565b60808d015173ffffffffffffffffffffffffffffffffffffffff1615610633578c60800151610659565b876106525773fffd8963efd1fc6a506488495d951d5263988d25610659565b6401000276a45b8d600001518e606001518f6020015160405160200161067a93929190611d89565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016106a9959493929190611e10565b6040805180830381600087803b1580156106c257600080fd5b505af1925050508015610710575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261070d91810190611b6e565b60015b610568573d80801561073e576040519150601f19603f3d011682016040523d82523d6000602084013e610743565b606091505b505a82039450610557818487610bfb565b6000606080600061076486610ae8565b67ffffffffffffffff8111801561077a57600080fd5b506040519080825280602002602001820160405280156107a4578160200160208202803683370190505b5092506107b086610ae8565b67ffffffffffffffff811180156107c657600080fd5b506040519080825280602002602001820160405280156107f0578160200160208202803683370190505b50915060005b60008060006108048a610b17565b9250925092506000806000806108876040518060a001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018f81526020018762ffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815250610599565b9350935093509350828b898151811061089c57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818a89815181106108e357fe5b63ffffffff90921660209283029190910190910152929b50968201966001909601958b926109108e610b48565b156102fa5761091e8e610b50565b9d50505050505050506107f6565b600083138061093b5750600082135b61094457600080fd5b600080600061095284610b17565b9250925092506109847f0000000000000000000000000000000000000000000000000000000000000000848484610ccf565b5060008060008089136109ca578573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610888a6000036109ff565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161089896000035b9250925092506000610a12878787610b8b565b90506000808273ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015610a5d57600080fd5b505afa158015610a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a959190611c6b565b5050505050915091508515610abb57604051848152826020820152816040820152606081fd5b60005415610ad1576000548414610ad157600080fd5b604051858152826020820152816040820152606081fd5b805160177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec909101045b919050565b60008080610b258482610cee565b9250610b32846014610dee565b9050610b3f846017610cee565b91509193909250565b516042111590565b8051606090610b859083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901610ede565b92915050565b6000610bc17f0000000000000000000000000000000000000000000000000000000000000000610bbc8686866110c5565b611142565b949350505050565b60007f80000000000000000000000000000000000000000000000000000000000000008210610bf757600080fd5b5090565b6000806000806000808773ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015610c4a57600080fd5b505afa158015610c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c829190611c6b565b50939650610c9794508d935061127892505050565b91975095509050610cbf73ffffffffffffffffffffffffffffffffffffffff89168383611339565b9350869250505093509350935093565b6000610ce585610ce08686866110c5565b611991565b95945050505050565b600081826014011015610d6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b8160140183511015610dd557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b600081826003011015610e6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b8160030183511015610ed557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b60608182601f011015610f5257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b828284011015610fc357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b8183018451101561103557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b60608215801561105457604051915060008252602082016040526110bc565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561108d578051835260209283019201611075565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6110cd6119fa565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115611105579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161061118457600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b60008060008351606014611318576044845110156112cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c290611e75565b60405180910390fd5b600484019350838060200190518101906112e59190611bdf565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c29190611e62565b8380602001905181019061132c9190611d02565b9250925092509193909250565b60008060008060008060008060088b73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561138d57600080fd5b505afa1580156113a1573d6000803e3d6000fd5b505050506040513d60208110156113b757600080fd5b5051600290810b908c900b816113c957fe5b0560020b901d905060006101008c73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561141c57600080fd5b505afa158015611430573d6000803e3d6000fd5b505050506040513d602081101561144657600080fd5b5051600290810b908d900b8161145857fe5b0560020b8161146357fe5b079050600060088d73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156114b057600080fd5b505afa1580156114c4573d6000803e3d6000fd5b505050506040513d60208110156114da57600080fd5b5051600290810b908d900b816114ec57fe5b0560020b901d905060006101008e73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561153f57600080fd5b505afa158015611553573d6000803e3d6000fd5b505050506040513d602081101561156957600080fd5b5051600290810b908e900b8161157b57fe5b0560020b8161158657fe5b07905060008160ff166001901b8f73ffffffffffffffffffffffffffffffffffffffff16635339c296856040518263ffffffff1660e01b8152600401808260010b815260200191505060206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b5051161180156116a457508d73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561166257600080fd5b505afa158015611676573d6000803e3d6000fd5b505050506040513d602081101561168c57600080fd5b5051600290810b908d900b8161169e57fe5b0760020b155b80156116b557508b60020b8d60020b135b945060008360ff166001901b8f73ffffffffffffffffffffffffffffffffffffffff16635339c296876040518263ffffffff1660e01b8152600401808260010b815260200191505060206040518083038186803b15801561171557600080fd5b505afa158015611729573d6000803e3d6000fd5b505050506040513d602081101561173f57600080fd5b5051161180156117d257508d73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b5051600290810b908e900b816117cc57fe5b0760020b155b80156117e357508b60020b8d60020b125b95508160010b8460010b128061180f57508160010b8460010b14801561180f57508060ff168360ff1611155b1561182557839950829750819850809650611832565b8199508097508398508296505b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff87161b9150505b8560010b8760010b13611969578560010b8760010b14156118a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff858103161c165b6000818c73ffffffffffffffffffffffffffffffffffffffff16635339c2968a6040518263ffffffff1660e01b8152600401808260010b815260200191505060206040518083038186803b1580156118fa57600080fd5b505afa15801561190e573d6000803e3d6000fd5b505050506040513d602081101561192457600080fd5b5051169050611932816119c1565b61ffff16989098019750506001909501947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61185e565b8115611976576001880397505b8215611983576001880397505b505050505050509392505050565b600061199d8383611142565b90503373ffffffffffffffffffffffffffffffffffffffff821614610b8557600080fd5b6000805b8215610b85577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8301909216916001016119c5565b604080516060810182526000808252602082018190529181019190915290565b600082601f830112611a2a578081fd5b8135611a3d611a3882611faf565b611f8b565b818152846020838601011115611a51578283fd5b816020850160208301379081016020019190915292915050565b8051600281900b8114610b1257600080fd5b600060a08284031215611a8e578081fd5b60405160a0810181811067ffffffffffffffff82111715611aab57fe5b6040529050808235611abc8161201f565b81526020830135611acc8161201f565b602082015260408381013590820152606083013562ffffff81168114611af157600080fd5b6060820152611b0260808401611b0e565b60808201525092915050565b8035610b128161201f565b805161ffff81168114610b1257600080fd5b60008060408385031215611b3d578182fd5b823567ffffffffffffffff811115611b53578283fd5b611b5f85828601611a1a565b95602094909401359450505050565b60008060408385031215611b80578182fd5b505080516020909101519092909150565b600080600060608486031215611ba5578081fd5b8335925060208401359150604084013567ffffffffffffffff811115611bc9578182fd5b611bd586828701611a1a565b9150509250925092565b600060208284031215611bf0578081fd5b815167ffffffffffffffff811115611c06578182fd5b8201601f81018413611c16578182fd5b8051611c24611a3882611faf565b818152856020838501011115611c38578384fd5b610ce5826020830160208601611fef565b600060a08284031215611c5a578081fd5b611c648383611a7d565b9392505050565b600080600080600080600060e0888a031215611c85578283fd5b8751611c908161201f565b9650611c9e60208901611a6b565b9550611cac60408901611b19565b9450611cba60608901611b19565b9350611cc860808901611b19565b925060a088015160ff81168114611cdd578283fd5b60c08901519092508015158114611cf2578182fd5b8091505092959891949750929550565b600080600060608486031215611d16578081fd5b835192506020840151611d288161201f565b9150611d3660408501611a6b565b90509250925092565b60008151808452611d57816020860160208601611fef565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a06080830152611e5760a0830184611d3f565b979650505050505050565b600060208252611c646020830184611d3f565b60208082526010908201527f556e6578706563746564206572726f7200000000000000000000000000000000604082015260600190565b600060808201868352602060808185015281875180845260a0860191508289019350845b81811015611f0257845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101611ed0565b505084810360408601528651808252908201925081870190845b81811015611f3e57825163ffffffff1685529383019391830191600101611f1c565b5050505060609290920192909252949350505050565b93845273ffffffffffffffffffffffffffffffffffffffff92909216602084015263ffffffff166040830152606082015260800190565b60405181810167ffffffffffffffff81118282101715611fa757fe5b604052919050565b600067ffffffffffffffff821115611fc357fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b8381101561200a578181015183820152602001611ff2565b83811115612019576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461204157600080fd5b5056fea164736f6c6343000706000a"; + +export class QuoterV2__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _factory: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(_factory, _WETH9, overrides || {}) as Promise; + } + getDeployTransaction( + _factory: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_factory, _WETH9, overrides || {}); + } + attach(address: string): QuoterV2 { + return super.attach(address) as QuoterV2; + } + connect(signer: Signer): QuoterV2__factory { + return super.connect(signer) as QuoterV2__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): QuoterV2Interface { + return new utils.Interface(_abi) as QuoterV2Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): QuoterV2 { + return new Contract(address, _abi, signerOrProvider) as QuoterV2; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/Quoter__factory.ts b/src/contrib/smart-order-router/types/other/factories/Quoter__factory.ts new file mode 100644 index 0000000..8c59a27 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/Quoter__factory.ts @@ -0,0 +1,245 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { Quoter, QuoterInterface } from "../Quoter"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factory", + type: "address", + }, + { + internalType: "address", + name: "_WETH9", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + name: "quoteExactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + name: "quoteExactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + name: "quoteExactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + name: "quoteExactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60c060405234801561001057600080fd5b506040516112e53803806112e583398101604081905261002f91610069565b6001600160601b0319606092831b8116608052911b1660a05261009b565b80516001600160a01b038116811461006457600080fd5b919050565b6000806040838503121561007b578182fd5b6100848361004d565b91506100926020840161004d565b90509250929050565b60805160601c60a05160601c6112176100ce60003980610342525080610366528061058652806106d552506112176000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063c45a01551161005b578063c45a0155146100d3578063cdca1753146100db578063f7729d43146100ee578063fa461e33146101015761007d565b80632f80bb1d1461008257806330d07f21146100ab5780634aa4a4fc146100be575b600080fd5b610095610090366004610e9e565b610116565b6040516100a29190611148565b60405180910390f35b6100956100b9366004610e30565b61017b565b6100c6610340565b6040516100a29190611084565b6100c6610364565b6100956100e9366004610e9e565b610388565b6100956100fc366004610e30565b6103d6565b61011461010f366004610f04565b610555565b005b60005b600061012484610660565b9050600080600061013487610668565b92509250925061014882848389600061017b565b955083156101605761015987610699565b965061016c565b85945050505050610175565b50505050610119565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff808616878216109083166101a65760008490555b6101b18787876106ce565b73ffffffffffffffffffffffffffffffffffffffff1663128acb0830836101d78861070c565b60000373ffffffffffffffffffffffffffffffffffffffff8816156101fc5787610222565b8561021b5773fffd8963efd1fc6a506488495d951d5263988d25610222565b6401000276a45b8b8b8e6040516020016102379392919061101e565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016102669594939291906110a5565b6040805180830381600087803b15801561027f57600080fd5b505af19250505080156102cd575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526102ca91810190610ee1565b60015b610333573d8080156102fb576040519150601f19603f3d011682016040523d82523d6000602084013e610300565b606091505b5073ffffffffffffffffffffffffffffffffffffffff841661032157600080555b61032a8161073e565b92505050610337565b5050505b95945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005b600061039684610660565b905060008060006103a687610668565b9250925092506103ba8383838960006103d6565b95508315610160576103cb87610699565b96505050505061038b565b600073ffffffffffffffffffffffffffffffffffffffff808616908716106103ff8787876106ce565b73ffffffffffffffffffffffffffffffffffffffff1663128acb0830836104258861070c565b73ffffffffffffffffffffffffffffffffffffffff881615610447578761046d565b856104665773fffd8963efd1fc6a506488495d951d5263988d2561046d565b6401000276a45b8c8b8d6040516020016104829392919061101e565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016104b19594939291906110a5565b6040805180830381600087803b1580156104ca57600080fd5b505af1925050508015610518575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261051591810190610ee1565b60015b610333573d808015610546576040519150601f19603f3d011682016040523d82523d6000602084013e61054b565b606091505b5061032a8161073e565b60008313806105645750600082135b61056d57600080fd5b600080600061057b84610668565b9250925092506105ad7f00000000000000000000000000000000000000000000000000000000000000008484846107ef565b5060008060008089136105f3578573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610888a600003610628565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161089896000035b925092509250821561063f57604051818152602081fd5b6000541561065557600054811461065557600080fd5b604051828152602081fd5b516042111590565b600080806106768482610805565b9250610683846014610905565b9050610690846017610805565b91509193909250565b80516060906101759083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9016109f5565b60006107047f00000000000000000000000000000000000000000000000000000000000000006106ff868686610bdc565b610c59565b949350505050565b60007f8000000000000000000000000000000000000000000000000000000000000000821061073a57600080fd5b5090565b600081516020146107db5760448251101561078e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078590611111565b60405180910390fd5b600482019150818060200190518101906107a89190610f52565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078591906110f7565b818060200190518101906101759190610fbc565b600061033785610800868686610bdc565b610d8f565b60008182601401101561087957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b81601401835110156108ec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b60008182600301101561097957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b81600301835110156109ec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b60608182601f011015610a6957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b828284011015610ada57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b81830184511015610b4c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b606082158015610b6b5760405191506000825260208201604052610bd3565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610ba4578051835260209283019201610b8c565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b610be4610dbf565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115610c1c579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610610c9b57600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b6000610d9b8383610c59565b90503373ffffffffffffffffffffffffffffffffffffffff82161461017557600080fd5b604080516060810182526000808252602082018190529181019190915290565b600082601f830112610def578081fd5b8135610e02610dfd82611175565b611151565b818152846020838601011115610e16578283fd5b816020850160208301379081016020019190915292915050565b600080600080600060a08688031215610e47578081fd5b8535610e52816111e5565b94506020860135610e62816111e5565b9350604086013562ffffff81168114610e79578182fd5b9250606086013591506080860135610e90816111e5565b809150509295509295909350565b60008060408385031215610eb0578182fd5b823567ffffffffffffffff811115610ec6578283fd5b610ed285828601610ddf565b95602094909401359450505050565b60008060408385031215610ef3578182fd5b505080516020909101519092909150565b600080600060608486031215610f18578283fd5b8335925060208401359150604084013567ffffffffffffffff811115610f3c578182fd5b610f4886828701610ddf565b9150509250925092565b600060208284031215610f63578081fd5b815167ffffffffffffffff811115610f79578182fd5b8201601f81018413610f89578182fd5b8051610f97610dfd82611175565b818152856020838501011115610fab578384fd5b6103378260208301602086016111b5565b600060208284031215610fcd578081fd5b5051919050565b60008151808452610fec8160208601602086016111b5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a060808301526110ec60a0830184610fd4565b979650505050505050565b60006020825261110a6020830184610fd4565b9392505050565b60208082526010908201527f556e6578706563746564206572726f7200000000000000000000000000000000604082015260600190565b90815260200190565b60405181810167ffffffffffffffff8111828210171561116d57fe5b604052919050565b600067ffffffffffffffff82111561118957fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b838110156111d05781810151838201526020016111b8565b838111156111df576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461120757600080fd5b5056fea164736f6c6343000706000a"; + +export class Quoter__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _factory: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(_factory, _WETH9, overrides || {}) as Promise; + } + getDeployTransaction( + _factory: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_factory, _WETH9, overrides || {}); + } + attach(address: string): Quoter { + return super.attach(address) as Quoter; + } + connect(signer: Signer): Quoter__factory { + return super.connect(signer) as Quoter__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): QuoterInterface { + return new utils.Interface(_abi) as QuoterInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): Quoter { + return new Contract(address, _abi, signerOrProvider) as Quoter; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/SwapRouter02__factory.ts b/src/contrib/smart-order-router/types/other/factories/SwapRouter02__factory.ts new file mode 100644 index 0000000..b1449ee --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/SwapRouter02__factory.ts @@ -0,0 +1,1134 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { SwapRouter02, SwapRouter02Interface } from "../SwapRouter02"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factoryV2", + type: "address", + }, + { + internalType: "address", + name: "factoryV3", + type: "address", + }, + { + internalType: "address", + name: "_positionManager", + type: "address", + }, + { + internalType: "address", + name: "_WETH9", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "approveMax", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "approveMaxMinusOne", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "approveZeroThenMax", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + ], + name: "approveZeroThenMaxMinusOne", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "callPositionManager", + outputs: [ + { + internalType: "bytes", + name: "result", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "paths", + type: "bytes[]", + }, + { + internalType: "uint128[]", + name: "amounts", + type: "uint128[]", + }, + { + internalType: "uint24", + name: "maximumTickDivergence", + type: "uint24", + }, + { + internalType: "uint32", + name: "secondsAgo", + type: "uint32", + }, + ], + name: "checkOracleSlippage", + outputs: [], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint24", + name: "maximumTickDivergence", + type: "uint24", + }, + { + internalType: "uint32", + name: "secondsAgo", + type: "uint32", + }, + ], + name: "checkOracleSlippage", + outputs: [], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + ], + internalType: "struct IV3SwapRouter.ExactInputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IV3SwapRouter.ExactInputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + ], + internalType: "struct IV3SwapRouter.ExactOutputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IV3SwapRouter.ExactOutputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "factoryV2", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "getApprovalType", + outputs: [ + { + internalType: "enum IApproveAndCall.ApprovalType", + name: "", + type: "uint8", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + ], + internalType: "struct IApproveAndCall.IncreaseLiquidityParams", + name: "params", + type: "tuple", + }, + ], + name: "increaseLiquidity", + outputs: [ + { + internalType: "bytes", + name: "result", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + internalType: "struct IApproveAndCall.MintParams", + name: "params", + type: "tuple", + }, + ], + name: "mint", + outputs: [ + { + internalType: "bytes", + name: "result", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "previousBlockhash", + type: "bytes32", + }, + { + internalType: "bytes[]", + name: "data", + type: "bytes[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "bytes[]", + name: "", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bytes[]", + name: "data", + type: "bytes[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "bytes[]", + name: "", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "data", + type: "bytes[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "bytes[]", + name: "results", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "positionManager", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "pull", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "refundETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitAllowed", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitAllowedIfNecessary", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitIfNecessary", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "swapExactTokensForTokens", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "swapTokensForExactTokens", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "sweepTokenWithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "sweepTokenWithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "_data", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "unwrapWETH9WithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "unwrapWETH9WithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "wrapETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +]; + +const _bytecode = + "0x6101006040526000196000553480156200001857600080fd5b5060405162006135380380620061358339810160408190526200003b9162000087565b6001600160601b0319606094851b811660805291841b821660a05291831b811660c052911b1660e052620000e3565b80516001600160a01b03811681146200008257600080fd5b919050565b600080600080608085870312156200009d578384fd5b620000a8856200006a565b9350620000b8602086016200006a565b9250620000c8604086016200006a565b9150620000d8606086016200006a565b905092959194509250565b60805160601c60a05160601c60c05160601c60e05160601c615fb162000184600039806102c15280610b3c52806112ad52806113d7528061147e52806116af52806117d95280612d8f5280612def5280612e70525080611e4c52806124df5280613cdb52508061166f5280611b1a5280611e9c52806132a6525080610c625280610d365280610fe2528061164b5280612fc252806131855250615fb16000f3fe6080604052600436106102a45760003560e01c80639b2c0a371161016e578063dee00f35116100cb578063f100b2051161007f578063f2d5d56b11610064578063f2d5d56b1461066e578063f3995c6714610681578063fa461e33146106945761034f565b8063f100b2051461063b578063f25801a71461064e5761034f565b8063e0e189a0116100b0578063e0e189a0146105f5578063e90a182f14610608578063efdeed8e1461061b5761034f565b8063dee00f35146105b5578063df2ab5bb146105e25761034f565b8063b858183f11610122578063c45a015511610107578063c45a01551461057a578063cab372ce1461058f578063d4ef38de146105a25761034f565b8063b858183f14610554578063c2e3140a146105675761034f565b8063ab3fdd5011610153578063ab3fdd501461051b578063ac9650d81461052e578063b3a2af13146105415761034f565b80639b2c0a37146104f5578063a4a78f0c146105085761034f565b8063472b43f31161021c578063571ac8b0116101d0578063639d71a9116101b5578063639d71a9146104b857806368e0d4e1146104cb578063791b98bc146104e05761034f565b8063571ac8b0146104925780635ae401dc146104a55761034f565b80634961699711610201578063496169971461044a5780634aa4a4fc1461045d5780635023b4df1461047f5761034f565b8063472b43f31461042457806349404b7c146104375761034f565b80631c58db4f116102735780633068c554116102585780633068c554146103eb57806342712a67146103fe5780634659a494146104115761034f565b80631c58db4f146103b85780631f0464d1146103cb5761034f565b806304e45aaf1461035457806309b813461461037d57806311ed56c91461039057806312210e8a146103b05761034f565b3661034f573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461034d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b610367610362366004615543565b6106b4565b6040516103749190615dfd565b60405180910390f35b61036761038b3660046155de565b61083c565b6103a361039e366004615638565b61091c565b6040516103749190615b7a565b61034d610b28565b61034d6103c63660046157bb565b610b3a565b6103de6103d93660046152a7565b610bbe565b6040516103749190615afc565b61034d6103f93660046150d8565b610c48565b61036761040c366004615885565b610c5b565b61034d61041f366004615121565b610e35565b610367610432366004615885565b610ef5565b61034d6104453660046157eb565b6112a9565b61034d6104583660046157bb565b61146f565b34801561046957600080fd5b5061047261147c565b6040516103749190615a3c565b61036761048d366004615616565b6114a0565b61034d6104a0366004614feb565b611589565b6103de6104b33660046152a7565b6115bc565b61034d6104c6366004614feb565b611635565b3480156104d757600080fd5b50610472611649565b3480156104ec57600080fd5b5061047261166d565b61034d61050336600461581a565b611691565b61034d610516366004615121565b6118a7565b61034d610529366004614feb565b61197c565b6103de61053c36600461517c565b6119ba565b6103a361054f3660046152f1565b611b14565b61036761056236600461549d565b611bd2565b61034d610575366004615121565b611d95565b34801561058657600080fd5b50610472611e4a565b61034d61059d366004614feb565b611990565b61034d6105b0366004615858565b611e6e565b3480156105c157600080fd5b506105d56105d036600461500e565b611e7a565b6040516103749190615b8d565b61034d6105f0366004615039565b612027565b61034d61060336600461507a565b61213e565b61034d61061636600461500e565b6122a4565b34801561062757600080fd5b5061034d6106363660046151bc565b6122b3565b6103a3610649366004615627565b612305565b34801561065a57600080fd5b5061034d610669366004615324565b6123a5565b61034d61067c36600461500e565b6123f6565b61034d61068f366004615121565b612402565b3480156106a057600080fd5b5061034d6106af3660046153b8565b61249a565b600080600083608001511415610771575081516040517f70a0823100000000000000000000000000000000000000000000000000000000815260019173ffffffffffffffffffffffffffffffffffffffff16906370a082319061071b903090600401615a3c565b60206040518083038186803b15801561073357600080fd5b505afa158015610747573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076b91906157d3565b60808401525b6107ed836080015184606001518560c001516040518060400160405280886000015189604001518a602001516040516020016107af939291906159aa565b6040516020818303038152906040528152602001866107ce57336107d0565b305b73ffffffffffffffffffffffffffffffffffffffff1690526125de565b91508260a00151821015610836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c7d565b60405180910390fd5b50919050565b60006108b0604083018035906108559060208601614feb565b604080518082019091526000908061086d8880615e41565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252503360209091015261278f565b505060005460608201358111156108f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c0f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600055919050565b604080516101608101909152606090610b20907f8831645600000000000000000000000000000000000000000000000000000000908061095f6020870187614feb565b73ffffffffffffffffffffffffffffffffffffffff16815260200185602001602081019061098d9190614feb565b73ffffffffffffffffffffffffffffffffffffffff1681526020016109b860608701604088016157a1565b62ffffff1681526020016109d26080870160608801615379565b60020b81526020016109ea60a0870160808801615379565b60020b8152602090810190610a0a90610a0590880188614feb565b612976565b8152602001610a25866020016020810190610a059190614feb565b815260a0860135602082015260c08601356040820152606001610a4f610100870160e08801614feb565b73ffffffffffffffffffffffffffffffffffffffff1681526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815250604051602401610a9e9190615cf8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611b14565b90505b919050565b4715610b3857610b383347612a1b565b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610ba257600080fd5b505af1158015610bb6573d6000803e3d6000fd5b505050505050565b60608380600143034014610c3357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f426c6f636b686173680000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610c3d84846119ba565b91505b509392505050565b610c55848433858561213e565b50505050565b6000610cbb7f000000000000000000000000000000000000000000000000000000000000000087868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612b6992505050565b600081518110610cc757fe5b6020026020010151905084811115610d0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c0f565b610da484846000818110610d1b57fe5b9050602002016020810190610d309190614feb565b33610d9e7f000000000000000000000000000000000000000000000000000000000000000088886000818110610d6257fe5b9050602002016020810190610d779190614feb565b89896001818110610d8457fe5b9050602002016020810190610d999190614feb565b612ca2565b84612d8d565b73ffffffffffffffffffffffffffffffffffffffff821660011415610dcb57339150610dee565b73ffffffffffffffffffffffffffffffffffffffff821660021415610dee573091505b610e2c848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250612f6b915050565b95945050505050565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e48101839052905173ffffffffffffffffffffffffffffffffffffffff881691638fcbaf0c9161010480830192600092919082900301818387803b158015610ed557600080fd5b505af1158015610ee9573d6000803e3d6000fd5b50505050505050505050565b60008086610fab575060018484600081610f0b57fe5b9050602002016020810190610f209190614feb565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f589190615a3c565b60206040518083038186803b158015610f7057600080fd5b505afa158015610f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa891906157d3565b96505b61103685856000818110610fbb57fe5b9050602002016020810190610fd09190614feb565b82610fdb5733610fdd565b305b6110307f00000000000000000000000000000000000000000000000000000000000000008989600081811061100e57fe5b90506020020160208101906110239190614feb565b8a8a6001818110610d8457fe5b8a612d8d565b73ffffffffffffffffffffffffffffffffffffffff83166001141561105d57339250611080565b73ffffffffffffffffffffffffffffffffffffffff831660021415611080573092505b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181106110b057fe5b90506020020160208101906110c59190614feb565b73ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016110fd9190615a3c565b60206040518083038186803b15801561111557600080fd5b505afa158015611129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114d91906157d3565b905061118d868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250889250612f6b915050565b6112628187877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181106111bf57fe5b90506020020160208101906111d49190614feb565b73ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b815260040161120c9190615a3c565b60206040518083038186803b15801561122457600080fd5b505afa158015611238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125c91906157d3565b90613270565b92508683101561129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c7d565b505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561133257600080fd5b505afa158015611346573d6000803e3d6000fd5b505050506040513d602081101561135c57600080fd5b50519050828110156113cf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b801561146a577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561144857600080fd5b505af115801561145c573d6000803e3d6000fd5b5050505061146a8282612a1b565b505050565b61147981336112a9565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000611549608083018035906114b99060608601614feb565b6114c960e0860160c08701614feb565b60405180604001604052808760200160208101906114e79190614feb565b6114f760608a0160408b016157a1565b61150460208b018b614feb565b604051602001611516939291906159aa565b60405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff1681525061278f565b90508160a001358111156108f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c0f565b6115b3817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613280565b61147957600080fd5b606083806115c86133cc565b1115610c3357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b611640816000613280565b61158957600080fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000821180156116a2575060648211155b6116ab57600080fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561173457600080fd5b505afa158015611748573d6000803e3d6000fd5b505050506040513d602081101561175e57600080fd5b50519050848110156117d157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b80156118a0577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561184a57600080fd5b505af115801561185e573d6000803e3d6000fd5b50505050600061271061187a85846133d090919063ffffffff16565b8161188157fe5b0490508015611894576118948382612a1b565b610bb685828403612a1b565b5050505050565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b15801561193c57600080fd5b505afa158015611950573d6000803e3d6000fd5b505050506040513d602081101561196657600080fd5b50511015610bb657610bb6868686868686610e35565b611987816000613280565b61199057600080fd5b6115b3817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe613280565b60608167ffffffffffffffff811180156119d357600080fd5b50604051908082528060200260200182016040528015611a0757816020015b60608152602001906001900390816119f25790505b50905060005b82811015611b0d5760008030868685818110611a2557fe5b9050602002810190611a379190615e41565b604051611a45929190615a10565b600060405180830381855af49150503d8060008114611a80576040519150601f19603f3d011682016040523d82523d6000602084013e611a85565b606091505b509150915081611aeb57604481511015611a9e57600080fd5b60048101905080806020019051810190611ab89190615433565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d9190615b7a565b80848481518110611af857fe5b60209081029190910101525050600101611a0d565b5092915050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1683604051611b5d9190615a20565b6000604051808303816000865af19150503d8060008114611b9a576040519150601f19603f3d011682016040523d82523d6000602084013e611b9f565b606091505b50925090508061083657604482511015611bb857600080fd5b60048201915081806020019051810190611ab89190615433565b600080600083604001511415611ca357600190506000611bf584600001516133f4565b50506040517f70a0823100000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff8216906370a0823190611c4c903090600401615a3c565b60206040518083038186803b158015611c6457600080fd5b505afa158015611c78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9c91906157d3565b6040850152505b600081611cb05733611cb2565b305b90505b6000611cc48560000151613425565b9050611d1d856040015182611cdd578660200151611cdf565b305b60006040518060400160405280611cf98b6000015161342d565b81526020018773ffffffffffffffffffffffffffffffffffffffff168152506125de565b60408601528015611d3d578451309250611d369061343c565b8552611d4a565b8460400151935050611d50565b50611cb5565b8360600151831015611d8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c7d565b5050919050565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051869173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015611e0a57600080fd5b505afa158015611e1e573d6000803e3d6000fd5b505050506040513d6020811015611e3457600080fd5b50511015610bb657610bb6868686868686612402565b7f000000000000000000000000000000000000000000000000000000000000000081565b61146a83338484611691565b6000818373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e307f00000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401611ed8929190615a5d565b60206040518083038186803b158015611ef057600080fd5b505afa158015611f04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2891906157d3565b10611f3557506000612021565b611f5f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613280565b15611f6c57506001612021565b611f96837ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe613280565b15611fa357506002612021565b611fae836000613280565b611fb757600080fd5b611fe1837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613280565b15611fee57506003612021565b612018837ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe613280565b1561034f575060045b92915050565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561209057600080fd5b505afa1580156120a4573d6000803e3d6000fd5b505050506040513d60208110156120ba57600080fd5b505190508281101561212d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b8015610c5557610c55848383613471565b60008211801561214f575060648211155b61215857600080fd5b60008573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156121c157600080fd5b505afa1580156121d5573d6000803e3d6000fd5b505050506040513d60208110156121eb57600080fd5b505190508481101561225e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b8015610bb657600061271061227383866133d0565b8161227a57fe5b049050801561228e5761228e878483613471565b61229b8786838503613471565b50505050505050565b6122af828233612027565b5050565b6000806122c1868685613646565b915091508362ffffff1681830312610bb6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c46565b6060610b2063219f5d1760e01b6040518060c001604052808560400135815260200161233d866000016020810190610a059190614feb565b8152602001612358866020016020810190610a059190614feb565b815260200185606001358152602001856080013581526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815250604051602401610a9e9190615cb4565b6000806123b28584613859565b915091508362ffffff16818303126118a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615c46565b6122af82333084613ae1565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c48101839052905173ffffffffffffffffffffffffffffffffffffffff88169163d505accf9160e480830192600092919082900301818387803b158015610ed557600080fd5b60008413806124a95750600083135b6124b257600080fd5b60006124c08284018461564a565b905060008060006124d484600001516133f4565b9250925092506125067f0000000000000000000000000000000000000000000000000000000000000000848484613cbe565b5060008060008a13612547578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161089612578565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16108a5b915091508115612597576125928587602001513384612d8d565b610ee9565b85516125a290613425565b156125c75785516125b29061343c565b86526125c1813360008961278f565b50610ee9565b80600081905550610ee98487602001513384612d8d565b600073ffffffffffffffffffffffffffffffffffffffff8416600114156126075733935061262a565b73ffffffffffffffffffffffffffffffffffffffff84166002141561262a573093505b600080600061263c85600001516133f4565b9194509250905073ffffffffffffffffffffffffffffffffffffffff8083169084161060008061266d868686613cd4565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b856126938f613d12565b73ffffffffffffffffffffffffffffffffffffffff8e16156126b5578d6126db565b876126d45773fffd8963efd1fc6a506488495d951d5263988d256126db565b6401000276a45b8d6040516020016126ec9190615da6565b6040516020818303038152906040526040518663ffffffff1660e01b815260040161271b959493929190615a84565b6040805180830381600087803b15801561273457600080fd5b505af1158015612748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276c9190615395565b915091508261277b578161277d565b805b6000039b9a5050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8416600114156127b8573393506127db565b73ffffffffffffffffffffffffffffffffffffffff8416600214156127db573093505b60008060006127ed85600001516133f4565b9194509250905073ffffffffffffffffffffffffffffffffffffffff8084169083161060008061281e858786613cd4565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b856128448f613d12565b60000373ffffffffffffffffffffffffffffffffffffffff8e1615612869578d61288f565b876128885773fffd8963efd1fc6a506488495d951d5263988d2561288f565b6401000276a45b8d6040516020016128a09190615da6565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016128cf959493929190615a84565b6040805180830381600087803b1580156128e857600080fd5b505af11580156128fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129209190615395565b9150915060008361293557818360000361293b565b82826000035b909850905073ffffffffffffffffffffffffffffffffffffffff8a16612967578b811461296757600080fd5b50505050505050949350505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8316906370a08231906129cb903090600401615a3c565b60206040518083038186803b1580156129e357600080fd5b505afa1580156129f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2091906157d3565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310612a9257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612a55565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612af4576040519150601f19603f3d011682016040523d82523d6000602084013e612af9565b606091505b505090508061146a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6060600282511015612b7a57600080fd5b815167ffffffffffffffff81118015612b9257600080fd5b50604051908082528060200260200182016040528015612bbc578160200160208202803683370190505b5090508281600183510381518110612bd057fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b8015610c4057600080612c3d87866001860381518110612c1c57fe5b6020026020010151878681518110612c3057fe5b6020026020010151613d44565b91509150612c5f848481518110612c5057fe5b60200260200101518383613e2c565b846001850381518110612c6e57fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01612c00565b6000806000612cb18585613f02565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612de85750804710155b15612f31577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e5557600080fd5b505af1158015612e69573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612eff57600080fd5b505af1158015612f13573d6000803e3d6000fd5b505050506040513d6020811015612f2957600080fd5b50610c559050565b73ffffffffffffffffffffffffffffffffffffffff8316301415612f5f57612f5a848383613471565b610c55565b610c5584848484613ae1565b60005b600183510381101561146a57600080848381518110612f8957fe5b6020026020010151858460010181518110612fa057fe5b6020026020010151915091506000612fb88383613f02565b5090506000612fe87f00000000000000000000000000000000000000000000000000000000000000008585612ca2565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561303657600080fd5b505afa15801561304a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061306e91906156da565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000808773ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16146130d05782846130d3565b83835b91509150613114828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b815260040161120c9190615a3c565b9550613121868383613fa7565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161461316557826000613169565b6000835b91509150600060028c51038a10613180578a6131c1565b6131c17f0000000000000000000000000000000000000000000000000000000000000000898e8d600201815181106131b457fe5b6020026020010151612ca2565b604080516000815260208101918290527f022c0d9f0000000000000000000000000000000000000000000000000000000090915290915073ffffffffffffffffffffffffffffffffffffffff87169063022c0d9f906132299086908690869060248101615e06565b600060405180830381600087803b15801561324357600080fd5b505af1158015613257573d6000803e3d6000fd5b50506001909b019a50612f6e9950505050505050505050565b8082038281111561202157600080fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1663095ea7b360e01b7f0000000000000000000000000000000000000000000000000000000000000000866040516024016132d7929190615ad6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516133609190615a20565b6000604051808303816000865af19150503d806000811461339d576040519150601f19603f3d011682016040523d82523d6000602084013e6133a2565b606091505b5091509150818015610e2c575080511580610e2c575080806020019051810190610e2c919061528d565b4290565b60008215806133eb575050818102818382816133e857fe5b04145b61202157600080fd5b60008080613402848261407d565b925061340f84601461417d565b905061341c84601761407d565b91509193909250565b516042111590565b6060610b20826000602b61426d565b8051606090610b209083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90161426d565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b6020831061354657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613509565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146135a8576040519150601f19603f3d011682016040523d82523d6000602084013e6135ad565b606091505b50915091508180156135db5750805115806135db57508080602001905160208110156135d857600080fd5b50515b6118a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080835185511461365757600080fd5b6000855167ffffffffffffffff8111801561367157600080fd5b506040519080825280602002602001820160405280156136ab57816020015b613698614e34565b8152602001906001900390816136905790505b5090506000865167ffffffffffffffff811180156136c857600080fd5b5060405190808252806020026020018201604052801561370257816020015b6136ef614e34565b8152602001906001900390816136e75790505b50905060005b8751811015613832576000806137318a848151811061372357fe5b602002602001015189613859565b9150915061373e82614454565b85848151811061374a57fe5b60200260200101516000019060020b908160020b8152505061376b81614454565b84848151811061377757fe5b60200260200101516000019060020b908160020b8152505088838151811061379b57fe5b60200260200101518584815181106137af57fe5b6020026020010151602001906fffffffffffffffffffffffffffffffff1690816fffffffffffffffffffffffffffffffff16815250508883815181106137f157fe5b602002602001015184848151811061380557fe5b6020908102919091018101516fffffffffffffffffffffffffffffffff9092169101525050600101613708565b5061383c82614465565b60020b935061384a81614465565b60020b92505050935093915050565b6000806000806138688661454d565b90506000805b82811015613a865760008060006138848b6133f4565b9250925092506000613897848484613cd4565b905060008063ffffffff8d166138c0576138b083614578565b600291820b9350900b9050613962565b6138ca838e614810565b8160020b915050809250508273ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561391b57600080fd5b505afa15801561392f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139539190615715565b50505060029290920b93505050505b600189038714156139a3578473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161099506139b2565b6139ac8e61343c565b9d508597505b6000871580613a5357508673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1610613a23578673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1610613a53565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16105b90508015613a68579b82019b9a81019a613a73565b828d039c50818c039b505b50506001909501945061386e9350505050565b5082613ad7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff850294507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840293505b5050509250929050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b60208310613bbe57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613b81565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c20576040519150601f19603f3d011682016040523d82523d6000602084013e613c25565b606091505b5091509150818015613c53575080511580613c535750808060200190516020811015613c5057600080fd5b50515b610bb657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000610e2c85613ccf868686614c41565b614cbe565b6000613d0a7f0000000000000000000000000000000000000000000000000000000000000000613d05868686614c41565b614cee565b949350505050565b60007f80000000000000000000000000000000000000000000000000000000000000008210613d4057600080fd5b5090565b6000806000613d538585613f02565b509050600080613d64888888612ca2565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613da957600080fd5b505afa158015613dbd573d6000803e3d6000fd5b505050506040513d6060811015613dd357600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff87811690841614613e1a578082613e1d565b81815b90999098509650505050505050565b6000808411613e9c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e54000000000000604482015290519081900360640190fd5b600083118015613eac5750600082115b613eb557600080fd5b6000613ecd6103e8613ec786886133d0565b906133d0565b90506000613ee16103e5613ec78689613270565b9050613ef86001828481613ef157fe5b0490614e24565b9695505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613f3e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610613f78578284613f7b565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216613fa057600080fd5b9250929050565b600080841161401757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f494e53554646494349454e545f494e5055545f414d4f554e5400000000000000604482015290519081900360640190fd5b6000831180156140275750600082115b61403057600080fd5b600061403e856103e56133d0565b9050600061404c82856133d0565b9050600061406683614060886103e86133d0565b90614e24565b905080828161407157fe5b04979650505050505050565b6000818260140110156140f157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b816014018351101561416457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b6000818260030110156141f157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b816003018351101561426457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b60608182601f0110156142e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b82828401101561435257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b818301845110156143c457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b6060821580156143e3576040519150600082526020820160405261444b565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561441c578051835260209283019201614404565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b80600281900b8114610b2357600080fd5b6000806000805b84518110156144fa5784818151811061448157fe5b6020026020010151602001516fffffffffffffffffffffffffffffffff168582815181106144ab57fe5b60200260200101516000015160020b02830192508481815181106144cb57fe5b6020026020010151602001516fffffffffffffffffffffffffffffffff1682019150808060010191505061446c565b5080828161450457fe5b05925060008212801561451f575080828161451b57fe5b0715155b15611d8e5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01919050565b5160177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec9091010490565b6000806000808473ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b1580156145c457600080fd5b505afa1580156145d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145fc9190615715565b50939750919550935050600161ffff84161191506146489050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615bd8565b6000808673ffffffffffffffffffffffffffffffffffffffff1663252c09d7856040518263ffffffff1660e01b81526004016146849190615dee565b60806040518083038186803b15801561469c57600080fd5b505afa1580156146b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146d491906158e0565b5050915091506146e26133cc565b63ffffffff168263ffffffff16146146fc57849550614807565b60008361ffff1660018561ffff168761ffff1601038161471857fe5b06905060008060008a73ffffffffffffffffffffffffffffffffffffffff1663252c09d7856040518263ffffffff1660e01b81526004016147599190615dfd565b60806040518083038186803b15801561477157600080fd5b505afa158015614785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147a991906158e0565b93505092509250806147e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082d90615ba1565b82860363ffffffff811683870360060b816147fe57fe5b059a5050505050505b50505050915091565b60008063ffffffff831661488557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4250000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60408051600280825260608201835260009260208301908036833701905050905083816000815181106148b457fe5b602002602001019063ffffffff16908163ffffffff16815250506000816001815181106148dd57fe5b63ffffffff9092166020928302919091018201526040517f883bdbfd00000000000000000000000000000000000000000000000000000000815260048101828152835160248301528351600093849373ffffffffffffffffffffffffffffffffffffffff8b169363883bdbfd9388939192839260449091019185820191028083838b5b83811015614978578181015183820152602001614960565b505050509050019250505060006040518083038186803b15801561499b57600080fd5b505afa1580156149af573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160409081528110156149f657600080fd5b8101908080516040519392919084640100000000821115614a1657600080fd5b908301906020820185811115614a2b57600080fd5b8251866020820283011164010000000082111715614a4857600080fd5b82525081516020918201928201910280838360005b83811015614a75578181015183820152602001614a5d565b5050505090500160405260200180516040519392919084640100000000821115614a9e57600080fd5b908301906020820185811115614ab357600080fd5b8251866020820283011164010000000082111715614ad057600080fd5b82525081516020918201928201910280838360005b83811015614afd578181015183820152602001614ae5565b5050505090500160405250505091509150600082600081518110614b1d57fe5b602002602001015183600181518110614b3257fe5b6020026020010151039050600082600081518110614b4c57fe5b602002602001015183600181518110614b6157fe5b60200260200101510390508763ffffffff168260060b81614b7e57fe5b05965060008260060b128015614ba857508763ffffffff168260060b81614ba157fe5b0760060b15155b15614bd3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909601955b63ffffffff881673ffffffffffffffffffffffffffffffffffffffff0277ffffffffffffffffffffffffffffffffffffffff00000000602083901b1677ffffffffffffffffffffffffffffffffffffffffffffffff821681614c3157fe5b0496505050505050509250929050565b614c49614e4b565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115614c81579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000614cca8383614cee565b90503373ffffffffffffffffffffffffffffffffffffffff82161461202157600080fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610614d3057600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b8082018281101561202157600080fd5b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b8035610b2381615f52565b60008083601f840112614e87578182fd5b50813567ffffffffffffffff811115614e9e578182fd5b6020830191508360208083028501011115613fa057600080fd5b600082601f830112614ec8578081fd5b81356020614edd614ed883615ec8565b615ea4565b8281528181019085830183850287018401881015614ef9578586fd5b855b85811015614f345781356fffffffffffffffffffffffffffffffff81168114614f22578788fd5b84529284019290840190600101614efb565b5090979650505050505050565b80518015158114610b2357600080fd5b600082601f830112614f61578081fd5b8135614f6f614ed882615ee6565b818152846020838601011115614f83578283fd5b816020850160208301379081016020019190915292915050565b80516dffffffffffffffffffffffffffff81168114610b2357600080fd5b805161ffff81168114610b2357600080fd5b803562ffffff81168114610b2357600080fd5b8035610b2381615f83565b600060208284031215614ffc578081fd5b813561500781615f52565b9392505050565b60008060408385031215615020578081fd5b823561502b81615f52565b946020939093013593505050565b60008060006060848603121561504d578081fd5b833561505881615f52565b925060208401359150604084013561506f81615f52565b809150509250925092565b600080600080600060a08688031215615091578283fd5b853561509c81615f52565b94506020860135935060408601356150b381615f52565b92506060860135915060808601356150ca81615f52565b809150509295509295909350565b600080600080608085870312156150ed578182fd5b84356150f881615f52565b93506020850135925060408501359150606085013561511681615f52565b939692955090935050565b60008060008060008060c08789031215615139578384fd5b863561514481615f52565b95506020870135945060408701359350606087013561516281615f95565b9598949750929560808101359460a0909101359350915050565b6000806020838503121561518e578182fd5b823567ffffffffffffffff8111156151a4578283fd5b6151b085828601614e76565b90969095509350505050565b600080600080608085870312156151d1578182fd5b843567ffffffffffffffff808211156151e8578384fd5b818701915087601f8301126151fb578384fd5b8135602061520b614ed883615ec8565b82815281810190858301885b858110156152405761522e8e8684358b0101614f51565b84529284019290840190600101615217565b50909950505088013592505080821115615258578384fd5b5061526587828801614eb8565b93505061527460408601614fcd565b915061528260608601614fe0565b905092959194509250565b60006020828403121561529e578081fd5b61500782614f41565b6000806000604084860312156152bb578081fd5b83359250602084013567ffffffffffffffff8111156152d8578182fd5b6152e486828701614e76565b9497909650939450505050565b600060208284031215615302578081fd5b813567ffffffffffffffff811115615318578182fd5b613d0a84828501614f51565b600080600060608486031215615338578081fd5b833567ffffffffffffffff81111561534e578182fd5b61535a86828701614f51565b93505061536960208501614fcd565b9150604084013561506f81615f83565b60006020828403121561538a578081fd5b813561500781615f74565b600080604083850312156153a7578182fd5b505080516020909101519092909150565b600080600080606085870312156153cd578182fd5b8435935060208501359250604085013567ffffffffffffffff808211156153f2578384fd5b818701915087601f830112615405578384fd5b813581811115615413578485fd5b886020828501011115615424578485fd5b95989497505060200194505050565b600060208284031215615444578081fd5b815167ffffffffffffffff81111561545a578182fd5b8201601f8101841361546a578182fd5b8051615478614ed882615ee6565b81815285602083850101111561548c578384fd5b610e2c826020830160208601615f26565b6000602082840312156154ae578081fd5b813567ffffffffffffffff808211156154c5578283fd5b90830190608082860312156154d8578283fd5b6040516080810181811083821117156154ed57fe5b6040528235828111156154fe578485fd5b61550a87828601614f51565b8252506020830135915061551d82615f52565b816020820152604083013560408201526060830135606082015280935050505092915050565b600060e08284031215615554578081fd5b60405160e0810181811067ffffffffffffffff8211171561557157fe5b60405261557d83614e6b565b815261558b60208401614e6b565b602082015261559c60408401614fcd565b60408201526155ad60608401614e6b565b60608201526080830135608082015260a083013560a08201526155d260c08401614e6b565b60c08201529392505050565b6000602082840312156155ef578081fd5b813567ffffffffffffffff811115615605578182fd5b820160808185031215615007578182fd5b600060e08284031215610836578081fd5b600060a08284031215610836578081fd5b60006101008284031215610836578081fd5b60006020828403121561565b578081fd5b813567ffffffffffffffff80821115615672578283fd5b9083019060408286031215615685578283fd5b60405160408101818110838211171561569a57fe5b6040528235828111156156ab578485fd5b6156b787828601614f51565b825250602083013592506156ca83615f52565b6020810192909252509392505050565b6000806000606084860312156156ee578081fd5b6156f784614f9d565b925061570560208501614f9d565b9150604084015161506f81615f83565b600080600080600080600060e0888a03121561572f578485fd5b875161573a81615f52565b602089015190975061574b81615f74565b955061575960408901614fbb565b945061576760608901614fbb565b935061577560808901614fbb565b925060a088015161578581615f95565b915061579360c08901614f41565b905092959891949750929550565b6000602082840312156157b2578081fd5b61500782614fcd565b6000602082840312156157cc578081fd5b5035919050565b6000602082840312156157e4578081fd5b5051919050565b600080604083850312156157fd578182fd5b82359150602083013561580f81615f52565b809150509250929050565b6000806000806080858703121561582f578182fd5b84359350602085013561584181615f52565b925060408501359150606085013561511681615f52565b60008060006060848603121561586c578081fd5b8335925060208401359150604084013561506f81615f52565b60008060008060006080868803121561589c578283fd5b8535945060208601359350604086013567ffffffffffffffff8111156158c0578384fd5b6158cc88828901614e76565b90945092505060608601356150ca81615f52565b600080600080608085870312156158f5578182fd5b845161590081615f83565b8094505060208501518060060b8114615917578283fd5b604086015190935061592881615f52565b915061528260608601614f41565b73ffffffffffffffffffffffffffffffffffffffff169052565b60008151808452615968816020860160208601615f26565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60020b9052565b62ffffff169052565b606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b6000828483379101908152919050565b60008251615a32818460208701615f26565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a06080830152615acb60a0830184615950565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015615b6d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452615b5b858351615950565b94509285019290850190600101615b21565b5092979650505050505050565b6000602082526150076020830184615950565b6020810160058310615b9b57fe5b91905290565b60208082526003908201527f4f4e490000000000000000000000000000000000000000000000000000000000604082015260600190565b60208082526003908201527f4e454f0000000000000000000000000000000000000000000000000000000000604082015260600190565b60208082526012908201527f546f6f206d756368207265717565737465640000000000000000000000000000604082015260600190565b60208082526002908201527f5444000000000000000000000000000000000000000000000000000000000000604082015260600190565b60208082526013908201527f546f6f206c6974746c6520726563656976656400000000000000000000000000604082015260600190565b600060c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015292915050565b600061016082019050615d0c828451615936565b6020830151615d1e6020840182615936565b506040830151615d3160408401826159a1565b506060830151615d44606084018261599a565b506080830151615d57608084018261599a565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151615d9582850182615936565b505061014092830151919092015290565b600060208252825160406020840152615dc26060840182615950565b905073ffffffffffffffffffffffffffffffffffffffff60208501511660408401528091505092915050565b61ffff91909116815260200190565b90815260200190565b600085825284602083015273ffffffffffffffffffffffffffffffffffffffff8416604083015260806060830152613ef86080830184615950565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615e75578283fd5b83018035915067ffffffffffffffff821115615e8f578283fd5b602001915036819003821315613fa057600080fd5b60405181810167ffffffffffffffff81118282101715615ec057fe5b604052919050565b600067ffffffffffffffff821115615edc57fe5b5060209081020190565b600067ffffffffffffffff821115615efa57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015615f41578181015183820152602001615f29565b83811115610c555750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461147957600080fd5b8060020b811461147957600080fd5b63ffffffff8116811461147957600080fd5b60ff8116811461147957600080fdfea164736f6c6343000706000a"; + +export class SwapRouter02__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _factoryV2: string, + factoryV3: string, + _positionManager: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _factoryV2, + factoryV3, + _positionManager, + _WETH9, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _factoryV2: string, + factoryV3: string, + _positionManager: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _factoryV2, + factoryV3, + _positionManager, + _WETH9, + overrides || {} + ); + } + attach(address: string): SwapRouter02 { + return super.attach(address) as SwapRouter02; + } + connect(signer: Signer): SwapRouter02__factory { + return super.connect(signer) as SwapRouter02__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): SwapRouter02Interface { + return new utils.Interface(_abi) as SwapRouter02Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): SwapRouter02 { + return new Contract(address, _abi, signerOrProvider) as SwapRouter02; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/TokenValidator__factory.ts b/src/contrib/smart-order-router/types/other/factories/TokenValidator__factory.ts new file mode 100644 index 0000000..68175a2 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/TokenValidator__factory.ts @@ -0,0 +1,196 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + TokenValidator, + TokenValidatorInterface, +} from "../TokenValidator"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factoryV2", + type: "address", + }, + { + internalType: "address", + name: "_positionManager", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address[]", + name: "tokens", + type: "address[]", + }, + { + internalType: "address[]", + name: "baseTokens", + type: "address[]", + }, + { + internalType: "uint256", + name: "amountToBorrow", + type: "uint256", + }, + ], + name: "batchValidate", + outputs: [ + { + internalType: "enum ITokenValidator.Status[]", + name: "isFotResults", + type: "uint8[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "factoryV2", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "positionManager", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV2Call", + outputs: [], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address[]", + name: "baseTokens", + type: "address[]", + }, + { + internalType: "uint256", + name: "amountToBorrow", + type: "uint256", + }, + ], + name: "validate", + outputs: [ + { + internalType: "enum ITokenValidator.Status", + name: "", + type: "uint8", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +const _bytecode = + "0x60c060405234801561001057600080fd5b506040516110e03803806110e083398101604081905261002f91610069565b6001600160601b0319606092831b8116608052911b1660a05261009b565b80516001600160a01b038116811461006457600080fd5b919050565b6000806040838503121561007b578182fd5b6100848361004d565b91506100926020840161004d565b90509250929050565b60805160601c60a05160601c61101c6100c4600039806103f65250806103d2525061101c6000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806368e0d4e11161005057806368e0d4e1146100aa578063791b98bc146100bf578063be7672e5146100c757610067565b80630143aace1461006c57806310d1e85c14610095575b600080fd5b61007f61007a366004610b75565b6100e7565b60405161008c9190610dea565b60405180910390f35b6100a86100a3366004610bcf565b61016c565b005b6100b26103d0565b60405161008c9190610d7e565b6100b26103f4565b6100da6100d5366004610c60565b610418565b60405161008c9190610d9f565b6000805b8381101561015e5760006101208787878581811061010557fe5b905060200201602081019061011a9190610b3d565b866104d6565b9050600181600281111561013057fe5b14806101475750600281600281111561014557fe5b145b156101555791506101649050565b506001016100eb565b50600090505b949350505050565b60003390506000808273ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156101ba57600080fd5b505afa1580156101ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f29190610b59565b8373ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561023857600080fd5b505afa15801561024c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102709190610b59565b9150915060008088116102835781610285565b825b905060008061029687890189610ce9565b915091506000828473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016102d69190610d7e565b60206040518083038186803b1580156102ee57600080fd5b505afa158015610302573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103269190610cd1565b03905081811461039e57604080518082018252600381527f464f540000000000000000000000000000000000000000000000000000000000602082015290517f08c379a00000000000000000000000000000000000000000000000000000000081526103959190600401610dfe565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039590610e11565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60608467ffffffffffffffff8111801561043157600080fd5b5060405190808252806020026020018201604052801561045b578160200160208202803683370190505b50905060005b858110156104cc5761049587878381811061047857fe5b905060200201602081019061048d9190610b3d565b8686866100e7565b8282815181106104a157fe5b602002602001019060028111156104b457fe5b908160028111156104c157fe5b905250600101610461565b5095945050505050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561051457506000610895565b600061059e3073ffffffffffffffffffffffffffffffffffffffff166368e0d4e16040518163ffffffff1660e01b815260040160206040518083038186803b15801561055f57600080fd5b505afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610b59565b868661089c565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0dfe168100000000000000000000000000000000000000000000000000000000179052905191925060009173ffffffffffffffffffffffffffffffffffffffff84169161061d91610d62565b6000604051808303816000865af19150503d806000811461065a576040519150601f19603f3d011682016040523d82523d6000602084013e61065f565b606091505b5091505080516000141561067857600092505050610895565b60008180602001905181019061068e9190610b59565b90506000808273ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16146106ce576000876106d2565b8660005b9150915060008973ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107119190610d7e565b60206040518083038186803b15801561072957600080fd5b505afa15801561073d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107619190610cd1565b905060008690508073ffffffffffffffffffffffffffffffffffffffff1663022c0d9f858530868e60405160200161079a929190610e7f565b6040516020818303038152906040526040518563ffffffff1660e01b81526004016107c89493929190610e8d565b600060405180830381600087803b1580156107e257600080fd5b505af19250505080156107f3575060015b610863576107ff610f08565b8061080a5750610859565b61081381610987565b1561082957600198505050505050505050610895565b610832816109ea565b1561084857600298505050505050505050610895565b600098505050505050505050610895565b3d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039590610e48565b9392505050565b60008060006108ab8585610a56565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b60408051808201909152600381527f464f5400000000000000000000000000000000000000000000000000000000006020918201528151908201207f0d441c7cb74abc94cc606c98870ca9174ef5b167b2f7ffed505658cf4574b003145b919050565b60408051808201909152600f8082527f5452414e534645525f4641494c45440000000000000000000000000000000000602083015282516000929180821015610a3957600093505050506109e5565b602092830181902091819003850190920191909120149050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610a9257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610acc578284610acf565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610af457600080fd5b9250929050565b60008083601f840112610b0c578182fd5b50813567ffffffffffffffff811115610b23578182fd5b6020830191508360208083028501011115610af457600080fd5b600060208284031215610b4e578081fd5b813561089581610fea565b600060208284031215610b6a578081fd5b815161089581610fea565b60008060008060608587031215610b8a578283fd5b8435610b9581610fea565b9350602085013567ffffffffffffffff811115610bb0578384fd5b610bbc87828801610afb565b9598909750949560400135949350505050565b600080600080600060808688031215610be6578081fd5b8535610bf181610fea565b94506020860135935060408601359250606086013567ffffffffffffffff80821115610c1b578283fd5b818801915088601f830112610c2e578283fd5b813581811115610c3c578384fd5b896020828501011115610c4d578384fd5b9699959850939650602001949392505050565b600080600080600060608688031215610c77578081fd5b853567ffffffffffffffff80821115610c8e578283fd5b610c9a89838a01610afb565b90975095506020880135915080821115610cb2578283fd5b50610cbf88828901610afb565b96999598509660400135949350505050565b600060208284031215610ce2578081fd5b5051919050565b60008060408385031215610cfb578182fd5b50508035926020909101359150565b60008151808452610d22816020860160208601610ed2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60038110610d5e57fe5b9052565b60008251610d74818460208701610ed2565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6020808252825182820181905260009190848201906040850190845b81811015610dde57610dce838551610d54565b9284019291840191600101610dbb565b50909695505050505050565b60208101610df88284610d54565b92915050565b6000602082526108956020830184610d0a565b60208082526007908201527f556e6b6e6f776e00000000000000000000000000000000000000000000000000604082015260600190565b60208082526010908201527f556e6578706563746564206572726f7200000000000000000000000000000000604082015260600190565b918252602082015260400190565b600085825284602083015273ffffffffffffffffffffffffffffffffffffffff8416604083015260806060830152610ec86080830184610d0a565b9695505050505050565b60005b83811015610eed578181015183820152602001610ed5565b83811115610efc576000848401525b50505050565b60e01c90565b600060443d1015610f1857610fe7565b600481823e6308c379a0610f2c8251610f02565b14610f3657610fe7565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e80513d67ffffffffffffffff8160248401118184111715610f845750505050610fe7565b82840192508251915080821115610f9e5750505050610fe7565b503d83016020828401011115610fb657505050610fe7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01681016020016040529150505b90565b73ffffffffffffffffffffffffffffffffffffffff8116811461100c57600080fd5b5056fea164736f6c6343000706000a"; + +export class TokenValidator__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _factoryV2: string, + _positionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _factoryV2, + _positionManager, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _factoryV2: string, + _positionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _factoryV2, + _positionManager, + overrides || {} + ); + } + attach(address: string): TokenValidator { + return super.attach(address) as TokenValidator; + } + connect(signer: Signer): TokenValidator__factory { + return super.connect(signer) as TokenValidator__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TokenValidatorInterface { + return new utils.Interface(_abi) as TokenValidatorInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TokenValidator { + return new Contract(address, _abi, signerOrProvider) as TokenValidator; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/V2SwapRouter__factory.ts b/src/contrib/smart-order-router/types/other/factories/V2SwapRouter__factory.ts new file mode 100644 index 0000000..73579c2 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/V2SwapRouter__factory.ts @@ -0,0 +1,369 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { V2SwapRouter, V2SwapRouterInterface } from "../V2SwapRouter"; + +const _abi = [ + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "factoryV2", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "positionManager", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "pull", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "refundETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "swapExactTokensForTokens", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "swapTokensForExactTokens", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "sweepTokenWithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "sweepTokenWithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "unwrapWETH9WithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "unwrapWETH9WithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "wrapETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +]; + +export class V2SwapRouter__factory { + static readonly abi = _abi; + static createInterface(): V2SwapRouterInterface { + return new utils.Interface(_abi) as V2SwapRouterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): V2SwapRouter { + return new Contract(address, _abi, signerOrProvider) as V2SwapRouter; + } +} diff --git a/src/contrib/smart-order-router/types/other/factories/V3SwapRouter__factory.ts b/src/contrib/smart-order-router/types/other/factories/V3SwapRouter__factory.ts new file mode 100644 index 0000000..026c10e --- /dev/null +++ b/src/contrib/smart-order-router/types/other/factories/V3SwapRouter__factory.ts @@ -0,0 +1,543 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { V3SwapRouter, V3SwapRouterInterface } from "../V3SwapRouter"; + +const _abi = [ + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "paths", + type: "bytes[]", + }, + { + internalType: "uint128[]", + name: "amounts", + type: "uint128[]", + }, + { + internalType: "uint24", + name: "maximumTickDivergence", + type: "uint24", + }, + { + internalType: "uint32", + name: "secondsAgo", + type: "uint32", + }, + ], + name: "checkOracleSlippage", + outputs: [], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint24", + name: "maximumTickDivergence", + type: "uint24", + }, + { + internalType: "uint32", + name: "secondsAgo", + type: "uint32", + }, + ], + name: "checkOracleSlippage", + outputs: [], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + ], + internalType: "struct IV3SwapRouter.ExactInputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IV3SwapRouter.ExactInputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + ], + internalType: "struct IV3SwapRouter.ExactOutputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IV3SwapRouter.ExactOutputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "pull", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "refundETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "sweepTokenWithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "sweepTokenWithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "_data", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "unwrapWETH9WithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "unwrapWETH9WithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "wrapETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +]; + +export class V3SwapRouter__factory { + static readonly abi = _abi; + static createInterface(): V3SwapRouterInterface { + return new utils.Interface(_abi) as V3SwapRouterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): V3SwapRouter { + return new Contract(address, _abi, signerOrProvider) as V3SwapRouter; + } +} diff --git a/src/contrib/smart-order-router/types/other/index.ts b/src/contrib/smart-order-router/types/other/index.ts new file mode 100644 index 0000000..a48b4b7 --- /dev/null +++ b/src/contrib/smart-order-router/types/other/index.ts @@ -0,0 +1,46 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IApproveAndCall } from "./IApproveAndCall"; +export type { IImmutableState } from "./IImmutableState"; +export type { IMixedRouteQuoterV1 } from "./IMixedRouteQuoterV1"; +export type { IMulticallExtended } from "./IMulticallExtended"; +export type { IOracleSlippage } from "./IOracleSlippage"; +export type { IPeripheryPaymentsExtended } from "./IPeripheryPaymentsExtended"; +export type { IPeripheryPaymentsWithFeeExtended } from "./IPeripheryPaymentsWithFeeExtended"; +export type { IQuoter } from "./IQuoter"; +export type { IQuoterV2 } from "./IQuoterV2"; +export type { ISwapRouter02 } from "./ISwapRouter02"; +export type { ITokenValidator } from "./ITokenValidator"; +export type { IV2SwapRouter } from "./IV2SwapRouter"; +export type { IV3SwapRouter } from "./IV3SwapRouter"; +export type { IWETH } from "./IWETH"; +export type { MixedRouteQuoterV1 } from "./MixedRouteQuoterV1"; +export type { Quoter } from "./Quoter"; +export type { QuoterV2 } from "./QuoterV2"; +export type { TokenValidator } from "./TokenValidator"; +export type { SwapRouter02 } from "./SwapRouter02"; +export type { V2SwapRouter } from "./V2SwapRouter"; +export type { V3SwapRouter } from "./V3SwapRouter"; + +export { IApproveAndCall__factory } from "./factories/IApproveAndCall__factory"; +export { IImmutableState__factory } from "./factories/IImmutableState__factory"; +export { IMixedRouteQuoterV1__factory } from "./factories/IMixedRouteQuoterV1__factory"; +export { IMulticallExtended__factory } from "./factories/IMulticallExtended__factory"; +export { IOracleSlippage__factory } from "./factories/IOracleSlippage__factory"; +export { IPeripheryPaymentsExtended__factory } from "./factories/IPeripheryPaymentsExtended__factory"; +export { IPeripheryPaymentsWithFeeExtended__factory } from "./factories/IPeripheryPaymentsWithFeeExtended__factory"; +export { IQuoter__factory } from "./factories/IQuoter__factory"; +export { IQuoterV2__factory } from "./factories/IQuoterV2__factory"; +export { ISwapRouter02__factory } from "./factories/ISwapRouter02__factory"; +export { ITokenValidator__factory } from "./factories/ITokenValidator__factory"; +export { IV2SwapRouter__factory } from "./factories/IV2SwapRouter__factory"; +export { IV3SwapRouter__factory } from "./factories/IV3SwapRouter__factory"; +export { IWETH__factory } from "./factories/IWETH__factory"; +export { MixedRouteQuoterV1__factory } from "./factories/MixedRouteQuoterV1__factory"; +export { Quoter__factory } from "./factories/Quoter__factory"; +export { QuoterV2__factory } from "./factories/QuoterV2__factory"; +export { TokenValidator__factory } from "./factories/TokenValidator__factory"; +export { SwapRouter02__factory } from "./factories/SwapRouter02__factory"; +export { V2SwapRouter__factory } from "./factories/V2SwapRouter__factory"; +export { V3SwapRouter__factory } from "./factories/V3SwapRouter__factory"; diff --git a/src/contrib/smart-order-router/types/v2/IUniswapV2Callee.d.ts b/src/contrib/smart-order-router/types/v2/IUniswapV2Callee.d.ts new file mode 100644 index 0000000..83f447c --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/IUniswapV2Callee.d.ts @@ -0,0 +1,132 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV2CalleeInterface extends ethers.utils.Interface { + functions: { + "uniswapV2Call(address,uint256,uint256,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "uniswapV2Call", + values: [string, BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "uniswapV2Call", + data: BytesLike + ): Result; + + events: {}; +} + +export class IUniswapV2Callee extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV2CalleeInterface; + + functions: { + uniswapV2Call( + sender: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + uniswapV2Call( + sender: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + uniswapV2Call( + sender: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + uniswapV2Call( + sender: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + uniswapV2Call( + sender: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v2/IUniswapV2ERC20.d.ts b/src/contrib/smart-order-router/types/v2/IUniswapV2ERC20.d.ts new file mode 100644 index 0000000..7055d7a --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/IUniswapV2ERC20.d.ts @@ -0,0 +1,486 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV2ERC20Interface extends ethers.utils.Interface { + functions: { + "DOMAIN_SEPARATOR()": FunctionFragment; + "PERMIT_TYPEHASH()": FunctionFragment; + "allowance(address,address)": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "decimals()": FunctionFragment; + "name()": FunctionFragment; + "nonces(address)": FunctionFragment; + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "symbol()": FunctionFragment; + "totalSupply()": FunctionFragment; + "transfer(address,uint256)": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "DOMAIN_SEPARATOR", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PERMIT_TYPEHASH", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "nonces", values: [string]): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "DOMAIN_SEPARATOR", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PERMIT_TYPEHASH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export type ApprovalEvent = TypedEvent< + [string, string, BigNumber] & { + owner: string; + spender: string; + value: BigNumber; + } +>; + +export type TransferEvent = TypedEvent< + [string, string, BigNumber] & { from: string; to: string; value: BigNumber } +>; + +export class IUniswapV2ERC20 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV2ERC20Interface; + + functions: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<[string]>; + + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + decimals(overrides?: CallOverrides): Promise<[number]>; + + name(overrides?: CallOverrides): Promise<[string]>; + + nonces(owner: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + decimals(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(owner: string, overrides?: CallOverrides): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + decimals(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(owner: string, overrides?: CallOverrides): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "Approval(address,address,uint256)"( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + Approval( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + "Transfer(address,address,uint256)"( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + + Transfer( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + }; + + estimateGas: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + decimals(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(owner: string, overrides?: CallOverrides): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + owner: string, + overrides?: CallOverrides + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces( + owner: string, + overrides?: CallOverrides + ): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v2/IUniswapV2Factory.d.ts b/src/contrib/smart-order-router/types/v2/IUniswapV2Factory.d.ts new file mode 100644 index 0000000..67af61a --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/IUniswapV2Factory.d.ts @@ -0,0 +1,317 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV2FactoryInterface extends ethers.utils.Interface { + functions: { + "allPairs(uint256)": FunctionFragment; + "allPairsLength()": FunctionFragment; + "createPair(address,address)": FunctionFragment; + "feeTo()": FunctionFragment; + "feeToSetter()": FunctionFragment; + "getPair(address,address)": FunctionFragment; + "setFeeTo(address)": FunctionFragment; + "setFeeToSetter(address)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "allPairs", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "allPairsLength", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "createPair", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "feeTo", values?: undefined): string; + encodeFunctionData( + functionFragment: "feeToSetter", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getPair", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "setFeeTo", values: [string]): string; + encodeFunctionData( + functionFragment: "setFeeToSetter", + values: [string] + ): string; + + decodeFunctionResult(functionFragment: "allPairs", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "allPairsLength", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "createPair", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "feeTo", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "feeToSetter", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getPair", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setFeeTo", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setFeeToSetter", + data: BytesLike + ): Result; + + events: { + "PairCreated(address,address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "PairCreated"): EventFragment; +} + +export type PairCreatedEvent = TypedEvent< + [string, string, string, BigNumber] & { + token0: string; + token1: string; + pair: string; + arg3: BigNumber; + } +>; + +export class IUniswapV2Factory extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV2FactoryInterface; + + functions: { + allPairs( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise<[string] & { pair: string }>; + + allPairsLength(overrides?: CallOverrides): Promise<[BigNumber]>; + + createPair( + tokenA: string, + tokenB: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeTo(overrides?: CallOverrides): Promise<[string]>; + + feeToSetter(overrides?: CallOverrides): Promise<[string]>; + + getPair( + tokenA: string, + tokenB: string, + overrides?: CallOverrides + ): Promise<[string] & { pair: string }>; + + setFeeTo( + arg0: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFeeToSetter( + arg0: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + allPairs(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + allPairsLength(overrides?: CallOverrides): Promise; + + createPair( + tokenA: string, + tokenB: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeTo(overrides?: CallOverrides): Promise; + + feeToSetter(overrides?: CallOverrides): Promise; + + getPair( + tokenA: string, + tokenB: string, + overrides?: CallOverrides + ): Promise; + + setFeeTo( + arg0: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFeeToSetter( + arg0: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + allPairs(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + allPairsLength(overrides?: CallOverrides): Promise; + + createPair( + tokenA: string, + tokenB: string, + overrides?: CallOverrides + ): Promise; + + feeTo(overrides?: CallOverrides): Promise; + + feeToSetter(overrides?: CallOverrides): Promise; + + getPair( + tokenA: string, + tokenB: string, + overrides?: CallOverrides + ): Promise; + + setFeeTo(arg0: string, overrides?: CallOverrides): Promise; + + setFeeToSetter(arg0: string, overrides?: CallOverrides): Promise; + }; + + filters: { + "PairCreated(address,address,address,uint256)"( + token0?: string | null, + token1?: string | null, + pair?: null, + undefined?: null + ): TypedEventFilter< + [string, string, string, BigNumber], + { token0: string; token1: string; pair: string; arg3: BigNumber } + >; + + PairCreated( + token0?: string | null, + token1?: string | null, + pair?: null, + undefined?: null + ): TypedEventFilter< + [string, string, string, BigNumber], + { token0: string; token1: string; pair: string; arg3: BigNumber } + >; + }; + + estimateGas: { + allPairs(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + allPairsLength(overrides?: CallOverrides): Promise; + + createPair( + tokenA: string, + tokenB: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeTo(overrides?: CallOverrides): Promise; + + feeToSetter(overrides?: CallOverrides): Promise; + + getPair( + tokenA: string, + tokenB: string, + overrides?: CallOverrides + ): Promise; + + setFeeTo( + arg0: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFeeToSetter( + arg0: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + allPairs( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + allPairsLength(overrides?: CallOverrides): Promise; + + createPair( + tokenA: string, + tokenB: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeTo(overrides?: CallOverrides): Promise; + + feeToSetter(overrides?: CallOverrides): Promise; + + getPair( + tokenA: string, + tokenB: string, + overrides?: CallOverrides + ): Promise; + + setFeeTo( + arg0: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFeeToSetter( + arg0: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v2/IUniswapV2Migrator.d.ts b/src/contrib/smart-order-router/types/v2/IUniswapV2Migrator.d.ts new file mode 100644 index 0000000..9848934 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/IUniswapV2Migrator.d.ts @@ -0,0 +1,134 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV2MigratorInterface extends ethers.utils.Interface { + functions: { + "migrate(address,uint256,uint256,address,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "migrate", + values: [string, BigNumberish, BigNumberish, string, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "migrate", data: BytesLike): Result; + + events: {}; +} + +export class IUniswapV2Migrator extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV2MigratorInterface; + + functions: { + migrate( + token: string, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + migrate( + token: string, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + migrate( + token: string, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + migrate( + token: string, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + migrate( + token: string, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v2/IUniswapV2Pair.d.ts b/src/contrib/smart-order-router/types/v2/IUniswapV2Pair.d.ts new file mode 100644 index 0000000..a154bce --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/IUniswapV2Pair.d.ts @@ -0,0 +1,957 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV2PairInterface extends ethers.utils.Interface { + functions: { + "DOMAIN_SEPARATOR()": FunctionFragment; + "MINIMUM_LIQUIDITY()": FunctionFragment; + "PERMIT_TYPEHASH()": FunctionFragment; + "allowance(address,address)": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "burn(address)": FunctionFragment; + "decimals()": FunctionFragment; + "factory()": FunctionFragment; + "getReserves()": FunctionFragment; + "initialize(address,address)": FunctionFragment; + "kLast()": FunctionFragment; + "mint(address)": FunctionFragment; + "name()": FunctionFragment; + "nonces(address)": FunctionFragment; + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "price0CumulativeLast()": FunctionFragment; + "price1CumulativeLast()": FunctionFragment; + "skim(address)": FunctionFragment; + "swap(uint256,uint256,address,bytes)": FunctionFragment; + "symbol()": FunctionFragment; + "sync()": FunctionFragment; + "token0()": FunctionFragment; + "token1()": FunctionFragment; + "totalSupply()": FunctionFragment; + "transfer(address,uint256)": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "DOMAIN_SEPARATOR", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "MINIMUM_LIQUIDITY", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PERMIT_TYPEHASH", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData(functionFragment: "burn", values: [string]): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "getReserves", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "kLast", values?: undefined): string; + encodeFunctionData(functionFragment: "mint", values: [string]): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "nonces", values: [string]): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "price0CumulativeLast", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "price1CumulativeLast", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "skim", values: [string]): string; + encodeFunctionData( + functionFragment: "swap", + values: [BigNumberish, BigNumberish, string, BytesLike] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData(functionFragment: "sync", values?: undefined): string; + encodeFunctionData(functionFragment: "token0", values?: undefined): string; + encodeFunctionData(functionFragment: "token1", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "DOMAIN_SEPARATOR", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "MINIMUM_LIQUIDITY", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PERMIT_TYPEHASH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getReserves", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "kLast", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "price0CumulativeLast", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "price1CumulativeLast", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "skim", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sync", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token0", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token1", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "Burn(address,uint256,uint256,address)": EventFragment; + "Mint(address,uint256,uint256)": EventFragment; + "Swap(address,uint256,uint256,uint256,uint256,address)": EventFragment; + "Sync(uint112,uint112)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Burn"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Mint"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Swap"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Sync"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export type ApprovalEvent = TypedEvent< + [string, string, BigNumber] & { + owner: string; + spender: string; + value: BigNumber; + } +>; + +export type BurnEvent = TypedEvent< + [string, BigNumber, BigNumber, string] & { + sender: string; + amount0: BigNumber; + amount1: BigNumber; + to: string; + } +>; + +export type MintEvent = TypedEvent< + [string, BigNumber, BigNumber] & { + sender: string; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type SwapEvent = TypedEvent< + [string, BigNumber, BigNumber, BigNumber, BigNumber, string] & { + sender: string; + amount0In: BigNumber; + amount1In: BigNumber; + amount0Out: BigNumber; + amount1Out: BigNumber; + to: string; + } +>; + +export type SyncEvent = TypedEvent< + [BigNumber, BigNumber] & { reserve0: BigNumber; reserve1: BigNumber } +>; + +export type TransferEvent = TypedEvent< + [string, string, BigNumber] & { from: string; to: string; value: BigNumber } +>; + +export class IUniswapV2Pair extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV2PairInterface; + + functions: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>; + + MINIMUM_LIQUIDITY(overrides?: CallOverrides): Promise<[BigNumber]>; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<[string]>; + + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + burn( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise<[number]>; + + factory(overrides?: CallOverrides): Promise<[string]>; + + getReserves( + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + reserve0: BigNumber; + reserve1: BigNumber; + blockTimestampLast: number; + } + >; + + initialize( + arg0: string, + arg1: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + kLast(overrides?: CallOverrides): Promise<[BigNumber]>; + + mint( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise<[string]>; + + nonces(owner: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + price0CumulativeLast(overrides?: CallOverrides): Promise<[BigNumber]>; + + price1CumulativeLast(overrides?: CallOverrides): Promise<[BigNumber]>; + + skim( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swap( + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: string, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + sync( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + token0(overrides?: CallOverrides): Promise<[string]>; + + token1(overrides?: CallOverrides): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + MINIMUM_LIQUIDITY(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + burn( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + getReserves( + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + reserve0: BigNumber; + reserve1: BigNumber; + blockTimestampLast: number; + } + >; + + initialize( + arg0: string, + arg1: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + kLast(overrides?: CallOverrides): Promise; + + mint( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(owner: string, overrides?: CallOverrides): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + price0CumulativeLast(overrides?: CallOverrides): Promise; + + price1CumulativeLast(overrides?: CallOverrides): Promise; + + skim( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swap( + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: string, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + sync( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + MINIMUM_LIQUIDITY(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + burn( + to: string, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + decimals(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + getReserves( + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + reserve0: BigNumber; + reserve1: BigNumber; + blockTimestampLast: number; + } + >; + + initialize( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise; + + kLast(overrides?: CallOverrides): Promise; + + mint(to: string, overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(owner: string, overrides?: CallOverrides): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + price0CumulativeLast(overrides?: CallOverrides): Promise; + + price1CumulativeLast(overrides?: CallOverrides): Promise; + + skim(to: string, overrides?: CallOverrides): Promise; + + swap( + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: string, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + sync(overrides?: CallOverrides): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "Approval(address,address,uint256)"( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + Approval( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + "Burn(address,uint256,uint256,address)"( + sender?: string | null, + amount0?: null, + amount1?: null, + to?: string | null + ): TypedEventFilter< + [string, BigNumber, BigNumber, string], + { sender: string; amount0: BigNumber; amount1: BigNumber; to: string } + >; + + Burn( + sender?: string | null, + amount0?: null, + amount1?: null, + to?: string | null + ): TypedEventFilter< + [string, BigNumber, BigNumber, string], + { sender: string; amount0: BigNumber; amount1: BigNumber; to: string } + >; + + "Mint(address,uint256,uint256)"( + sender?: string | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, BigNumber, BigNumber], + { sender: string; amount0: BigNumber; amount1: BigNumber } + >; + + Mint( + sender?: string | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, BigNumber, BigNumber], + { sender: string; amount0: BigNumber; amount1: BigNumber } + >; + + "Swap(address,uint256,uint256,uint256,uint256,address)"( + sender?: string | null, + amount0In?: null, + amount1In?: null, + amount0Out?: null, + amount1Out?: null, + to?: string | null + ): TypedEventFilter< + [string, BigNumber, BigNumber, BigNumber, BigNumber, string], + { + sender: string; + amount0In: BigNumber; + amount1In: BigNumber; + amount0Out: BigNumber; + amount1Out: BigNumber; + to: string; + } + >; + + Swap( + sender?: string | null, + amount0In?: null, + amount1In?: null, + amount0Out?: null, + amount1Out?: null, + to?: string | null + ): TypedEventFilter< + [string, BigNumber, BigNumber, BigNumber, BigNumber, string], + { + sender: string; + amount0In: BigNumber; + amount1In: BigNumber; + amount0Out: BigNumber; + amount1Out: BigNumber; + to: string; + } + >; + + "Sync(uint112,uint112)"( + reserve0?: null, + reserve1?: null + ): TypedEventFilter< + [BigNumber, BigNumber], + { reserve0: BigNumber; reserve1: BigNumber } + >; + + Sync( + reserve0?: null, + reserve1?: null + ): TypedEventFilter< + [BigNumber, BigNumber], + { reserve0: BigNumber; reserve1: BigNumber } + >; + + "Transfer(address,address,uint256)"( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + + Transfer( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + }; + + estimateGas: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + MINIMUM_LIQUIDITY(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + burn( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + getReserves(overrides?: CallOverrides): Promise; + + initialize( + arg0: string, + arg1: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + kLast(overrides?: CallOverrides): Promise; + + mint( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(owner: string, overrides?: CallOverrides): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + price0CumulativeLast(overrides?: CallOverrides): Promise; + + price1CumulativeLast(overrides?: CallOverrides): Promise; + + skim( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swap( + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: string, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + sync( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + MINIMUM_LIQUIDITY(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + owner: string, + overrides?: CallOverrides + ): Promise; + + burn( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + getReserves(overrides?: CallOverrides): Promise; + + initialize( + arg0: string, + arg1: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + kLast(overrides?: CallOverrides): Promise; + + mint( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces( + owner: string, + overrides?: CallOverrides + ): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + price0CumulativeLast( + overrides?: CallOverrides + ): Promise; + + price1CumulativeLast( + overrides?: CallOverrides + ): Promise; + + skim( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swap( + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: string, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + sync( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v2/IUniswapV2Router01.d.ts b/src/contrib/smart-order-router/types/v2/IUniswapV2Router01.d.ts new file mode 100644 index 0000000..75e8e8b --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/IUniswapV2Router01.d.ts @@ -0,0 +1,1119 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV2Router01Interface extends ethers.utils.Interface { + functions: { + "WETH()": FunctionFragment; + "addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "factory()": FunctionFragment; + "getAmountIn(uint256,uint256,uint256)": FunctionFragment; + "getAmountOut(uint256,uint256,uint256)": FunctionFragment; + "getAmountsIn(uint256,address[])": FunctionFragment; + "getAmountsOut(uint256,address[])": FunctionFragment; + "quote(uint256,uint256,uint256)": FunctionFragment; + "removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": FunctionFragment; + "removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": FunctionFragment; + "swapETHForExactTokens(uint256,address[],address,uint256)": FunctionFragment; + "swapExactETHForTokens(uint256,address[],address,uint256)": FunctionFragment; + "swapExactTokensForETH(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapTokensForExactETH(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "addLiquidity", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "addLiquidityETH", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "getAmountIn", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountOut", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountsIn", + values: [BigNumberish, string[]] + ): string; + encodeFunctionData( + functionFragment: "getAmountsOut", + values: [BigNumberish, string[]] + ): string; + encodeFunctionData( + functionFragment: "quote", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidity", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETH", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHWithPermit", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityWithPermit", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "swapETHForExactTokens", + values: [BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactETHForTokens", + values: [BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForETH", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokens", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactETH", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactTokens", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "WETH", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "addLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "addLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getAmountIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountOut", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsOut", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "quote", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "removeLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHWithPermit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityWithPermit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapETHForExactTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactETHForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactTokens", + data: BytesLike + ): Result; + + events: {}; +} + +export class IUniswapV2Router01 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV2Router01Interface; + + functions: { + WETH(overrides?: CallOverrides): Promise<[string]>; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise<[string]>; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { amountIn: BigNumber }>; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { amountOut: BigNumber }>; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise<[BigNumber[]] & { amounts: BigNumber[] }>; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise<[BigNumber[]] & { amounts: BigNumber[] }>; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { amountB: BigNumber }>; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber] & { + amountA: BigNumber; + amountB: BigNumber; + liquidity: BigNumber; + } + >; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber] & { + amountToken: BigNumber; + amountETH: BigNumber; + liquidity: BigNumber; + } + >; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountA: BigNumber; amountB: BigNumber } + >; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountToken: BigNumber; amountETH: BigNumber } + >; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountToken: BigNumber; amountETH: BigNumber } + >; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountA: BigNumber; amountB: BigNumber } + >; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v2/IUniswapV2Router02.d.ts b/src/contrib/smart-order-router/types/v2/IUniswapV2Router02.d.ts new file mode 100644 index 0000000..0925863 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/IUniswapV2Router02.d.ts @@ -0,0 +1,1432 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV2Router02Interface extends ethers.utils.Interface { + functions: { + "WETH()": FunctionFragment; + "addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "factory()": FunctionFragment; + "getAmountIn(uint256,uint256,uint256)": FunctionFragment; + "getAmountOut(uint256,uint256,uint256)": FunctionFragment; + "getAmountsIn(uint256,address[])": FunctionFragment; + "getAmountsOut(uint256,address[])": FunctionFragment; + "quote(uint256,uint256,uint256)": FunctionFragment; + "removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "removeLiquidityETHSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": FunctionFragment; + "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": FunctionFragment; + "removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": FunctionFragment; + "swapETHForExactTokens(uint256,address[],address,uint256)": FunctionFragment; + "swapExactETHForTokens(uint256,address[],address,uint256)": FunctionFragment; + "swapExactETHForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)": FunctionFragment; + "swapExactTokensForETH(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapTokensForExactETH(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "addLiquidity", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "addLiquidityETH", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "getAmountIn", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountOut", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountsIn", + values: [BigNumberish, string[]] + ): string; + encodeFunctionData( + functionFragment: "getAmountsOut", + values: [BigNumberish, string[]] + ): string; + encodeFunctionData( + functionFragment: "quote", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidity", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETH", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHSupportingFeeOnTransferTokens", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHWithPermit", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityWithPermit", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "swapETHForExactTokens", + values: [BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactETHForTokens", + values: [BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactETHForTokensSupportingFeeOnTransferTokens", + values: [BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForETH", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForETHSupportingFeeOnTransferTokens", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokens", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokensSupportingFeeOnTransferTokens", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactETH", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactTokens", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "WETH", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "addLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "addLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getAmountIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountOut", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsOut", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "quote", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "removeLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHWithPermit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityWithPermit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapETHForExactTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactETHForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactETHForTokensSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForETHSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokensSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactTokens", + data: BytesLike + ): Result; + + events: {}; +} + +export class IUniswapV2Router02 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV2Router02Interface; + + functions: { + WETH(overrides?: CallOverrides): Promise<[string]>; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise<[string]>; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { amountIn: BigNumber }>; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { amountOut: BigNumber }>; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise<[BigNumber[]] & { amounts: BigNumber[] }>; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise<[BigNumber[]] & { amounts: BigNumber[] }>; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { amountB: BigNumber }>; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokensSupportingFeeOnTransferTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETHSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokensSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokensSupportingFeeOnTransferTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETHSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokensSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber] & { + amountA: BigNumber; + amountB: BigNumber; + liquidity: BigNumber; + } + >; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber] & { + amountToken: BigNumber; + amountETH: BigNumber; + liquidity: BigNumber; + } + >; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountA: BigNumber; amountB: BigNumber } + >; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountToken: BigNumber; amountETH: BigNumber } + >; + + removeLiquidityETHSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountToken: BigNumber; amountETH: BigNumber } + >; + + removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountA: BigNumber; amountB: BigNumber } + >; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactETHForTokensSupportingFeeOnTransferTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactTokensForETHSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactTokensForTokensSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokensSupportingFeeOnTransferTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETHSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokensSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokensSupportingFeeOnTransferTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETHSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokensSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v2/UniswapV2ERC20.d.ts b/src/contrib/smart-order-router/types/v2/UniswapV2ERC20.d.ts new file mode 100644 index 0000000..f70ba17 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/UniswapV2ERC20.d.ts @@ -0,0 +1,486 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface UniswapV2ERC20Interface extends ethers.utils.Interface { + functions: { + "DOMAIN_SEPARATOR()": FunctionFragment; + "PERMIT_TYPEHASH()": FunctionFragment; + "allowance(address,address)": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "decimals()": FunctionFragment; + "name()": FunctionFragment; + "nonces(address)": FunctionFragment; + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "symbol()": FunctionFragment; + "totalSupply()": FunctionFragment; + "transfer(address,uint256)": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "DOMAIN_SEPARATOR", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PERMIT_TYPEHASH", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "nonces", values: [string]): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "DOMAIN_SEPARATOR", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PERMIT_TYPEHASH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export type ApprovalEvent = TypedEvent< + [string, string, BigNumber] & { + owner: string; + spender: string; + value: BigNumber; + } +>; + +export type TransferEvent = TypedEvent< + [string, string, BigNumber] & { from: string; to: string; value: BigNumber } +>; + +export class UniswapV2ERC20 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: UniswapV2ERC20Interface; + + functions: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<[string]>; + + allowance( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + decimals(overrides?: CallOverrides): Promise<[number]>; + + name(overrides?: CallOverrides): Promise<[string]>; + + nonces(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(arg0: string, overrides?: CallOverrides): Promise; + + decimals(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(arg0: string, overrides?: CallOverrides): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(arg0: string, overrides?: CallOverrides): Promise; + + decimals(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(arg0: string, overrides?: CallOverrides): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "Approval(address,address,uint256)"( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + Approval( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + "Transfer(address,address,uint256)"( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + + Transfer( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + }; + + estimateGas: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(arg0: string, overrides?: CallOverrides): Promise; + + decimals(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(arg0: string, overrides?: CallOverrides): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + arg0: string, + overrides?: CallOverrides + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces( + arg0: string, + overrides?: CallOverrides + ): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v2/UniswapV2Factory.d.ts b/src/contrib/smart-order-router/types/v2/UniswapV2Factory.d.ts new file mode 100644 index 0000000..6ad3f38 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/UniswapV2Factory.d.ts @@ -0,0 +1,317 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface UniswapV2FactoryInterface extends ethers.utils.Interface { + functions: { + "allPairs(uint256)": FunctionFragment; + "allPairsLength()": FunctionFragment; + "createPair(address,address)": FunctionFragment; + "feeTo()": FunctionFragment; + "feeToSetter()": FunctionFragment; + "getPair(address,address)": FunctionFragment; + "setFeeTo(address)": FunctionFragment; + "setFeeToSetter(address)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "allPairs", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "allPairsLength", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "createPair", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "feeTo", values?: undefined): string; + encodeFunctionData( + functionFragment: "feeToSetter", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getPair", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "setFeeTo", values: [string]): string; + encodeFunctionData( + functionFragment: "setFeeToSetter", + values: [string] + ): string; + + decodeFunctionResult(functionFragment: "allPairs", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "allPairsLength", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "createPair", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "feeTo", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "feeToSetter", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getPair", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setFeeTo", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setFeeToSetter", + data: BytesLike + ): Result; + + events: { + "PairCreated(address,address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "PairCreated"): EventFragment; +} + +export type PairCreatedEvent = TypedEvent< + [string, string, string, BigNumber] & { + token0: string; + token1: string; + pair: string; + arg3: BigNumber; + } +>; + +export class UniswapV2Factory extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: UniswapV2FactoryInterface; + + functions: { + allPairs(arg0: BigNumberish, overrides?: CallOverrides): Promise<[string]>; + + allPairsLength(overrides?: CallOverrides): Promise<[BigNumber]>; + + createPair( + tokenA: string, + tokenB: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeTo(overrides?: CallOverrides): Promise<[string]>; + + feeToSetter(overrides?: CallOverrides): Promise<[string]>; + + getPair( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise<[string]>; + + setFeeTo( + _feeTo: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFeeToSetter( + _feeToSetter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + allPairs(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + allPairsLength(overrides?: CallOverrides): Promise; + + createPair( + tokenA: string, + tokenB: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeTo(overrides?: CallOverrides): Promise; + + feeToSetter(overrides?: CallOverrides): Promise; + + getPair( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise; + + setFeeTo( + _feeTo: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFeeToSetter( + _feeToSetter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + allPairs(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + allPairsLength(overrides?: CallOverrides): Promise; + + createPair( + tokenA: string, + tokenB: string, + overrides?: CallOverrides + ): Promise; + + feeTo(overrides?: CallOverrides): Promise; + + feeToSetter(overrides?: CallOverrides): Promise; + + getPair( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise; + + setFeeTo(_feeTo: string, overrides?: CallOverrides): Promise; + + setFeeToSetter( + _feeToSetter: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "PairCreated(address,address,address,uint256)"( + token0?: string | null, + token1?: string | null, + pair?: null, + undefined?: null + ): TypedEventFilter< + [string, string, string, BigNumber], + { token0: string; token1: string; pair: string; arg3: BigNumber } + >; + + PairCreated( + token0?: string | null, + token1?: string | null, + pair?: null, + undefined?: null + ): TypedEventFilter< + [string, string, string, BigNumber], + { token0: string; token1: string; pair: string; arg3: BigNumber } + >; + }; + + estimateGas: { + allPairs(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + allPairsLength(overrides?: CallOverrides): Promise; + + createPair( + tokenA: string, + tokenB: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeTo(overrides?: CallOverrides): Promise; + + feeToSetter(overrides?: CallOverrides): Promise; + + getPair( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise; + + setFeeTo( + _feeTo: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFeeToSetter( + _feeToSetter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + allPairs( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + allPairsLength(overrides?: CallOverrides): Promise; + + createPair( + tokenA: string, + tokenB: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeTo(overrides?: CallOverrides): Promise; + + feeToSetter(overrides?: CallOverrides): Promise; + + getPair( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise; + + setFeeTo( + _feeTo: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFeeToSetter( + _feeToSetter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v2/UniswapV2Migrator.d.ts b/src/contrib/smart-order-router/types/v2/UniswapV2Migrator.d.ts new file mode 100644 index 0000000..dd0546e --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/UniswapV2Migrator.d.ts @@ -0,0 +1,134 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface UniswapV2MigratorInterface extends ethers.utils.Interface { + functions: { + "migrate(address,uint256,uint256,address,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "migrate", + values: [string, BigNumberish, BigNumberish, string, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "migrate", data: BytesLike): Result; + + events: {}; +} + +export class UniswapV2Migrator extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: UniswapV2MigratorInterface; + + functions: { + migrate( + token: string, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + migrate( + token: string, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + migrate( + token: string, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + migrate( + token: string, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + migrate( + token: string, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v2/UniswapV2Pair.d.ts b/src/contrib/smart-order-router/types/v2/UniswapV2Pair.d.ts new file mode 100644 index 0000000..2f06d47 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/UniswapV2Pair.d.ts @@ -0,0 +1,957 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface UniswapV2PairInterface extends ethers.utils.Interface { + functions: { + "DOMAIN_SEPARATOR()": FunctionFragment; + "MINIMUM_LIQUIDITY()": FunctionFragment; + "PERMIT_TYPEHASH()": FunctionFragment; + "allowance(address,address)": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "burn(address)": FunctionFragment; + "decimals()": FunctionFragment; + "factory()": FunctionFragment; + "getReserves()": FunctionFragment; + "initialize(address,address)": FunctionFragment; + "kLast()": FunctionFragment; + "mint(address)": FunctionFragment; + "name()": FunctionFragment; + "nonces(address)": FunctionFragment; + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "price0CumulativeLast()": FunctionFragment; + "price1CumulativeLast()": FunctionFragment; + "skim(address)": FunctionFragment; + "swap(uint256,uint256,address,bytes)": FunctionFragment; + "symbol()": FunctionFragment; + "sync()": FunctionFragment; + "token0()": FunctionFragment; + "token1()": FunctionFragment; + "totalSupply()": FunctionFragment; + "transfer(address,uint256)": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "DOMAIN_SEPARATOR", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "MINIMUM_LIQUIDITY", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PERMIT_TYPEHASH", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "allowance", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData(functionFragment: "burn", values: [string]): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "getReserves", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [string, string] + ): string; + encodeFunctionData(functionFragment: "kLast", values?: undefined): string; + encodeFunctionData(functionFragment: "mint", values: [string]): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "nonces", values: [string]): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "price0CumulativeLast", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "price1CumulativeLast", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "skim", values: [string]): string; + encodeFunctionData( + functionFragment: "swap", + values: [BigNumberish, BigNumberish, string, BytesLike] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData(functionFragment: "sync", values?: undefined): string; + encodeFunctionData(functionFragment: "token0", values?: undefined): string; + encodeFunctionData(functionFragment: "token1", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "DOMAIN_SEPARATOR", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "MINIMUM_LIQUIDITY", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PERMIT_TYPEHASH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getReserves", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "kLast", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "price0CumulativeLast", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "price1CumulativeLast", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "skim", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sync", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token0", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token1", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "Burn(address,uint256,uint256,address)": EventFragment; + "Mint(address,uint256,uint256)": EventFragment; + "Swap(address,uint256,uint256,uint256,uint256,address)": EventFragment; + "Sync(uint112,uint112)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Burn"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Mint"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Swap"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Sync"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export type ApprovalEvent = TypedEvent< + [string, string, BigNumber] & { + owner: string; + spender: string; + value: BigNumber; + } +>; + +export type BurnEvent = TypedEvent< + [string, BigNumber, BigNumber, string] & { + sender: string; + amount0: BigNumber; + amount1: BigNumber; + to: string; + } +>; + +export type MintEvent = TypedEvent< + [string, BigNumber, BigNumber] & { + sender: string; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type SwapEvent = TypedEvent< + [string, BigNumber, BigNumber, BigNumber, BigNumber, string] & { + sender: string; + amount0In: BigNumber; + amount1In: BigNumber; + amount0Out: BigNumber; + amount1Out: BigNumber; + to: string; + } +>; + +export type SyncEvent = TypedEvent< + [BigNumber, BigNumber] & { reserve0: BigNumber; reserve1: BigNumber } +>; + +export type TransferEvent = TypedEvent< + [string, string, BigNumber] & { from: string; to: string; value: BigNumber } +>; + +export class UniswapV2Pair extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: UniswapV2PairInterface; + + functions: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>; + + MINIMUM_LIQUIDITY(overrides?: CallOverrides): Promise<[BigNumber]>; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<[string]>; + + allowance( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + burn( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise<[number]>; + + factory(overrides?: CallOverrides): Promise<[string]>; + + getReserves( + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + _reserve0: BigNumber; + _reserve1: BigNumber; + _blockTimestampLast: number; + } + >; + + initialize( + _token0: string, + _token1: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + kLast(overrides?: CallOverrides): Promise<[BigNumber]>; + + mint( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise<[string]>; + + nonces(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + price0CumulativeLast(overrides?: CallOverrides): Promise<[BigNumber]>; + + price1CumulativeLast(overrides?: CallOverrides): Promise<[BigNumber]>; + + skim( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swap( + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: string, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + sync( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + token0(overrides?: CallOverrides): Promise<[string]>; + + token1(overrides?: CallOverrides): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + MINIMUM_LIQUIDITY(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(arg0: string, overrides?: CallOverrides): Promise; + + burn( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + getReserves( + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + _reserve0: BigNumber; + _reserve1: BigNumber; + _blockTimestampLast: number; + } + >; + + initialize( + _token0: string, + _token1: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + kLast(overrides?: CallOverrides): Promise; + + mint( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(arg0: string, overrides?: CallOverrides): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + price0CumulativeLast(overrides?: CallOverrides): Promise; + + price1CumulativeLast(overrides?: CallOverrides): Promise; + + skim( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swap( + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: string, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + sync( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + MINIMUM_LIQUIDITY(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(arg0: string, overrides?: CallOverrides): Promise; + + burn( + to: string, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + decimals(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + getReserves( + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + _reserve0: BigNumber; + _reserve1: BigNumber; + _blockTimestampLast: number; + } + >; + + initialize( + _token0: string, + _token1: string, + overrides?: CallOverrides + ): Promise; + + kLast(overrides?: CallOverrides): Promise; + + mint(to: string, overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(arg0: string, overrides?: CallOverrides): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + price0CumulativeLast(overrides?: CallOverrides): Promise; + + price1CumulativeLast(overrides?: CallOverrides): Promise; + + skim(to: string, overrides?: CallOverrides): Promise; + + swap( + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: string, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + sync(overrides?: CallOverrides): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "Approval(address,address,uint256)"( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + Approval( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + "Burn(address,uint256,uint256,address)"( + sender?: string | null, + amount0?: null, + amount1?: null, + to?: string | null + ): TypedEventFilter< + [string, BigNumber, BigNumber, string], + { sender: string; amount0: BigNumber; amount1: BigNumber; to: string } + >; + + Burn( + sender?: string | null, + amount0?: null, + amount1?: null, + to?: string | null + ): TypedEventFilter< + [string, BigNumber, BigNumber, string], + { sender: string; amount0: BigNumber; amount1: BigNumber; to: string } + >; + + "Mint(address,uint256,uint256)"( + sender?: string | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, BigNumber, BigNumber], + { sender: string; amount0: BigNumber; amount1: BigNumber } + >; + + Mint( + sender?: string | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, BigNumber, BigNumber], + { sender: string; amount0: BigNumber; amount1: BigNumber } + >; + + "Swap(address,uint256,uint256,uint256,uint256,address)"( + sender?: string | null, + amount0In?: null, + amount1In?: null, + amount0Out?: null, + amount1Out?: null, + to?: string | null + ): TypedEventFilter< + [string, BigNumber, BigNumber, BigNumber, BigNumber, string], + { + sender: string; + amount0In: BigNumber; + amount1In: BigNumber; + amount0Out: BigNumber; + amount1Out: BigNumber; + to: string; + } + >; + + Swap( + sender?: string | null, + amount0In?: null, + amount1In?: null, + amount0Out?: null, + amount1Out?: null, + to?: string | null + ): TypedEventFilter< + [string, BigNumber, BigNumber, BigNumber, BigNumber, string], + { + sender: string; + amount0In: BigNumber; + amount1In: BigNumber; + amount0Out: BigNumber; + amount1Out: BigNumber; + to: string; + } + >; + + "Sync(uint112,uint112)"( + reserve0?: null, + reserve1?: null + ): TypedEventFilter< + [BigNumber, BigNumber], + { reserve0: BigNumber; reserve1: BigNumber } + >; + + Sync( + reserve0?: null, + reserve1?: null + ): TypedEventFilter< + [BigNumber, BigNumber], + { reserve0: BigNumber; reserve1: BigNumber } + >; + + "Transfer(address,address,uint256)"( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + + Transfer( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + }; + + estimateGas: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + MINIMUM_LIQUIDITY(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(arg0: string, overrides?: CallOverrides): Promise; + + burn( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + getReserves(overrides?: CallOverrides): Promise; + + initialize( + _token0: string, + _token1: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + kLast(overrides?: CallOverrides): Promise; + + mint( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces(arg0: string, overrides?: CallOverrides): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + price0CumulativeLast(overrides?: CallOverrides): Promise; + + price1CumulativeLast(overrides?: CallOverrides): Promise; + + skim( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swap( + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: string, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + sync( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + MINIMUM_LIQUIDITY(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + allowance( + arg0: string, + arg1: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + arg0: string, + overrides?: CallOverrides + ): Promise; + + burn( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + getReserves(overrides?: CallOverrides): Promise; + + initialize( + _token0: string, + _token1: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + kLast(overrides?: CallOverrides): Promise; + + mint( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nonces( + arg0: string, + overrides?: CallOverrides + ): Promise; + + permit( + owner: string, + spender: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + price0CumulativeLast( + overrides?: CallOverrides + ): Promise; + + price1CumulativeLast( + overrides?: CallOverrides + ): Promise; + + skim( + to: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swap( + amount0Out: BigNumberish, + amount1Out: BigNumberish, + to: string, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + sync( + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + from: string, + to: string, + value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v2/UniswapV2Router01.d.ts b/src/contrib/smart-order-router/types/v2/UniswapV2Router01.d.ts new file mode 100644 index 0000000..8e9ef4c --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/UniswapV2Router01.d.ts @@ -0,0 +1,1119 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface UniswapV2Router01Interface extends ethers.utils.Interface { + functions: { + "WETH()": FunctionFragment; + "addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "factory()": FunctionFragment; + "getAmountIn(uint256,uint256,uint256)": FunctionFragment; + "getAmountOut(uint256,uint256,uint256)": FunctionFragment; + "getAmountsIn(uint256,address[])": FunctionFragment; + "getAmountsOut(uint256,address[])": FunctionFragment; + "quote(uint256,uint256,uint256)": FunctionFragment; + "removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": FunctionFragment; + "removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": FunctionFragment; + "swapETHForExactTokens(uint256,address[],address,uint256)": FunctionFragment; + "swapExactETHForTokens(uint256,address[],address,uint256)": FunctionFragment; + "swapExactTokensForETH(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapTokensForExactETH(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "addLiquidity", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "addLiquidityETH", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "getAmountIn", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountOut", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountsIn", + values: [BigNumberish, string[]] + ): string; + encodeFunctionData( + functionFragment: "getAmountsOut", + values: [BigNumberish, string[]] + ): string; + encodeFunctionData( + functionFragment: "quote", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidity", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETH", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHWithPermit", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityWithPermit", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "swapETHForExactTokens", + values: [BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactETHForTokens", + values: [BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForETH", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokens", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactETH", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactTokens", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "WETH", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "addLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "addLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getAmountIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountOut", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsOut", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "quote", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "removeLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHWithPermit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityWithPermit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapETHForExactTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactETHForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactTokens", + data: BytesLike + ): Result; + + events: {}; +} + +export class UniswapV2Router01 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: UniswapV2Router01Interface; + + functions: { + WETH(overrides?: CallOverrides): Promise<[string]>; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise<[string]>; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { amountIn: BigNumber }>; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { amountOut: BigNumber }>; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise<[BigNumber[]] & { amounts: BigNumber[] }>; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise<[BigNumber[]] & { amounts: BigNumber[] }>; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { amountB: BigNumber }>; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber] & { + amountA: BigNumber; + amountB: BigNumber; + liquidity: BigNumber; + } + >; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber] & { + amountToken: BigNumber; + amountETH: BigNumber; + liquidity: BigNumber; + } + >; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountA: BigNumber; amountB: BigNumber } + >; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountToken: BigNumber; amountETH: BigNumber } + >; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountToken: BigNumber; amountETH: BigNumber } + >; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountA: BigNumber; amountB: BigNumber } + >; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v2/UniswapV2Router02.d.ts b/src/contrib/smart-order-router/types/v2/UniswapV2Router02.d.ts new file mode 100644 index 0000000..8526247 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/UniswapV2Router02.d.ts @@ -0,0 +1,1432 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface UniswapV2Router02Interface extends ethers.utils.Interface { + functions: { + "WETH()": FunctionFragment; + "addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "factory()": FunctionFragment; + "getAmountIn(uint256,uint256,uint256)": FunctionFragment; + "getAmountOut(uint256,uint256,uint256)": FunctionFragment; + "getAmountsIn(uint256,address[])": FunctionFragment; + "getAmountsOut(uint256,address[])": FunctionFragment; + "quote(uint256,uint256,uint256)": FunctionFragment; + "removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "removeLiquidityETHSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)": FunctionFragment; + "removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": FunctionFragment; + "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": FunctionFragment; + "removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": FunctionFragment; + "swapETHForExactTokens(uint256,address[],address,uint256)": FunctionFragment; + "swapExactETHForTokens(uint256,address[],address,uint256)": FunctionFragment; + "swapExactETHForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)": FunctionFragment; + "swapExactTokensForETH(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapTokensForExactETH(uint256,uint256,address[],address,uint256)": FunctionFragment; + "swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "addLiquidity", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "addLiquidityETH", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "getAmountIn", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountOut", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getAmountsIn", + values: [BigNumberish, string[]] + ): string; + encodeFunctionData( + functionFragment: "getAmountsOut", + values: [BigNumberish, string[]] + ): string; + encodeFunctionData( + functionFragment: "quote", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidity", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETH", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHSupportingFeeOnTransferTokens", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHWithPermit", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "removeLiquidityWithPermit", + values: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + string, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "swapETHForExactTokens", + values: [BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactETHForTokens", + values: [BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactETHForTokensSupportingFeeOnTransferTokens", + values: [BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForETH", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForETHSupportingFeeOnTransferTokens", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokens", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapExactTokensForTokensSupportingFeeOnTransferTokens", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactETH", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swapTokensForExactTokens", + values: [BigNumberish, BigNumberish, string[], string, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "WETH", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "addLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "addLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getAmountIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountOut", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsIn", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getAmountsOut", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "quote", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "removeLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHWithPermit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeLiquidityWithPermit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapETHForExactTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactETHForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactETHForTokensSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForETHSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapExactTokensForTokensSupportingFeeOnTransferTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactETH", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "swapTokensForExactTokens", + data: BytesLike + ): Result; + + events: {}; +} + +export class UniswapV2Router02 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: UniswapV2Router02Interface; + + functions: { + WETH(overrides?: CallOverrides): Promise<[string]>; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise<[string]>; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { amountIn: BigNumber }>; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { amountOut: BigNumber }>; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise<[BigNumber[]] & { amounts: BigNumber[] }>; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise<[BigNumber[]] & { amounts: BigNumber[] }>; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { amountB: BigNumber }>; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokensSupportingFeeOnTransferTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETHSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokensSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokensSupportingFeeOnTransferTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETHSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokensSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber] & { + amountA: BigNumber; + amountB: BigNumber; + liquidity: BigNumber; + } + >; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber] & { + amountToken: BigNumber; + amountETH: BigNumber; + liquidity: BigNumber; + } + >; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountA: BigNumber; amountB: BigNumber } + >; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountToken: BigNumber; amountETH: BigNumber } + >; + + removeLiquidityETHSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountToken: BigNumber; amountETH: BigNumber } + >; + + removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amountA: BigNumber; amountB: BigNumber } + >; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactETHForTokensSupportingFeeOnTransferTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactTokensForETHSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapExactTokensForTokensSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokensSupportingFeeOnTransferTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETHSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokensSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + WETH(overrides?: CallOverrides): Promise; + + addLiquidity( + tokenA: string, + tokenB: string, + amountADesired: BigNumberish, + amountBDesired: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + addLiquidityETH( + token: string, + amountTokenDesired: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getAmountIn( + amountOut: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountOut( + amountIn: BigNumberish, + reserveIn: BigNumberish, + reserveOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getAmountsIn( + amountOut: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + getAmountsOut( + amountIn: BigNumberish, + path: string[], + overrides?: CallOverrides + ): Promise; + + quote( + amountA: BigNumberish, + reserveA: BigNumberish, + reserveB: BigNumberish, + overrides?: CallOverrides + ): Promise; + + removeLiquidity( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETH( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermit( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( + token: string, + liquidity: BigNumberish, + amountTokenMin: BigNumberish, + amountETHMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + removeLiquidityWithPermit( + tokenA: string, + tokenB: string, + liquidity: BigNumberish, + amountAMin: BigNumberish, + amountBMin: BigNumberish, + to: string, + deadline: BigNumberish, + approveMax: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapETHForExactTokens( + amountOut: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactETHForTokensSupportingFeeOnTransferTokens( + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETH( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForETHSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapExactTokensForTokensSupportingFeeOnTransferTokens( + amountIn: BigNumberish, + amountOutMin: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactETH( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swapTokensForExactTokens( + amountOut: BigNumberish, + amountInMax: BigNumberish, + path: string[], + to: string, + deadline: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v2/common.d.ts b/src/contrib/smart-order-router/types/v2/common.d.ts new file mode 100644 index 0000000..fc93782 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/common.d.ts @@ -0,0 +1,35 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { EventFilter, Event } from "ethers"; +import { Result } from "@ethersproject/abi"; + +export interface TypedEventFilter<_EventArgsArray, _EventArgsObject> + extends EventFilter {} + +export interface TypedEvent extends Event { + args: EventArgs; +} + +export type TypedListener< + EventArgsArray extends Array, + EventArgsObject +> = ( + ...listenerArg: [ + ...EventArgsArray, + TypedEvent + ] +) => void; + +export type MinEthersFactory = { + deploy(...a: ARGS[]): Promise; +}; +export type GetContractTypeFromFactory = F extends MinEthersFactory< + infer C, + any +> + ? C + : never; +export type GetARGsTypeFromFactory = F extends MinEthersFactory + ? Parameters + : never; diff --git a/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Callee__factory.ts b/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Callee__factory.ts new file mode 100644 index 0000000..9873630 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Callee__factory.ts @@ -0,0 +1,54 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV2Callee, + IUniswapV2CalleeInterface, +} from "../IUniswapV2Callee"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV2Call", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IUniswapV2Callee__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2CalleeInterface { + return new utils.Interface(_abi) as IUniswapV2CalleeInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV2Callee { + return new Contract(address, _abi, signerOrProvider) as IUniswapV2Callee; + } +} diff --git a/src/contrib/smart-order-router/types/v2/factories/IUniswapV2ERC20__factory.ts b/src/contrib/smart-order-router/types/v2/factories/IUniswapV2ERC20__factory.ts new file mode 100644 index 0000000..fdd0c8c --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/factories/IUniswapV2ERC20__factory.ts @@ -0,0 +1,362 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV2ERC20, + IUniswapV2ERC20Interface, +} from "../IUniswapV2ERC20"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + constant: true, + inputs: [], + name: "DOMAIN_SEPARATOR", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "PERMIT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + payable: false, + stateMutability: "pure", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + payable: false, + stateMutability: "pure", + type: "function", + }, + { + constant: true, + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + payable: false, + stateMutability: "pure", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "permit", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + payable: false, + stateMutability: "pure", + type: "function", + }, + { + constant: true, + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IUniswapV2ERC20__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2ERC20Interface { + return new utils.Interface(_abi) as IUniswapV2ERC20Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV2ERC20 { + return new Contract(address, _abi, signerOrProvider) as IUniswapV2ERC20; + } +} diff --git a/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Factory__factory.ts b/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Factory__factory.ts new file mode 100644 index 0000000..1d760a7 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Factory__factory.ts @@ -0,0 +1,189 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV2Factory, + IUniswapV2FactoryInterface, +} from "../IUniswapV2Factory"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token0", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token1", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "pair", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "PairCreated", + type: "event", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "allPairs", + outputs: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "allPairsLength", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + ], + name: "createPair", + outputs: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "feeTo", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "feeToSetter", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + ], + name: "getPair", + outputs: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "setFeeTo", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "setFeeToSetter", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IUniswapV2Factory__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2FactoryInterface { + return new utils.Interface(_abi) as IUniswapV2FactoryInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV2Factory { + return new Contract(address, _abi, signerOrProvider) as IUniswapV2Factory; + } +} diff --git a/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Migrator__factory.ts b/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Migrator__factory.ts new file mode 100644 index 0000000..19da3ab --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Migrator__factory.ts @@ -0,0 +1,59 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV2Migrator, + IUniswapV2MigratorInterface, +} from "../IUniswapV2Migrator"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "migrate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IUniswapV2Migrator__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2MigratorInterface { + return new utils.Interface(_abi) as IUniswapV2MigratorInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV2Migrator { + return new Contract(address, _abi, signerOrProvider) as IUniswapV2Migrator; + } +} diff --git a/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Pair__factory.ts b/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Pair__factory.ts new file mode 100644 index 0000000..3012bb5 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Pair__factory.ts @@ -0,0 +1,677 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV2Pair, + IUniswapV2PairInterface, +} from "../IUniswapV2Pair"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "Burn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "Mint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0In", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1In", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0Out", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1Out", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "Swap", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint112", + name: "reserve0", + type: "uint112", + }, + { + indexed: false, + internalType: "uint112", + name: "reserve1", + type: "uint112", + }, + ], + name: "Sync", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [], + name: "DOMAIN_SEPARATOR", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "MINIMUM_LIQUIDITY", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "PERMIT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "burn", + outputs: [ + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "getReserves", + outputs: [ + { + internalType: "uint112", + name: "reserve0", + type: "uint112", + }, + { + internalType: "uint112", + name: "reserve1", + type: "uint112", + }, + { + internalType: "uint32", + name: "blockTimestampLast", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "kLast", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "mint", + outputs: [ + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "permit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "price0CumulativeLast", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "price1CumulativeLast", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "skim", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amount0Out", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Out", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "swap", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "sync", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "token0", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "token1", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IUniswapV2Pair__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2PairInterface { + return new utils.Interface(_abi) as IUniswapV2PairInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV2Pair { + return new Contract(address, _abi, signerOrProvider) as IUniswapV2Pair; + } +} diff --git a/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Router01__factory.ts b/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Router01__factory.ts new file mode 100644 index 0000000..dbd3a77 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Router01__factory.ts @@ -0,0 +1,775 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV2Router01, + IUniswapV2Router01Interface, +} from "../IUniswapV2Router01"; + +const _abi = [ + { + inputs: [], + name: "WETH", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "amountADesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountTokenDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountIn", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountOut", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsIn", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsOut", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveB", + type: "uint256", + }, + ], + name: "quote", + outputs: [ + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityETHWithPermit", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityWithPermit", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapETHForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactETHForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForETH", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactETH", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IUniswapV2Router01__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2Router01Interface { + return new utils.Interface(_abi) as IUniswapV2Router01Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV2Router01 { + return new Contract(address, _abi, signerOrProvider) as IUniswapV2Router01; + } +} diff --git a/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Router02__factory.ts b/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Router02__factory.ts new file mode 100644 index 0000000..db64630 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/factories/IUniswapV2Router02__factory.ts @@ -0,0 +1,977 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV2Router02, + IUniswapV2Router02Interface, +} from "../IUniswapV2Router02"; + +const _abi = [ + { + inputs: [], + name: "WETH", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "amountADesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountTokenDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountIn", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountOut", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsIn", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsOut", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveB", + type: "uint256", + }, + ], + name: "quote", + outputs: [ + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidityETHSupportingFeeOnTransferTokens", + outputs: [ + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityETHWithPermit", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + outputs: [ + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityWithPermit", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapETHForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactETHForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactETHForTokensSupportingFeeOnTransferTokens", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForETH", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForETHSupportingFeeOnTransferTokens", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForTokensSupportingFeeOnTransferTokens", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactETH", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IUniswapV2Router02__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV2Router02Interface { + return new utils.Interface(_abi) as IUniswapV2Router02Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV2Router02 { + return new Contract(address, _abi, signerOrProvider) as IUniswapV2Router02; + } +} diff --git a/src/contrib/smart-order-router/types/v2/factories/UniswapV2ERC20__factory.ts b/src/contrib/smart-order-router/types/v2/factories/UniswapV2ERC20__factory.ts new file mode 100644 index 0000000..05447e3 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/factories/UniswapV2ERC20__factory.ts @@ -0,0 +1,398 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + UniswapV2ERC20, + UniswapV2ERC20Interface, +} from "../UniswapV2ERC20"; + +const _abi = [ + { + inputs: [], + payable: false, + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + constant: true, + inputs: [], + name: "DOMAIN_SEPARATOR", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "PERMIT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "permit", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040514690806052610b898239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550610a9b806100ee6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054610949908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461098b908263ffffffff6109f416565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea265627a7a723158200a1f25ac97b56edae6740781259ba188530a8a88577b2b41240f6dc34f0d6a4664736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429"; + +export class UniswapV2ERC20__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): UniswapV2ERC20 { + return super.attach(address) as UniswapV2ERC20; + } + connect(signer: Signer): UniswapV2ERC20__factory { + return super.connect(signer) as UniswapV2ERC20__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV2ERC20Interface { + return new utils.Interface(_abi) as UniswapV2ERC20Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UniswapV2ERC20 { + return new Contract(address, _abi, signerOrProvider) as UniswapV2ERC20; + } +} diff --git a/src/contrib/smart-order-router/types/v2/factories/UniswapV2Factory__factory.ts b/src/contrib/smart-order-router/types/v2/factories/UniswapV2Factory__factory.ts new file mode 100644 index 0000000..9353b5a --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/factories/UniswapV2Factory__factory.ts @@ -0,0 +1,252 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + UniswapV2Factory, + UniswapV2FactoryInterface, +} from "../UniswapV2Factory"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_feeToSetter", + type: "address", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token0", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token1", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "pair", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "PairCreated", + type: "event", + }, + { + constant: true, + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "allPairs", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "allPairsLength", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + ], + name: "createPair", + outputs: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "feeTo", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "feeToSetter", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "getPair", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "_feeTo", + type: "address", + }, + ], + name: "setFeeTo", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "_feeToSetter", + type: "address", + }, + ], + name: "setFeeToSetter", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040516136863803806136868339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055613623806100636000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a2e74af61161005b578063a2e74af6146100fd578063c9c6539614610132578063e6a439051461016d578063f46901ed146101a857610088565b8063017e7e581461008d578063094b7415146100be5780631e3dd18b146100c6578063574f2ba3146100e3575b600080fd5b6100956101db565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100956101f7565b610095600480360360208110156100dc57600080fd5b5035610213565b6100eb610247565b60408051918252519081900360200190f35b6101306004803603602081101561011357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661024d565b005b6100956004803603604081101561014857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661031a565b6100956004803603604081101561018357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661076d565b610130600480360360208110156101be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107a0565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061022057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60035490565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156103b757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106103f45783856103f7565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff821661047e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561051f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b6060604051806020016105319061086d565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f5604080517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152868116602483015291519297509087169163485cc9559160448082019260009290919082900301818387803b15801561065e57600080fd5b505af1158015610672573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526002602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a35050505092915050565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461082657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612d748061087b8339019056fe60806040526001600c5534801561001557600080fd5b506040514690806052612d228239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612c1d806101056000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a723158202760f92d7fa1db6f5aa16307bad65df4ebcc8550c4b1f03755ab8dfd830c178f64736f6c63430005100032"; + +export class UniswapV2Factory__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _feeToSetter: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _feeToSetter, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _feeToSetter: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_feeToSetter, overrides || {}); + } + attach(address: string): UniswapV2Factory { + return super.attach(address) as UniswapV2Factory; + } + connect(signer: Signer): UniswapV2Factory__factory { + return super.connect(signer) as UniswapV2Factory__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV2FactoryInterface { + return new utils.Interface(_abi) as UniswapV2FactoryInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UniswapV2Factory { + return new Contract(address, _abi, signerOrProvider) as UniswapV2Factory; + } +} diff --git a/src/contrib/smart-order-router/types/v2/factories/UniswapV2Migrator__factory.ts b/src/contrib/smart-order-router/types/v2/factories/UniswapV2Migrator__factory.ts new file mode 100644 index 0000000..b37bfba --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/factories/UniswapV2Migrator__factory.ts @@ -0,0 +1,117 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + UniswapV2Migrator, + UniswapV2MigratorInterface, +} from "../UniswapV2Migrator"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factoryV1", + type: "address", + }, + { + internalType: "address", + name: "_router", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "migrate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +]; + +const _bytecode = + "0x60c060405234801561001057600080fd5b50604051610b3f380380610b3f8339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c610ab8610087600039806103ee5280610484528061051652508060905250610ab86000f3fe6080604052600436106100225760003560e01c8063b7df1d251461002e57610029565b3661002957005b600080fd5b34801561003a57600080fd5b5061008a600480360360a081101561005157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135909116906080013561008c565b005b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166306f2bf62876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561012b57600080fd5b505afa15801561013f573d6000803e3d6000fd5b505050506040513d602081101561015557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b1580156101c957600080fd5b505afa1580156101dd573d6000803e3d6000fd5b505050506040513d60208110156101f357600080fd5b5051604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052905191925073ffffffffffffffffffffffffffffffffffffffff8416916323b872dd916064808201926020929091908290030181600087803b15801561027457600080fd5b505af1158015610288573d6000803e3d6000fd5b505050506040513d602081101561029e57600080fd5b505161030b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c4544000000000000000000000000604482015290519081900360640190fd5b604080517ff88bf15a0000000000000000000000000000000000000000000000000000000081526004810183905260016024820181905260448201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60648201528151600092839273ffffffffffffffffffffffffffffffffffffffff87169263f88bf15a9260848084019391929182900301818787803b1580156103b057600080fd5b505af11580156103c4573d6000803e3d6000fd5b505050506040513d60408110156103da57600080fd5b5080516020909101519092509050610413897f00000000000000000000000000000000000000000000000000000000000000008361056f565b604080517ff305d71900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b8116600483015260248201849052604482018b9052606482018a9052888116608483015260a48201889052915160009283927f00000000000000000000000000000000000000000000000000000000000000009091169163f305d71991879160c480830192606092919082900301818588803b1580156104cf57600080fd5b505af11580156104e3573d6000803e3d6000fd5b50505050506040513d60608110156104fa57600080fd5b50805160209091015190925090508183111561054e5761053c8b7f0000000000000000000000000000000000000000000000000000000000000000600061056f565b6105498b3384860361074c565b610562565b808411156105625761056233828603610922565b5050505050505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b6020831061064557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610608565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146106a7576040519150601f19603f3d011682016040523d82523d6000602084013e6106ac565b606091505b50915091508180156106da5750805115806106da57508080602001905160208110156106d757600080fd5b50515b61074557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c45440000604482015290519081900360640190fd5b5050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b6020831061082257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107e5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610884576040519150601f19603f3d011682016040523d82523d6000602084013e610889565b606091505b50915091508180156108b75750805115806108b757508080602001905160208110156108b457600080fd5b50515b61074557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b6020831061099957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161095c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146109fb576040519150601f19603f3d011682016040523d82523d6000602084013e610a00565b606091505b5050905080610a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610a606023913960400191505060405180910390fd5b50505056fe5472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544a26469706673582212202768d5253768a1aad1a799af33f41e01a2eadb3b0e507551a0be190be21184ca64736f6c63430006060033"; + +export class UniswapV2Migrator__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _factoryV1: string, + _router: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _factoryV1, + _router, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _factoryV1: string, + _router: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_factoryV1, _router, overrides || {}); + } + attach(address: string): UniswapV2Migrator { + return super.attach(address) as UniswapV2Migrator; + } + connect(signer: Signer): UniswapV2Migrator__factory { + return super.connect(signer) as UniswapV2Migrator__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV2MigratorInterface { + return new utils.Interface(_abi) as UniswapV2MigratorInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UniswapV2Migrator { + return new Contract(address, _abi, signerOrProvider) as UniswapV2Migrator; + } +} diff --git a/src/contrib/smart-order-router/types/v2/factories/UniswapV2Pair__factory.ts b/src/contrib/smart-order-router/types/v2/factories/UniswapV2Pair__factory.ts new file mode 100644 index 0000000..21f5fdf --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/factories/UniswapV2Pair__factory.ts @@ -0,0 +1,764 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { UniswapV2Pair, UniswapV2PairInterface } from "../UniswapV2Pair"; + +const _abi = [ + { + inputs: [], + payable: false, + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "Burn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "Mint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0In", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1In", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0Out", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1Out", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "Swap", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint112", + name: "reserve0", + type: "uint112", + }, + { + indexed: false, + internalType: "uint112", + name: "reserve1", + type: "uint112", + }, + ], + name: "Sync", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + constant: true, + inputs: [], + name: "DOMAIN_SEPARATOR", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "MINIMUM_LIQUIDITY", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "PERMIT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "burn", + outputs: [ + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "getReserves", + outputs: [ + { + internalType: "uint112", + name: "_reserve0", + type: "uint112", + }, + { + internalType: "uint112", + name: "_reserve1", + type: "uint112", + }, + { + internalType: "uint32", + name: "_blockTimestampLast", + type: "uint32", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "_token0", + type: "address", + }, + { + internalType: "address", + name: "_token1", + type: "address", + }, + ], + name: "initialize", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "kLast", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "mint", + outputs: [ + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + name: "nonces", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "permit", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "price0CumulativeLast", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "price1CumulativeLast", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "skim", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "uint256", + name: "amount0Out", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Out", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "swap", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [], + name: "sync", + outputs: [], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: true, + inputs: [], + name: "token0", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "token1", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: true, + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + payable: false, + stateMutability: "view", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, + { + constant: false, + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + payable: false, + stateMutability: "nonpayable", + type: "function", + }, +]; + +const _bytecode = + "0x60806040526001600c5534801561001557600080fd5b506040514690806052612d228239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612c1d806101056000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158207dca18479e58487606bf70c79e44d8dee62353c9ee6d01f9a9d70885b8765f2264736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429"; + +export class UniswapV2Pair__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): UniswapV2Pair { + return super.attach(address) as UniswapV2Pair; + } + connect(signer: Signer): UniswapV2Pair__factory { + return super.connect(signer) as UniswapV2Pair__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV2PairInterface { + return new utils.Interface(_abi) as UniswapV2PairInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UniswapV2Pair { + return new Contract(address, _abi, signerOrProvider) as UniswapV2Pair; + } +} diff --git a/src/contrib/smart-order-router/types/v2/factories/UniswapV2Router01__factory.ts b/src/contrib/smart-order-router/types/v2/factories/UniswapV2Router01__factory.ts new file mode 100644 index 0000000..47ad601 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/factories/UniswapV2Router01__factory.ts @@ -0,0 +1,833 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + UniswapV2Router01, + UniswapV2Router01Interface, +} from "../UniswapV2Router01"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factory", + type: "address", + }, + { + internalType: "address", + name: "_WETH", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "WETH", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "amountADesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountTokenDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountIn", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountOut", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsIn", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsOut", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveB", + type: "uint256", + }, + ], + name: "quote", + outputs: [ + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityETHWithPermit", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityWithPermit", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapETHForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactETHForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForETH", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactETH", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +]; + +const _bytecode = + "0x60c060405234801561001057600080fd5b506040516141273803806141278339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c613feb61013c600039806101655280610b235280610b5e5280610c9b5280610f5e52806113b852806115e65280611799528061182e5280611afd5280611eb352806121e9528061223f528061227352806122f4528061250e52806126be5280612753525080610d8d5280610e8b5280611031528061106a528061121552806114aa52806116cc528061186d5280611a335280611ba65280611e385280611e615280611e91528061206e528061221d52806125f452806127925280613211528061325452806137e752806138c852806139485250613feb6000f3fe6080604052600436106101485760003560e01c80638803dbee116100c0578063d06ca61f11610074578063e8e3370011610059578063e8e3370014610937578063f305d719146109c4578063fb3bdb4114610a175761018e565b8063d06ca61f14610800578063ded9382a146108b75761018e565b8063ad615dec116100a5578063ad615dec1461074b578063baa2abde14610781578063c45a0155146107eb5761018e565b80638803dbee14610668578063ad5c46481461070d5761018e565b80632195995c116101175780634a25d94a116100fc5780634a25d94a146105305780637ff36ab5146105d557806385f8c2591461020c5761018e565b80632195995c1461040057806338ed17391461048b5761018e565b806302751cec14610193578063054d50d41461020c57806318cbafe5146102545780631f00ca74146103495761018e565b3661018e573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461018c57fe5b005b600080fd5b34801561019f57600080fd5b506101f3600480360360c08110156101b657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610aaa565b6040805192835260208301919091528051918290030190f35b34801561021857600080fd5b506102426004803603606081101561022f57600080fd5b5080359060208101359060400135610bfd565b60408051918252519081900360200190f35b34801561026057600080fd5b506102f9600480360360a081101561027757600080fd5b81359160208101359181019060608101604082013564010000000081111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460208302840111640100000000831117156102d257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610c12565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561033557818101518382015260200161031d565b505050509050019250505060405180910390f35b34801561035557600080fd5b506102f96004803603604081101561036c57600080fd5b8135919081019060408101602082013564010000000081111561038e57600080fd5b8201836020820111156103a057600080fd5b803590602001918460208302840111640100000000831117156103c257600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061102a945050505050565b34801561040c57600080fd5b506101f3600480360361016081101561042457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611060565b34801561049757600080fd5b506102f9600480360360a08110156104ae57600080fd5b8135916020810135918101906060810160408201356401000000008111156104d557600080fd5b8201836020820111156104e757600080fd5b8035906020019184602083028401116401000000008311171561050957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813516906020013561119e565b34801561053c57600080fd5b506102f9600480360360a081101561055357600080fd5b81359160208101359181019060608101604082013564010000000081111561057a57600080fd5b82018360208201111561058c57600080fd5b803590602001918460208302840111640100000000831117156105ae57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813516906020013561132f565b6102f9600480360360808110156105eb57600080fd5b8135919081019060408101602082013564010000000081111561060d57600080fd5b82018360208201111561061f57600080fd5b8035906020019184602083028401116401000000008311171561064157600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611572565b34801561067457600080fd5b506102f9600480360360a081101561068b57600080fd5b8135916020810135918101906060810160408201356401000000008111156106b257600080fd5b8201836020820111156106c457600080fd5b803590602001918460208302840111640100000000831117156106e657600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119bc565b34801561071957600080fd5b50610722611afb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561075757600080fd5b506102426004803603606081101561076e57600080fd5b5080359060208101359060400135611b1f565b34801561078d57600080fd5b506101f3600480360360e08110156107a457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135611b2c565b3480156107f757600080fd5b50610722611e36565b34801561080c57600080fd5b506102f96004803603604081101561082357600080fd5b8135919081019060408101602082013564010000000081111561084557600080fd5b82018360208201111561085757600080fd5b8035906020019184602083028401116401000000008311171561087957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611e5a945050505050565b3480156108c357600080fd5b506101f360048036036101408110156108db57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e08201351690610100810135906101200135611e87565b34801561094357600080fd5b506109a6600480360361010081101561095b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135611fdf565b60408051938452602084019290925282820152519081900360600190f35b6109a6600480360360c08110156109da57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a0013561216e565b6102f960048036036080811015610a2d57600080fd5b81359190810190604081016020820135640100000000811115610a4f57600080fd5b820183602082011115610a6157600080fd5b80359060200191846020830284011164010000000083111715610a8357600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813516906020013561249a565b6000808242811015610b1d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610b4c897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a611b2c565b9093509150610b5c8986856128e9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610bcf57600080fd5b505af1158015610be3573d6000803e3d6000fd5b50505050610bf18583612ac6565b50965096945050505050565b6000610c0a848484612c03565b949350505050565b60608142811015610c8457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110610ce957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b610de67f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612d2792505050565b91508682600184510381518110610df957fe5b60200260200101511015610e58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613f3c602b913960400191505060405180910390fd5b610f1d86866000818110610e6857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633610f037f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610eb757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b6001818110610ee157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16612e8d565b85600081518110610f1057fe5b6020026020010151612f78565b610f5c82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250613148915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d83600185510381518110610fa857fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610fe657600080fd5b505af1158015610ffa573d6000803e3d6000fd5b5050505061101f848360018551038151811061101257fe5b6020026020010151612ac6565b509695505050505050565b60606110577f000000000000000000000000000000000000000000000000000000000000000084846133cf565b90505b92915050565b60008060006110907f00000000000000000000000000000000000000000000000000000000000000008f8f612e8d565b905060008761109f578c6110c1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b505050506111848f8f8f8f8f8f8f611b2c565b809450819550505050509b509b9950505050505050505050565b6060814281101561121057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61126e7f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612d2792505050565b9150868260018451038151811061128157fe5b602002602001015110156112e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613f3c602b913960400191505060405180910390fd5b6112f086866000818110610e6857fe5b61101f82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613148915050565b606081428110156113a157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061140657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6115037f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506133cf92505050565b9150868260008151811061151357fe5b60200260200101511115610e58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180613ecc6027913960400191505060405180910390fd5b606081428110156115e457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168686600081811061162857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116c757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6117257f000000000000000000000000000000000000000000000000000000000000000034888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612d2792505050565b9150868260018451038151811061173857fe5b60200260200101511015611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613f3c602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836000815181106117e057fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561181357600080fd5b505af1158015611827573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6118c37f00000000000000000000000000000000000000000000000000000000000000008989600081811061189957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a6001818110610ee157fe5b846000815181106118d057fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561194157600080fd5b505af1158015611955573d6000803e3d6000fd5b505050506040513d602081101561196b57600080fd5b505161197357fe5b6119b282878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613148915050565b5095945050505050565b60608142811015611a2e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611a8c7f0000000000000000000000000000000000000000000000000000000000000000898888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506133cf92505050565b91508682600081518110611a9c57fe5b602002602001015111156112e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180613ecc6027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610c0a84848461355d565b6000808242811015611b9f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000611bcc7f00000000000000000000000000000000000000000000000000000000000000008c8c612e8d565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015611c4d57600080fd5b505af1158015611c61573d6000803e3d6000fd5b505050506040513d6020811015611c7757600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015611cea57600080fd5b505af1158015611cfe573d6000803e3d6000fd5b505050506040513d6040811015611d1457600080fd5b50805160209091015190925090506000611d2e8e8e61363d565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614611d6b578183611d6e565b82825b90975095508a871015611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613ef36026913960400191505060405180910390fd5b89861015611e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613e596026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606110577f00000000000000000000000000000000000000000000000000000000000000008484612d27565b6000806000611ed77f00000000000000000000000000000000000000000000000000000000000000008e7f0000000000000000000000000000000000000000000000000000000000000000612e8d565b9050600087611ee6578c611f08565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b158015611fa457600080fd5b505af1158015611fb8573d6000803e3d6000fd5b50505050611fca8e8e8e8e8e8e610aaa565b909f909e509c50505050505050505050505050565b6000806000834281101561205457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6120628c8c8c8c8c8c613790565b909450925060006120947f00000000000000000000000000000000000000000000000000000000000000008e8e612e8d565b90506120a28d338388612f78565b6120ae8c338387612f78565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561212d57600080fd5b505af1158015612141573d6000803e3d6000fd5b505050506040513d602081101561215757600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156121e357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6122118a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c613790565b909450925060006122637f00000000000000000000000000000000000000000000000000000000000000008c7f0000000000000000000000000000000000000000000000000000000000000000612e8d565b90506122718b338388612f78565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b1580156122d957600080fd5b505af11580156122ed573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561239957600080fd5b505af11580156123ad573d6000803e3d6000fd5b505050506040513d60208110156123c357600080fd5b50516123cb57fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561244a57600080fd5b505af115801561245e573d6000803e3d6000fd5b505050506040513d602081101561247457600080fd5b505192503484101561248c5761248c33853403612ac6565b505096509650969350505050565b6060814281101561250c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168686600081811061255057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125ef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61264d7f0000000000000000000000000000000000000000000000000000000000000000888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506133cf92505050565b9150348260008151811061265d57fe5b602002602001015111156126bc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180613ecc6027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061270557fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561273857600080fd5b505af115801561274c573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6127be7f00000000000000000000000000000000000000000000000000000000000000008989600081811061189957fe5b846000815181106127cb57fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561283c57600080fd5b505af1158015612850573d6000803e3d6000fd5b505050506040513d602081101561286657600080fd5b505161286e57fe5b6128ad82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250613148915050565b816000815181106128ba57fe5b60200260200101513411156119b2576119b233836000815181106128da57fe5b60200260200101513403612ac6565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b602083106129bf57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612982565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612a21576040519150601f19603f3d011682016040523d82523d6000602084013e612a26565b606091505b5091509150818015612a54575080511580612a545750808060200190516020811015612a5157600080fd5b50515b612abf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310612b3d57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612b00565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612b9f576040519150601f19603f3d011682016040523d82523d6000602084013e612ba4565b606091505b5050905080612bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613f196023913960400191505060405180910390fd5b505050565b6000808411612c5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613f8b602b913960400191505060405180910390fd5b600083118015612c6d5750600082115b612cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613e7f6028913960400191505060405180910390fd5b6000612cd6856103e563ffffffff613a9116565b90506000612cea828563ffffffff613a9116565b90506000612d1083612d04886103e863ffffffff613a9116565b9063ffffffff613b1716565b9050808281612d1b57fe5b04979650505050505050565b6060600282511015612d9a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015612db257600080fd5b50604051908082528060200260200182016040528015612ddc578160200160208202803683370190505b5090508281600081518110612ded57fe5b60200260200101818152505060005b6001835103811015612e8557600080612e3f87868581518110612e1b57fe5b6020026020010151878660010181518110612e3257fe5b6020026020010151613b89565b91509150612e61848481518110612e5257fe5b60200260200101518383612c03565b848460010181518110612e7057fe5b60209081029190910101525050600101612dfc565b509392505050565b6000806000612e9c858561363d565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061305657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613019565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130b8576040519150601f19603f3d011682016040523d82523d6000602084013e6130bd565b606091505b50915091508180156130eb5750805115806130eb57508080602001905160208110156130e857600080fd5b50515b613140576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613f676024913960400191505060405180910390fd5b505050505050565b60005b60018351038110156133c95760008084838151811061316657fe5b602002602001015185846001018151811061317d57fe5b6020026020010151915091506000613195838361363d565b50905060008785600101815181106131a957fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146131f1578260006131f5565b6000835b91509150600060028a5103881061320c578861324d565b61324d7f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061324057fe5b6020026020010151612e8d565b905061327a7f00000000000000000000000000000000000000000000000000000000000000008888612e8d565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156132c4576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561334f578181015183820152602001613337565b50505050905090810190601f16801561337c5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561339e57600080fd5b505af11580156133b2573d6000803e3d6000fd5b50506001909901985061314b975050505050505050565b50505050565b606060028251101561344257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561345a57600080fd5b50604051908082528060200260200182016040528015613484578160200160208202803683370190505b509050828160018351038151811061349857fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b8015612e85576000806134f8878660018603815181106134e457fe5b6020026020010151878681518110612e3257fe5b9150915061351a84848151811061350b57fe5b60200260200101518383613c71565b84600185038151811061352957fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016134c8565b60008084116135b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613ea76025913960400191505060405180910390fd5b6000831180156135c75750600082115b61361c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613e7f6028913960400191505060405180910390fd5b8261362d858463ffffffff613a9116565b8161363457fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156136c5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613e346025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16106136ff578284613702565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff821661378957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561383057600080fd5b505afa158015613844573d6000803e3d6000fd5b505050506040513d602081101561385a57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16141561394057604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b15801561391357600080fd5b505af1158015613927573d6000803e3d6000fd5b505050506040513d602081101561393d57600080fd5b50505b60008061396e7f00000000000000000000000000000000000000000000000000000000000000008b8b613b89565b91509150816000148015613980575080155b1561399057879350869250613a84565b600061399d89848461355d565b9050878111613a0a57858110156139ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613e596026913960400191505060405180910390fd5b889450925082613a82565b6000613a1789848661355d565b905089811115613a2357fe5b87811015613a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613ef36026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b6000811580613aac57505080820282828281613aa957fe5b04145b61105a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561105a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b6000806000613b98858561363d565b509050600080613ba9888888612e8d565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015613bee57600080fd5b505afa158015613c02573d6000803e3d6000fd5b505050506040513d6060811015613c1857600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff87811690841614613c5f578082613c62565b81815b90999098509650505050505050565b6000808411613ccb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613e08602c913960400191505060405180910390fd5b600083118015613cdb5750600082115b613d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613e7f6028913960400191505060405180910390fd5b6000613d546103e8613d48868863ffffffff613a9116565b9063ffffffff613a9116565b90506000613d6e6103e5613d48868963ffffffff613d9516565b9050613d8b6001828481613d7e57fe5b049063ffffffff613b1716565b9695505050505050565b8082038281111561105a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fdfe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a2646970667358221220b430cc168eec157f24fadd56d0b90b2652ce5b0abb39cf9d64713138a400fb8c64736f6c63430006060033"; + +export class UniswapV2Router01__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _factory: string, + _WETH: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _factory, + _WETH, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _factory: string, + _WETH: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_factory, _WETH, overrides || {}); + } + attach(address: string): UniswapV2Router01 { + return super.attach(address) as UniswapV2Router01; + } + connect(signer: Signer): UniswapV2Router01__factory { + return super.connect(signer) as UniswapV2Router01__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV2Router01Interface { + return new utils.Interface(_abi) as UniswapV2Router01Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UniswapV2Router01 { + return new Contract(address, _abi, signerOrProvider) as UniswapV2Router01; + } +} diff --git a/src/contrib/smart-order-router/types/v2/factories/UniswapV2Router02__factory.ts b/src/contrib/smart-order-router/types/v2/factories/UniswapV2Router02__factory.ts new file mode 100644 index 0000000..f61ddae --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/factories/UniswapV2Router02__factory.ts @@ -0,0 +1,1035 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + UniswapV2Router02, + UniswapV2Router02Interface, +} from "../UniswapV2Router02"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factory", + type: "address", + }, + { + internalType: "address", + name: "_WETH", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "WETH", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "amountADesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountTokenDesired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "addLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountIn", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveOut", + type: "uint256", + }, + ], + name: "getAmountOut", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsIn", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + ], + name: "getAmountsOut", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveA", + type: "uint256", + }, + { + internalType: "uint256", + name: "reserveB", + type: "uint256", + }, + ], + name: "quote", + outputs: [ + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidityETH", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "removeLiquidityETHSupportingFeeOnTransferTokens", + outputs: [ + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityETHWithPermit", + outputs: [ + { + internalType: "uint256", + name: "amountToken", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountTokenMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountETHMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens", + outputs: [ + { + internalType: "uint256", + name: "amountETH", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint256", + name: "liquidity", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountAMin", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountBMin", + type: "uint256", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "approveMax", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "removeLiquidityWithPermit", + outputs: [ + { + internalType: "uint256", + name: "amountA", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountB", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapETHForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactETHForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactETHForTokensSupportingFeeOnTransferTokens", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForETH", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForETHSupportingFeeOnTransferTokens", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMin", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapExactTokensForTokensSupportingFeeOnTransferTokens", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactETH", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMax", + type: "uint256", + }, + { + internalType: "address[]", + name: "path", + type: "address[]", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + name: "swapTokensForExactTokens", + outputs: [ + { + internalType: "uint256[]", + name: "amounts", + type: "uint256[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +]; + +const _bytecode = + "0x60c06040523480156200001157600080fd5b506040516200573e3803806200573e833981810160405260408110156200003757600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c6155b762000187600039806101ac5280610e5d5280610e985280610fd5528061129852806116f252806118d65280611e1e5280611fa252806120725280612179528061232c52806123c15280612673528061271a52806127ef52806128f452806129dc5280612a5d52806130ec5280613422528061347852806134ac528061352d528061374752806138f7528061398c5250806110c752806111c5528061136b52806113a4528061154f52806117e452806118b45280611aa1528061225f528061240052806125a95280612a9c5280612ddf5280613071528061309a52806130ca52806132a75280613456528061382d52806139cb528061444a528061448d52806147ed52806149ce5280614f49528061502a52806150aa52506155b76000f3fe60806040526004361061018f5760003560e01c80638803dbee116100d6578063c45a01551161007f578063e8e3370011610059578063e8e3370014610c71578063f305d71914610cfe578063fb3bdb4114610d51576101d5565b8063c45a015514610b25578063d06ca61f14610b3a578063ded9382a14610bf1576101d5565b8063af2979eb116100b0578063af2979eb146109c8578063b6f9de9514610a28578063baa2abde14610abb576101d5565b80638803dbee146108af578063ad5c464814610954578063ad615dec14610992576101d5565b80634a25d94a11610138578063791ac94711610112578063791ac947146107415780637ff36ab5146107e657806385f8c25914610879576101d5565b80634a25d94a146105775780635b0d59841461061c5780635c11d7951461069c576101d5565b80631f00ca74116101695780631f00ca74146103905780632195995c1461044757806338ed1739146104d2576101d5565b806302751cec146101da578063054d50d41461025357806318cbafe51461029b576101d5565b366101d5573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146101d357fe5b005b600080fd5b3480156101e657600080fd5b5061023a600480360360c08110156101fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610de4565b6040805192835260208301919091528051918290030190f35b34801561025f57600080fd5b506102896004803603606081101561027657600080fd5b5080359060208101359060400135610f37565b60408051918252519081900360200190f35b3480156102a757600080fd5b50610340600480360360a08110156102be57600080fd5b8135916020810135918101906060810160408201356401000000008111156102e557600080fd5b8201836020820111156102f757600080fd5b8035906020019184602083028401116401000000008311171561031957600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f4c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561037c578181015183820152602001610364565b505050509050019250505060405180910390f35b34801561039c57600080fd5b50610340600480360360408110156103b357600080fd5b813591908101906040810160208201356401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184602083028401116401000000008311171561040957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611364945050505050565b34801561045357600080fd5b5061023a600480360361016081101561046b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff610100820135169061012081013590610140013561139a565b3480156104de57600080fd5b50610340600480360360a08110156104f557600080fd5b81359160208101359181019060608101604082013564010000000081111561051c57600080fd5b82018360208201111561052e57600080fd5b8035906020019184602083028401116401000000008311171561055057600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356114d8565b34801561058357600080fd5b50610340600480360360a081101561059a57600080fd5b8135916020810135918101906060810160408201356401000000008111156105c157600080fd5b8201836020820111156105d357600080fd5b803590602001918460208302840111640100000000831117156105f557600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611669565b34801561062857600080fd5b50610289600480360361014081101561064057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356118ac565b3480156106a857600080fd5b506101d3600480360360a08110156106bf57600080fd5b8135916020810135918101906060810160408201356401000000008111156106e657600080fd5b8201836020820111156106f857600080fd5b8035906020019184602083028401116401000000008311171561071a57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356119fe565b34801561074d57600080fd5b506101d3600480360360a081101561076457600080fd5b81359160208101359181019060608101604082013564010000000081111561078b57600080fd5b82018360208201111561079d57600080fd5b803590602001918460208302840111640100000000831117156107bf57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611d97565b610340600480360360808110156107fc57600080fd5b8135919081019060408101602082013564010000000081111561081e57600080fd5b82018360208201111561083057600080fd5b8035906020019184602083028401116401000000008311171561085257600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612105565b34801561088557600080fd5b506102896004803603606081101561089c57600080fd5b5080359060208101359060400135612525565b3480156108bb57600080fd5b50610340600480360360a08110156108d257600080fd5b8135916020810135918101906060810160408201356401000000008111156108f957600080fd5b82018360208201111561090b57600080fd5b8035906020019184602083028401116401000000008311171561092d57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612532565b34801561096057600080fd5b50610969612671565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561099e57600080fd5b50610289600480360360608110156109b557600080fd5b5080359060208101359060400135612695565b3480156109d457600080fd5b50610289600480360360c08110156109eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356126a2565b6101d360048036036080811015610a3e57600080fd5b81359190810190604081016020820135640100000000811115610a6057600080fd5b820183602082011115610a7257600080fd5b80359060200191846020830284011164010000000083111715610a9457600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135612882565b348015610ac757600080fd5b5061023a600480360360e0811015610ade57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612d65565b348015610b3157600080fd5b5061096961306f565b348015610b4657600080fd5b5061034060048036036040811015610b5d57600080fd5b81359190810190604081016020820135640100000000811115610b7f57600080fd5b820183602082011115610b9157600080fd5b80359060200191846020830284011164010000000083111715610bb357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613093945050505050565b348015610bfd57600080fd5b5061023a6004803603610140811015610c1557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356130c0565b348015610c7d57600080fd5b50610ce06004803603610100811015610c9557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135613218565b60408051938452602084019290925282820152519081900360600190f35b610ce0600480360360c0811015610d1457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356133a7565b61034060048036036080811015610d6757600080fd5b81359190810190604081016020820135640100000000811115610d8957600080fd5b820183602082011115610d9b57600080fd5b80359060200191846020830284011164010000000083111715610dbd57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356136d3565b6000808242811015610e5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b610e86897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a612d65565b9093509150610e96898685613b22565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b50505050610f2b8583613cff565b50965096945050505050565b6000610f44848484613e3c565b949350505050565b60608142811015610fbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061102357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6111207f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b9150868260018451038151811061113357fe5b60200260200101511015611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b611257868660008181106111a257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff163361123d7f00000000000000000000000000000000000000000000000000000000000000008a8a60008181106111f157fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061121b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166140c6565b8560008151811061124a57fe5b60200260200101516141b1565b61129682878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614381915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836001855103815181106112e257fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132057600080fd5b505af1158015611334573d6000803e3d6000fd5b50505050611359848360018551038151811061134c57fe5b6020026020010151613cff565b509695505050505050565b60606113917f00000000000000000000000000000000000000000000000000000000000000008484614608565b90505b92915050565b60008060006113ca7f00000000000000000000000000000000000000000000000000000000000000008f8f6140c6565b90506000876113d9578c6113fb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561149757600080fd5b505af11580156114ab573d6000803e3d6000fd5b505050506114be8f8f8f8f8f8f8f612d65565b809450819550505050509b509b9950505050505050505050565b6060814281101561154a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6115a87f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b915086826001845103815181106115bb57fe5b6020026020010151101561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b61162a868660008181106111a257fe5b61135982878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b606081428110156116db57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061174057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b61183d7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150868260008151811061184d57fe5b60200260200101511115611192576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b6000806118fa7f00000000000000000000000000000000000000000000000000000000000000008d7f00000000000000000000000000000000000000000000000000000000000000006140c6565b9050600086611909578b61192b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c48101879052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156119c757600080fd5b505af11580156119db573d6000803e3d6000fd5b505050506119ed8d8d8d8d8d8d6126a2565b9d9c50505050505050505050505050565b8042811015611a6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b611afd85856000818110611a7e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611af77f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061121b57fe5b8a6141b1565b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611b2d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bc657600080fd5b505afa158015611bda573d6000803e3d6000fd5b505050506040513d6020811015611bf057600080fd5b50516040805160208881028281018201909352888252929350611c32929091899189918291850190849080828437600092019190915250889250614796915050565b86611d368288887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611c6557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b505afa158015611d12573d6000803e3d6000fd5b505050506040513d6020811015611d2857600080fd5b50519063ffffffff614b2916565b1015611d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b5050505050505050565b8042811015611e0757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001685857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611e6c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b611f1b85856000818110611a7e57fe5b611f59858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614796915050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611fe957600080fd5b505afa158015611ffd573d6000803e3d6000fd5b505050506040513d602081101561201357600080fd5b5051905086811015612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156120e357600080fd5b505af11580156120f7573d6000803e3d6000fd5b50505050611d8d8482613cff565b6060814281101561217757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660008181106121bb57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461225a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6122b87f000000000000000000000000000000000000000000000000000000000000000034888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f6092505050565b915086826001845103815181106122cb57fe5b6020026020010151101561232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615508602b913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061237357fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61242c7f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b8460008151811061243957fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124aa57600080fd5b505af11580156124be573d6000803e3d6000fd5b505050506040513d60208110156124d457600080fd5b50516124dc57fe5b61251b82878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b5095945050505050565b6000610f44848484614b9b565b606081428110156125a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6126027f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150868260008151811061261257fe5b6020026020010151111561161a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610f44848484614cbf565b6000814281101561271457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b612743887f00000000000000000000000000000000000000000000000000000000000000008989893089612d65565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519194506127ed92508a91879173ffffffffffffffffffffffffffffffffffffffff8416916370a0823191602480820192602092909190829003018186803b1580156127bc57600080fd5b505afa1580156127d0573d6000803e3d6000fd5b505050506040513d60208110156127e657600080fd5b5051613b22565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561286057600080fd5b505af1158015612874573d6000803e3d6000fd5b505050506113598483613cff565b80428110156128f257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168585600081811061293657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b60003490507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a4257600080fd5b505af1158015612a56573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ac87f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b3257600080fd5b505af1158015612b46573d6000803e3d6000fd5b505050506040513d6020811015612b5c57600080fd5b5051612b6457fe5b600086867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612b9457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c2d57600080fd5b505afa158015612c41573d6000803e3d6000fd5b505050506040513d6020811015612c5757600080fd5b50516040805160208981028281018201909352898252929350612c999290918a918a918291850190849080828437600092019190915250899250614796915050565b87611d368289897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612ccc57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b6000808242811015612dd857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b6000612e057f00000000000000000000000000000000000000000000000000000000000000008c8c6140c6565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015612e8657600080fd5b505af1158015612e9a573d6000803e3d6000fd5b505050506040513d6020811015612eb057600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015612f2357600080fd5b505af1158015612f37573d6000803e3d6000fd5b505050506040513d6040811015612f4d57600080fd5b50805160209091015190925090506000612f678e8e614d9f565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612fa4578183612fa7565b82825b90975095508a871015613005576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154bf6026913960400191505060405180910390fd5b8986101561305e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154256026913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606113917f00000000000000000000000000000000000000000000000000000000000000008484613f60565b60008060006131107f00000000000000000000000000000000000000000000000000000000000000008e7f00000000000000000000000000000000000000000000000000000000000000006140c6565b905060008761311f578c613141565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156131dd57600080fd5b505af11580156131f1573d6000803e3d6000fd5b505050506132038e8e8e8e8e8e610de4565b909f909e509c50505050505050505050505050565b6000806000834281101561328d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61329b8c8c8c8c8c8c614ef2565b909450925060006132cd7f00000000000000000000000000000000000000000000000000000000000000008e8e6140c6565b90506132db8d3383886141b1565b6132e78c3383876141b1565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561336657600080fd5b505af115801561337a573d6000803e3d6000fd5b505050506040513d602081101561339057600080fd5b5051949d939c50939a509198505050505050505050565b6000806000834281101561341c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b61344a8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c614ef2565b9094509250600061349c7f00000000000000000000000000000000000000000000000000000000000000008c7f00000000000000000000000000000000000000000000000000000000000000006140c6565b90506134aa8b3383886141b1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561351257600080fd5b505af1158015613526573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135d257600080fd5b505af11580156135e6573d6000803e3d6000fd5b505050506040513d60208110156135fc57600080fd5b505161360457fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561368357600080fd5b505af1158015613697573d6000803e3d6000fd5b505050506040513d60208110156136ad57600080fd5b50519250348410156136c5576136c533853403613cff565b505096509650969350505050565b6060814281101561374557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f556e69737761705632526f757465723a20455850495245440000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168686600081811061378957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461382857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69737761705632526f757465723a20494e56414c49445f50415448000000604482015290519081900360640190fd5b6138867f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061460892505050565b9150348260008151811061389657fe5b602002602001015111156138f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806154986027913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061393e57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561397157600080fd5b505af1158015613985573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6139f77f000000000000000000000000000000000000000000000000000000000000000089896000818110611acd57fe5b84600081518110613a0457fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a7557600080fd5b505af1158015613a89573d6000803e3d6000fd5b505050506040513d6020811015613a9f57600080fd5b5051613aa757fe5b613ae682878780806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250899250614381915050565b81600081518110613af357fe5b602002602001015134111561251b5761251b3383600081518110613b1357fe5b60200260200101513403613cff565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310613bf857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613bbb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c5a576040519150601f19603f3d011682016040523d82523d6000602084013e613c5f565b606091505b5091509150818015613c8d575080511580613c8d5750808060200190516020811015613c8a57600080fd5b50515b613cf857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310613d7657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613d39565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613dd8576040519150601f19603f3d011682016040523d82523d6000602084013e613ddd565b606091505b5050905080613e37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806154e56023913960400191505060405180910390fd5b505050565b6000808411613e96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180615557602b913960400191505060405180910390fd5b600083118015613ea65750600082115b613efb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b6000613f0f856103e563ffffffff6151f316565b90506000613f23828563ffffffff6151f316565b90506000613f4983613f3d886103e863ffffffff6151f316565b9063ffffffff61527916565b9050808281613f5457fe5b04979650505050505050565b6060600282511015613fd357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff81118015613feb57600080fd5b50604051908082528060200260200182016040528015614015578160200160208202803683370190505b509050828160008151811061402657fe5b60200260200101818152505060005b60018351038110156140be576000806140788786858151811061405457fe5b602002602001015187866001018151811061406b57fe5b60200260200101516152eb565b9150915061409a84848151811061408b57fe5b60200260200101518383613e3c565b8484600101815181106140a957fe5b60209081029190910101525050600101614035565b509392505050565b60008060006140d58585614d9f565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b6020831061428f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101614252565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146142f1576040519150601f19603f3d011682016040523d82523d6000602084013e6142f6565b606091505b5091509150818015614324575080511580614324575080806020019051602081101561432157600080fd5b50515b614379576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806155336024913960400191505060405180910390fd5b505050505050565b60005b60018351038110156146025760008084838151811061439f57fe5b60200260200101518584600101815181106143b657fe5b60200260200101519150915060006143ce8383614d9f565b50905060008785600101815181106143e257fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461442a5782600061442e565b6000835b91509150600060028a510388106144455788614486565b6144867f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061447957fe5b60200260200101516140c6565b90506144b37f000000000000000000000000000000000000000000000000000000000000000088886140c6565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f1916602001820160405280156144fd576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614588578181015183820152602001614570565b50505050905090810190601f1680156145b55780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156145d757600080fd5b505af11580156145eb573d6000803e3d6000fd5b505060019099019850614384975050505050505050565b50505050565b606060028251101561467b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a20494e56414c49445f504154480000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561469357600080fd5b506040519080825280602002602001820160405280156146bd578160200160208202803683370190505b50905082816001835103815181106146d157fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b80156140be576000806147318786600186038151811061471d57fe5b602002602001015187868151811061406b57fe5b9150915061475384848151811061474457fe5b60200260200101518383614b9b565b84600185038151811061476257fe5b602090810291909101015250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01614701565b60005b6001835103811015613e37576000808483815181106147b457fe5b60200260200101518584600101815181106147cb57fe5b60200260200101519150915060006147e38383614d9f565b50905060006148137f000000000000000000000000000000000000000000000000000000000000000085856140c6565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561486157600080fd5b505afa158015614875573d6000803e3d6000fd5b505050506040513d606081101561488b57600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905060008073ffffffffffffffffffffffffffffffffffffffff8a8116908916146148d55782846148d8565b83835b9150915061495d828b73ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cfe57600080fd5b955061496a868383613e3c565b9450505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146149ae578260006149b2565b6000835b91509150600060028c51038a106149c9578a6149fd565b6149fd7f0000000000000000000000000000000000000000000000000000000000000000898e8d6002018151811061447957fe5b60408051600080825260208201928390527f022c0d9f000000000000000000000000000000000000000000000000000000008352602482018781526044830187905273ffffffffffffffffffffffffffffffffffffffff8086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015614aad578181015183820152602001614a95565b50505050905090810190601f168015614ada5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015614afc57600080fd5b505af1158015614b10573d6000803e3d6000fd5b50506001909b019a506147999950505050505050505050565b8082038281111561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808411614bf5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806153d4602c913960400191505060405180910390fd5b600083118015614c055750600082115b614c5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b6000614c7e6103e8614c72868863ffffffff6151f316565b9063ffffffff6151f316565b90506000614c986103e5614c72868963ffffffff614b2916565b9050614cb56001828481614ca857fe5b049063ffffffff61527916565b9695505050505050565b6000808411614d19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154736025913960400191505060405180910390fd5b600083118015614d295750600082115b614d7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061544b6028913960400191505060405180910390fd5b82614d8f858463ffffffff6151f316565b81614d9657fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614e27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806154006025913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610614e61578284614e64565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216614eeb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b158015614f9257600080fd5b505afa158015614fa6573d6000803e3d6000fd5b505050506040513d6020811015614fbc57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614156150a257604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b15801561507557600080fd5b505af1158015615089573d6000803e3d6000fd5b505050506040513d602081101561509f57600080fd5b50505b6000806150d07f00000000000000000000000000000000000000000000000000000000000000008b8b6152eb565b915091508160001480156150e2575080155b156150f2578793508692506151e6565b60006150ff898484614cbf565b905087811161516c5785811015615161576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154256026913960400191505060405180910390fd5b8894509250826151e4565b6000615179898486614cbf565b90508981111561518557fe5b878110156151de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806154bf6026913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b600081158061520e5750508082028282828161520b57fe5b04145b61139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561139457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008060006152fa8585614d9f565b50905060008061530b8888886140c6565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561535057600080fd5b505afa158015615364573d6000803e3d6000fd5b505050506040513d606081101561537a57600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146153c15780826153c4565b81815b9099909850965050505050505056fe556e697377617056324c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056324c6962726172793a204944454e544943414c5f414444524553534553556e69737761705632526f757465723a20494e53554646494349454e545f425f414d4f554e54556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459556e697377617056324c6962726172793a20494e53554646494349454e545f414d4f554e54556e69737761705632526f757465723a204558434553534956455f494e5055545f414d4f554e54556e69737761705632526f757465723a20494e53554646494349454e545f415f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544556e69737761705632526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54a26469706673582212206dd6e03c4b2c0a8e55214926227ae9e2d6f9fec2ce74a6446d615afa355c84f364736f6c63430006060033"; + +export class UniswapV2Router02__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _factory: string, + _WETH: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _factory, + _WETH, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _factory: string, + _WETH: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_factory, _WETH, overrides || {}); + } + attach(address: string): UniswapV2Router02 { + return super.attach(address) as UniswapV2Router02; + } + connect(signer: Signer): UniswapV2Router02__factory { + return super.connect(signer) as UniswapV2Router02__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV2Router02Interface { + return new utils.Interface(_abi) as UniswapV2Router02Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UniswapV2Router02 { + return new Contract(address, _abi, signerOrProvider) as UniswapV2Router02; + } +} diff --git a/src/contrib/smart-order-router/types/v2/index.ts b/src/contrib/smart-order-router/types/v2/index.ts new file mode 100644 index 0000000..6fe4ec3 --- /dev/null +++ b/src/contrib/smart-order-router/types/v2/index.ts @@ -0,0 +1,30 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IUniswapV2Callee } from "./IUniswapV2Callee"; +export type { IUniswapV2ERC20 } from "./IUniswapV2ERC20"; +export type { IUniswapV2Factory } from "./IUniswapV2Factory"; +export type { IUniswapV2Pair } from "./IUniswapV2Pair"; +export type { UniswapV2ERC20 } from "./UniswapV2ERC20"; +export type { UniswapV2Factory } from "./UniswapV2Factory"; +export type { UniswapV2Pair } from "./UniswapV2Pair"; +export type { IUniswapV2Migrator } from "./IUniswapV2Migrator"; +export type { IUniswapV2Router01 } from "./IUniswapV2Router01"; +export type { IUniswapV2Router02 } from "./IUniswapV2Router02"; +export type { UniswapV2Migrator } from "./UniswapV2Migrator"; +export type { UniswapV2Router01 } from "./UniswapV2Router01"; +export type { UniswapV2Router02 } from "./UniswapV2Router02"; + +export { IUniswapV2Callee__factory } from "./factories/IUniswapV2Callee__factory"; +export { IUniswapV2ERC20__factory } from "./factories/IUniswapV2ERC20__factory"; +export { IUniswapV2Factory__factory } from "./factories/IUniswapV2Factory__factory"; +export { IUniswapV2Pair__factory } from "./factories/IUniswapV2Pair__factory"; +export { UniswapV2ERC20__factory } from "./factories/UniswapV2ERC20__factory"; +export { UniswapV2Factory__factory } from "./factories/UniswapV2Factory__factory"; +export { UniswapV2Pair__factory } from "./factories/UniswapV2Pair__factory"; +export { IUniswapV2Migrator__factory } from "./factories/IUniswapV2Migrator__factory"; +export { IUniswapV2Router01__factory } from "./factories/IUniswapV2Router01__factory"; +export { IUniswapV2Router02__factory } from "./factories/IUniswapV2Router02__factory"; +export { UniswapV2Migrator__factory } from "./factories/UniswapV2Migrator__factory"; +export { UniswapV2Router01__factory } from "./factories/UniswapV2Router01__factory"; +export { UniswapV2Router02__factory } from "./factories/UniswapV2Router02__factory"; diff --git a/src/contrib/smart-order-router/types/v3/IERC1271.d.ts b/src/contrib/smart-order-router/types/v3/IERC1271.d.ts new file mode 100644 index 0000000..7246a5d --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IERC1271.d.ts @@ -0,0 +1,121 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IERC1271Interface extends ethers.utils.Interface { + functions: { + "isValidSignature(bytes32,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "isValidSignature", + values: [BytesLike, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "isValidSignature", + data: BytesLike + ): Result; + + events: {}; +} + +export class IERC1271 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IERC1271Interface; + + functions: { + isValidSignature( + hash: BytesLike, + signature: BytesLike, + overrides?: CallOverrides + ): Promise<[string] & { magicValue: string }>; + }; + + isValidSignature( + hash: BytesLike, + signature: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + isValidSignature( + hash: BytesLike, + signature: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + isValidSignature( + hash: BytesLike, + signature: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + isValidSignature( + hash: BytesLike, + signature: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IERC20Metadata.d.ts b/src/contrib/smart-order-router/types/v3/IERC20Metadata.d.ts new file mode 100644 index 0000000..8747ac7 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IERC20Metadata.d.ts @@ -0,0 +1,363 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IERC20MetadataInterface extends ethers.utils.Interface { + functions: { + "allowance(address,address)": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "decimals()": FunctionFragment; + "name()": FunctionFragment; + "symbol()": FunctionFragment; + "totalSupply()": FunctionFragment; + "transfer(address,uint256)": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "allowance", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export type ApprovalEvent = TypedEvent< + [string, string, BigNumber] & { + owner: string; + spender: string; + value: BigNumber; + } +>; + +export type TransferEvent = TypedEvent< + [string, string, BigNumber] & { from: string; to: string; value: BigNumber } +>; + +export class IERC20Metadata extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IERC20MetadataInterface; + + functions: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + decimals(overrides?: CallOverrides): Promise<[number]>; + + name(overrides?: CallOverrides): Promise<[string]>; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise; + + decimals(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise; + + decimals(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "Approval(address,address,uint256)"( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + Approval( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + "Transfer(address,address,uint256)"( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + + Transfer( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + }; + + estimateGas: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise; + + decimals(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + account: string, + overrides?: CallOverrides + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IERC20Minimal.d.ts b/src/contrib/smart-order-router/types/v3/IERC20Minimal.d.ts new file mode 100644 index 0000000..8290e42 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IERC20Minimal.d.ts @@ -0,0 +1,305 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IERC20MinimalInterface extends ethers.utils.Interface { + functions: { + "allowance(address,address)": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "transfer(address,uint256)": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "allowance", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData( + functionFragment: "transfer", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export type ApprovalEvent = TypedEvent< + [string, string, BigNumber] & { + owner: string; + spender: string; + value: BigNumber; + } +>; + +export type TransferEvent = TypedEvent< + [string, string, BigNumber] & { from: string; to: string; value: BigNumber } +>; + +export class IERC20Minimal extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IERC20MinimalInterface; + + functions: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "Approval(address,address,uint256)"( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + Approval( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + "Transfer(address,address,uint256)"( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + + Transfer( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + }; + + estimateGas: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + account: string, + overrides?: CallOverrides + ): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IERC20PermitAllowed.d.ts b/src/contrib/smart-order-router/types/v3/IERC20PermitAllowed.d.ts new file mode 100644 index 0000000..fd71a3e --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IERC20PermitAllowed.d.ts @@ -0,0 +1,158 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IERC20PermitAllowedInterface extends ethers.utils.Interface { + functions: { + "permit(address,address,uint256,uint256,bool,uint8,bytes32,bytes32)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "permit", + values: [ + string, + string, + BigNumberish, + BigNumberish, + boolean, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + + events: {}; +} + +export class IERC20PermitAllowed extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IERC20PermitAllowedInterface; + + functions: { + permit( + holder: string, + spender: string, + nonce: BigNumberish, + expiry: BigNumberish, + allowed: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + permit( + holder: string, + spender: string, + nonce: BigNumberish, + expiry: BigNumberish, + allowed: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + permit( + holder: string, + spender: string, + nonce: BigNumberish, + expiry: BigNumberish, + allowed: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + permit( + holder: string, + spender: string, + nonce: BigNumberish, + expiry: BigNumberish, + allowed: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + permit( + holder: string, + spender: string, + nonce: BigNumberish, + expiry: BigNumberish, + allowed: boolean, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IERC721Permit.d.ts b/src/contrib/smart-order-router/types/v3/IERC721Permit.d.ts new file mode 100644 index 0000000..723f6d8 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IERC721Permit.d.ts @@ -0,0 +1,621 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IERC721PermitInterface extends ethers.utils.Interface { + functions: { + "DOMAIN_SEPARATOR()": FunctionFragment; + "PERMIT_TYPEHASH()": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "getApproved(uint256)": FunctionFragment; + "isApprovedForAll(address,address)": FunctionFragment; + "ownerOf(uint256)": FunctionFragment; + "permit(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "safeTransferFrom(address,address,uint256)": FunctionFragment; + "setApprovalForAll(address,bool)": FunctionFragment; + "supportsInterface(bytes4)": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "DOMAIN_SEPARATOR", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PERMIT_TYPEHASH", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData( + functionFragment: "getApproved", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "isApprovedForAll", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "ownerOf", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "safeTransferFrom", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setApprovalForAll", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "DOMAIN_SEPARATOR", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PERMIT_TYPEHASH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getApproved", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "isApprovedForAll", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setApprovalForAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "ApprovalForAll(address,address,bool)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ApprovalForAll"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export type ApprovalEvent = TypedEvent< + [string, string, BigNumber] & { + owner: string; + approved: string; + tokenId: BigNumber; + } +>; + +export type ApprovalForAllEvent = TypedEvent< + [string, string, boolean] & { + owner: string; + operator: string; + approved: boolean; + } +>; + +export type TransferEvent = TypedEvent< + [string, string, BigNumber] & { from: string; to: string; tokenId: BigNumber } +>; + +export class IERC721Permit extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IERC721PermitInterface; + + functions: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<[string]>; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + owner: string, + overrides?: CallOverrides + ): Promise<[BigNumber] & { balance: BigNumber }>; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise<[string] & { operator: string }>; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise<[boolean]>; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise<[string] & { owner: string }>; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + ownerOf(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + ownerOf(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + setApprovalForAll( + operator: string, + _approved: boolean, + overrides?: CallOverrides + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "Approval(address,address,uint256)"( + owner?: string | null, + approved?: string | null, + tokenId?: BigNumberish | null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; approved: string; tokenId: BigNumber } + >; + + Approval( + owner?: string | null, + approved?: string | null, + tokenId?: BigNumberish | null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; approved: string; tokenId: BigNumber } + >; + + "ApprovalForAll(address,address,bool)"( + owner?: string | null, + operator?: string | null, + approved?: null + ): TypedEventFilter< + [string, string, boolean], + { owner: string; operator: string; approved: boolean } + >; + + ApprovalForAll( + owner?: string | null, + operator?: string | null, + approved?: null + ): TypedEventFilter< + [string, string, boolean], + { owner: string; operator: string; approved: boolean } + >; + + "Transfer(address,address,uint256)"( + from?: string | null, + to?: string | null, + tokenId?: BigNumberish | null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; tokenId: BigNumber } + >; + + Transfer( + from?: string | null, + to?: string | null, + tokenId?: BigNumberish | null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; tokenId: BigNumber } + >; + }; + + estimateGas: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + owner: string, + overrides?: CallOverrides + ): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IMulticall.d.ts b/src/contrib/smart-order-router/types/v3/IMulticall.d.ts new file mode 100644 index 0000000..712416f --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IMulticall.d.ts @@ -0,0 +1,111 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IMulticallInterface extends ethers.utils.Interface { + functions: { + "multicall(bytes[])": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "multicall", + values: [BytesLike[]] + ): string; + + decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result; + + events: {}; +} + +export class IMulticall extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IMulticallInterface; + + functions: { + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + multicall(data: BytesLike[], overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/INonfungiblePositionManager.d.ts b/src/contrib/smart-order-router/types/v3/INonfungiblePositionManager.d.ts new file mode 100644 index 0000000..db7d905 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/INonfungiblePositionManager.d.ts @@ -0,0 +1,1538 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface INonfungiblePositionManagerInterface extends ethers.utils.Interface { + functions: { + "DOMAIN_SEPARATOR()": FunctionFragment; + "PERMIT_TYPEHASH()": FunctionFragment; + "WETH9()": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "burn(uint256)": FunctionFragment; + "collect((uint256,address,uint128,uint128))": FunctionFragment; + "createAndInitializePoolIfNecessary(address,address,uint24,uint160)": FunctionFragment; + "decreaseLiquidity((uint256,uint128,uint256,uint256,uint256))": FunctionFragment; + "factory()": FunctionFragment; + "getApproved(uint256)": FunctionFragment; + "increaseLiquidity((uint256,uint256,uint256,uint256,uint256,uint256))": FunctionFragment; + "isApprovedForAll(address,address)": FunctionFragment; + "mint((address,address,uint24,int24,int24,uint256,uint256,uint256,uint256,address,uint256))": FunctionFragment; + "name()": FunctionFragment; + "ownerOf(uint256)": FunctionFragment; + "permit(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "positions(uint256)": FunctionFragment; + "refundETH()": FunctionFragment; + "safeTransferFrom(address,address,uint256)": FunctionFragment; + "setApprovalForAll(address,bool)": FunctionFragment; + "supportsInterface(bytes4)": FunctionFragment; + "sweepToken(address,uint256,address)": FunctionFragment; + "symbol()": FunctionFragment; + "tokenByIndex(uint256)": FunctionFragment; + "tokenOfOwnerByIndex(address,uint256)": FunctionFragment; + "tokenURI(uint256)": FunctionFragment; + "totalSupply()": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + "unwrapWETH9(uint256,address)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "DOMAIN_SEPARATOR", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PERMIT_TYPEHASH", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "collect", + values: [ + { + tokenId: BigNumberish; + recipient: string; + amount0Max: BigNumberish; + amount1Max: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "createAndInitializePoolIfNecessary", + values: [string, string, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "decreaseLiquidity", + values: [ + { + tokenId: BigNumberish; + liquidity: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + } + ] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "getApproved", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "increaseLiquidity", + values: [ + { + tokenId: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "isApprovedForAll", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [ + { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + } + ] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData( + functionFragment: "ownerOf", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "positions", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "refundETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "safeTransferFrom", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setApprovalForAll", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sweepToken", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "tokenByIndex", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "tokenOfOwnerByIndex", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "tokenURI", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9", + values: [BigNumberish, string] + ): string; + + decodeFunctionResult( + functionFragment: "DOMAIN_SEPARATOR", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PERMIT_TYPEHASH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "collect", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "createAndInitializePoolIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "decreaseLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getApproved", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "increaseLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "isApprovedForAll", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "positions", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "refundETH", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setApprovalForAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "sweepToken", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "tokenByIndex", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "tokenOfOwnerByIndex", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tokenURI", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9", + data: BytesLike + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "ApprovalForAll(address,address,bool)": EventFragment; + "Collect(uint256,address,uint256,uint256)": EventFragment; + "DecreaseLiquidity(uint256,uint128,uint256,uint256)": EventFragment; + "IncreaseLiquidity(uint256,uint128,uint256,uint256)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ApprovalForAll"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Collect"): EventFragment; + getEvent(nameOrSignatureOrTopic: "DecreaseLiquidity"): EventFragment; + getEvent(nameOrSignatureOrTopic: "IncreaseLiquidity"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export type ApprovalEvent = TypedEvent< + [string, string, BigNumber] & { + owner: string; + approved: string; + tokenId: BigNumber; + } +>; + +export type ApprovalForAllEvent = TypedEvent< + [string, string, boolean] & { + owner: string; + operator: string; + approved: boolean; + } +>; + +export type CollectEvent = TypedEvent< + [BigNumber, string, BigNumber, BigNumber] & { + tokenId: BigNumber; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type DecreaseLiquidityEvent = TypedEvent< + [BigNumber, BigNumber, BigNumber, BigNumber] & { + tokenId: BigNumber; + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type IncreaseLiquidityEvent = TypedEvent< + [BigNumber, BigNumber, BigNumber, BigNumber] & { + tokenId: BigNumber; + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type TransferEvent = TypedEvent< + [string, string, BigNumber] & { from: string; to: string; tokenId: BigNumber } +>; + +export class INonfungiblePositionManager extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: INonfungiblePositionManagerInterface; + + functions: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<[string]>; + + WETH9(overrides?: CallOverrides): Promise<[string]>; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + owner: string, + overrides?: CallOverrides + ): Promise<[BigNumber] & { balance: BigNumber }>; + + burn( + tokenId: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + collect( + params: { + tokenId: BigNumberish; + recipient: string; + amount0Max: BigNumberish; + amount1Max: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + decreaseLiquidity( + params: { + tokenId: BigNumberish; + liquidity: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise<[string]>; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise<[string] & { operator: string }>; + + increaseLiquidity( + params: { + tokenId: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise<[boolean]>; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise<[string]>; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise<[string] & { owner: string }>; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + positions( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + string, + string, + string, + number, + number, + number, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber + ] & { + nonce: BigNumber; + operator: string; + token0: string; + token1: string; + fee: number; + tickLower: number; + tickUpper: number; + liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber] & { tokenId: BigNumber }>; + + tokenURI( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + WETH9(overrides?: CallOverrides): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + burn( + tokenId: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + collect( + params: { + tokenId: BigNumberish; + recipient: string; + amount0Max: BigNumberish; + amount1Max: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + decreaseLiquidity( + params: { + tokenId: BigNumberish; + liquidity: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + increaseLiquidity( + params: { + tokenId: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + positions( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + string, + string, + string, + number, + number, + number, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber + ] & { + nonce: BigNumber; + operator: string; + token0: string; + token1: string; + fee: number; + tickLower: number; + tickUpper: number; + liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenURI(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + WETH9(overrides?: CallOverrides): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + burn(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + collect( + params: { + tokenId: BigNumberish; + recipient: string; + amount0Max: BigNumberish; + amount1Max: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + + decreaseLiquidity( + params: { + tokenId: BigNumberish; + liquidity: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + factory(overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + increaseLiquidity( + params: { + tokenId: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber] & { + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber] & { + tokenId: BigNumber; + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + name(overrides?: CallOverrides): Promise; + + ownerOf(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + positions( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + string, + string, + string, + number, + number, + number, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber + ] & { + nonce: BigNumber; + operator: string; + token0: string; + token1: string; + fee: number; + tickLower: number; + tickUpper: number; + liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + refundETH(overrides?: CallOverrides): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + setApprovalForAll( + operator: string, + _approved: boolean, + overrides?: CallOverrides + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenURI(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "Approval(address,address,uint256)"( + owner?: string | null, + approved?: string | null, + tokenId?: BigNumberish | null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; approved: string; tokenId: BigNumber } + >; + + Approval( + owner?: string | null, + approved?: string | null, + tokenId?: BigNumberish | null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; approved: string; tokenId: BigNumber } + >; + + "ApprovalForAll(address,address,bool)"( + owner?: string | null, + operator?: string | null, + approved?: null + ): TypedEventFilter< + [string, string, boolean], + { owner: string; operator: string; approved: boolean } + >; + + ApprovalForAll( + owner?: string | null, + operator?: string | null, + approved?: null + ): TypedEventFilter< + [string, string, boolean], + { owner: string; operator: string; approved: boolean } + >; + + "Collect(uint256,address,uint256,uint256)"( + tokenId?: BigNumberish | null, + recipient?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [BigNumber, string, BigNumber, BigNumber], + { + tokenId: BigNumber; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + Collect( + tokenId?: BigNumberish | null, + recipient?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [BigNumber, string, BigNumber, BigNumber], + { + tokenId: BigNumber; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "DecreaseLiquidity(uint256,uint128,uint256,uint256)"( + tokenId?: BigNumberish | null, + liquidity?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [BigNumber, BigNumber, BigNumber, BigNumber], + { + tokenId: BigNumber; + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + DecreaseLiquidity( + tokenId?: BigNumberish | null, + liquidity?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [BigNumber, BigNumber, BigNumber, BigNumber], + { + tokenId: BigNumber; + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "IncreaseLiquidity(uint256,uint128,uint256,uint256)"( + tokenId?: BigNumberish | null, + liquidity?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [BigNumber, BigNumber, BigNumber, BigNumber], + { + tokenId: BigNumber; + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + IncreaseLiquidity( + tokenId?: BigNumberish | null, + liquidity?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [BigNumber, BigNumber, BigNumber, BigNumber], + { + tokenId: BigNumber; + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "Transfer(address,address,uint256)"( + from?: string | null, + to?: string | null, + tokenId?: BigNumberish | null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; tokenId: BigNumber } + >; + + Transfer( + from?: string | null, + to?: string | null, + tokenId?: BigNumberish | null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; tokenId: BigNumber } + >; + }; + + estimateGas: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + WETH9(overrides?: CallOverrides): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + burn( + tokenId: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + collect( + params: { + tokenId: BigNumberish; + recipient: string; + amount0Max: BigNumberish; + amount1Max: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + decreaseLiquidity( + params: { + tokenId: BigNumberish; + liquidity: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + increaseLiquidity( + params: { + tokenId: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + positions( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenURI( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + WETH9(overrides?: CallOverrides): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + owner: string, + overrides?: CallOverrides + ): Promise; + + burn( + tokenId: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + collect( + params: { + tokenId: BigNumberish; + recipient: string; + amount0Max: BigNumberish; + amount1Max: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + decreaseLiquidity( + params: { + tokenId: BigNumberish; + liquidity: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + increaseLiquidity( + params: { + tokenId: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + positions( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenURI( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/INonfungibleTokenPositionDescriptor.d.ts b/src/contrib/smart-order-router/types/v3/INonfungibleTokenPositionDescriptor.d.ts new file mode 100644 index 0000000..297b1a7 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/INonfungibleTokenPositionDescriptor.d.ts @@ -0,0 +1,119 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface INonfungibleTokenPositionDescriptorInterface + extends ethers.utils.Interface { + functions: { + "tokenURI(address,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "tokenURI", + values: [string, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "tokenURI", data: BytesLike): Result; + + events: {}; +} + +export class INonfungibleTokenPositionDescriptor extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: INonfungibleTokenPositionDescriptorInterface; + + functions: { + tokenURI( + positionManager: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + }; + + tokenURI( + positionManager: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + callStatic: { + tokenURI( + positionManager: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + tokenURI( + positionManager: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + tokenURI( + positionManager: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IPeripheryImmutableState.d.ts b/src/contrib/smart-order-router/types/v3/IPeripheryImmutableState.d.ts new file mode 100644 index 0000000..6d2590a --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IPeripheryImmutableState.d.ts @@ -0,0 +1,108 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IPeripheryImmutableStateInterface extends ethers.utils.Interface { + functions: { + "WETH9()": FunctionFragment; + "factory()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + + events: {}; +} + +export class IPeripheryImmutableState extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IPeripheryImmutableStateInterface; + + functions: { + WETH9(overrides?: CallOverrides): Promise<[string]>; + + factory(overrides?: CallOverrides): Promise<[string]>; + }; + + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + callStatic: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IPeripheryPayments.d.ts b/src/contrib/smart-order-router/types/v3/IPeripheryPayments.d.ts new file mode 100644 index 0000000..8136196 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IPeripheryPayments.d.ts @@ -0,0 +1,184 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IPeripheryPaymentsInterface extends ethers.utils.Interface { + functions: { + "refundETH()": FunctionFragment; + "sweepToken(address,uint256,address)": FunctionFragment; + "unwrapWETH9(uint256,address)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "refundETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "sweepToken", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9", + values: [BigNumberish, string] + ): string; + + decodeFunctionResult(functionFragment: "refundETH", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sweepToken", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9", + data: BytesLike + ): Result; + + events: {}; +} + +export class IPeripheryPayments extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IPeripheryPaymentsInterface; + + functions: { + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + refundETH(overrides?: CallOverrides): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IPeripheryPaymentsWithFee.d.ts b/src/contrib/smart-order-router/types/v3/IPeripheryPaymentsWithFee.d.ts new file mode 100644 index 0000000..db82ccb --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IPeripheryPaymentsWithFee.d.ts @@ -0,0 +1,287 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IPeripheryPaymentsWithFeeInterface extends ethers.utils.Interface { + functions: { + "refundETH()": FunctionFragment; + "sweepToken(address,uint256,address)": FunctionFragment; + "sweepTokenWithFee(address,uint256,address,uint256,address)": FunctionFragment; + "unwrapWETH9(uint256,address)": FunctionFragment; + "unwrapWETH9WithFee(uint256,address,uint256,address)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "refundETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "sweepToken", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "sweepTokenWithFee", + values: [string, BigNumberish, string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9WithFee", + values: [BigNumberish, string, BigNumberish, string] + ): string; + + decodeFunctionResult(functionFragment: "refundETH", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sweepToken", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "sweepTokenWithFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9WithFee", + data: BytesLike + ): Result; + + events: {}; +} + +export class IPeripheryPaymentsWithFee extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IPeripheryPaymentsWithFeeInterface; + + functions: { + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepTokenWithFee( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9WithFee( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepTokenWithFee( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9WithFee( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + refundETH(overrides?: CallOverrides): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + sweepTokenWithFee( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + unwrapWETH9WithFee( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepTokenWithFee( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9WithFee( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepTokenWithFee( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9WithFee( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IPoolInitializer.d.ts b/src/contrib/smart-order-router/types/v3/IPoolInitializer.d.ts new file mode 100644 index 0000000..8bbbfde --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IPoolInitializer.d.ts @@ -0,0 +1,132 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IPoolInitializerInterface extends ethers.utils.Interface { + functions: { + "createAndInitializePoolIfNecessary(address,address,uint24,uint160)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "createAndInitializePoolIfNecessary", + values: [string, string, BigNumberish, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "createAndInitializePoolIfNecessary", + data: BytesLike + ): Result; + + events: {}; +} + +export class IPoolInitializer extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IPoolInitializerInterface; + + functions: { + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IQuoter.d.ts b/src/contrib/smart-order-router/types/v3/IQuoter.d.ts new file mode 100644 index 0000000..da6c529 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IQuoter.d.ts @@ -0,0 +1,269 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IQuoterInterface extends ethers.utils.Interface { + functions: { + "quoteExactInput(bytes,uint256)": FunctionFragment; + "quoteExactInputSingle(address,address,uint24,uint256,uint160)": FunctionFragment; + "quoteExactOutput(bytes,uint256)": FunctionFragment; + "quoteExactOutputSingle(address,address,uint24,uint256,uint160)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "quoteExactInput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactInputSingle", + values: [string, string, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutputSingle", + values: [string, string, BigNumberish, BigNumberish, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "quoteExactInput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutputSingle", + data: BytesLike + ): Result; + + events: {}; +} + +export class IQuoter extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IQuoterInterface; + + functions: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: CallOverrides + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IQuoterV2.d.ts b/src/contrib/smart-order-router/types/v3/IQuoterV2.d.ts new file mode 100644 index 0000000..55da86a --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IQuoterV2.d.ts @@ -0,0 +1,333 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IQuoterV2Interface extends ethers.utils.Interface { + functions: { + "quoteExactInput(bytes,uint256)": FunctionFragment; + "quoteExactInputSingle((address,address,uint256,uint24,uint160))": FunctionFragment; + "quoteExactOutput(bytes,uint256)": FunctionFragment; + "quoteExactOutputSingle((address,address,uint256,uint24,uint160))": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "quoteExactInput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactInputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + + decodeFunctionResult( + functionFragment: "quoteExactInput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutputSingle", + data: BytesLike + ): Result; + + events: {}; +} + +export class IQuoterV2 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IQuoterV2Interface; + + functions: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber[], number[], BigNumber] & { + amountOut: BigNumber; + sqrtPriceX96AfterList: BigNumber[]; + initializedTicksCrossedList: number[]; + gasEstimate: BigNumber; + } + >; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number, BigNumber] & { + amountOut: BigNumber; + sqrtPriceX96After: BigNumber; + initializedTicksCrossed: number; + gasEstimate: BigNumber; + } + >; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber[], number[], BigNumber] & { + amountIn: BigNumber; + sqrtPriceX96AfterList: BigNumber[]; + initializedTicksCrossedList: number[]; + gasEstimate: BigNumber; + } + >; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number, BigNumber] & { + amountIn: BigNumber; + sqrtPriceX96After: BigNumber; + initializedTicksCrossed: number; + gasEstimate: BigNumber; + } + >; + }; + + filters: {}; + + estimateGas: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/ISelfPermit.d.ts b/src/contrib/smart-order-router/types/v3/ISelfPermit.d.ts new file mode 100644 index 0000000..92f079a --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/ISelfPermit.d.ts @@ -0,0 +1,344 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface ISelfPermitInterface extends ethers.utils.Interface { + functions: { + "selfPermit(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitAllowed(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitAllowedIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "selfPermit", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitAllowed", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitAllowedIfNecessary", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitIfNecessary", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + + decodeFunctionResult(functionFragment: "selfPermit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "selfPermitAllowed", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "selfPermitAllowedIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "selfPermitIfNecessary", + data: BytesLike + ): Result; + + events: {}; +} + +export class ISelfPermit extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: ISelfPermitInterface; + + functions: { + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/ISwapRouter.d.ts b/src/contrib/smart-order-router/types/v3/ISwapRouter.d.ts new file mode 100644 index 0000000..65845cc --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/ISwapRouter.d.ts @@ -0,0 +1,449 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface ISwapRouterInterface extends ethers.utils.Interface { + functions: { + "exactInput((bytes,address,uint256,uint256,uint256))": FunctionFragment; + "exactInputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))": FunctionFragment; + "exactOutput((bytes,address,uint256,uint256,uint256))": FunctionFragment; + "exactOutputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))": FunctionFragment; + "uniswapV3SwapCallback(int256,int256,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "exactInput", + values: [ + { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactInputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactOutput", + values: [ + { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactOutputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "exactInput", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "exactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; + + events: {}; +} + +export class ISwapRouter extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: ISwapRouterInterface; + + functions: { + exactInput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + exactInput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + exactInput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + exactInput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + exactInput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/ITickLens.d.ts b/src/contrib/smart-order-router/types/v3/ITickLens.d.ts new file mode 100644 index 0000000..6c2bf6e --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/ITickLens.d.ts @@ -0,0 +1,147 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface ITickLensInterface extends ethers.utils.Interface { + functions: { + "getPopulatedTicksInWord(address,int16)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "getPopulatedTicksInWord", + values: [string, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "getPopulatedTicksInWord", + data: BytesLike + ): Result; + + events: {}; +} + +export class ITickLens extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: ITickLensInterface; + + functions: { + getPopulatedTicksInWord( + pool: string, + tickBitmapIndex: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + ([number, BigNumber, BigNumber] & { + tick: number; + liquidityNet: BigNumber; + liquidityGross: BigNumber; + })[] + ] & { + populatedTicks: ([number, BigNumber, BigNumber] & { + tick: number; + liquidityNet: BigNumber; + liquidityGross: BigNumber; + })[]; + } + >; + }; + + getPopulatedTicksInWord( + pool: string, + tickBitmapIndex: BigNumberish, + overrides?: CallOverrides + ): Promise< + ([number, BigNumber, BigNumber] & { + tick: number; + liquidityNet: BigNumber; + liquidityGross: BigNumber; + })[] + >; + + callStatic: { + getPopulatedTicksInWord( + pool: string, + tickBitmapIndex: BigNumberish, + overrides?: CallOverrides + ): Promise< + ([number, BigNumber, BigNumber] & { + tick: number; + liquidityNet: BigNumber; + liquidityGross: BigNumber; + })[] + >; + }; + + filters: {}; + + estimateGas: { + getPopulatedTicksInWord( + pool: string, + tickBitmapIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + getPopulatedTicksInWord( + pool: string, + tickBitmapIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IUniswapV3Factory.d.ts b/src/contrib/smart-order-router/types/v3/IUniswapV3Factory.d.ts new file mode 100644 index 0000000..426dcba --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IUniswapV3Factory.d.ts @@ -0,0 +1,362 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV3FactoryInterface extends ethers.utils.Interface { + functions: { + "createPool(address,address,uint24)": FunctionFragment; + "enableFeeAmount(uint24,int24)": FunctionFragment; + "feeAmountTickSpacing(uint24)": FunctionFragment; + "getPool(address,address,uint24)": FunctionFragment; + "owner()": FunctionFragment; + "setOwner(address)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "createPool", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "enableFeeAmount", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "feeAmountTickSpacing", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getPool", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData(functionFragment: "setOwner", values: [string]): string; + + decodeFunctionResult(functionFragment: "createPool", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "enableFeeAmount", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "feeAmountTickSpacing", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getPool", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setOwner", data: BytesLike): Result; + + events: { + "FeeAmountEnabled(uint24,int24)": EventFragment; + "OwnerChanged(address,address)": EventFragment; + "PoolCreated(address,address,uint24,int24,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "FeeAmountEnabled"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnerChanged"): EventFragment; + getEvent(nameOrSignatureOrTopic: "PoolCreated"): EventFragment; +} + +export type FeeAmountEnabledEvent = TypedEvent< + [number, number] & { fee: number; tickSpacing: number } +>; + +export type OwnerChangedEvent = TypedEvent< + [string, string] & { oldOwner: string; newOwner: string } +>; + +export type PoolCreatedEvent = TypedEvent< + [string, string, number, number, string] & { + token0: string; + token1: string; + fee: number; + tickSpacing: number; + pool: string; + } +>; + +export class IUniswapV3Factory extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV3FactoryInterface; + + functions: { + createPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enableFeeAmount( + fee: BigNumberish, + tickSpacing: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeAmountTickSpacing( + fee: BigNumberish, + overrides?: CallOverrides + ): Promise<[number]>; + + getPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: CallOverrides + ): Promise<[string] & { pool: string }>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + setOwner( + _owner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + createPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enableFeeAmount( + fee: BigNumberish, + tickSpacing: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeAmountTickSpacing( + fee: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + setOwner( + _owner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + createPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: CallOverrides + ): Promise; + + enableFeeAmount( + fee: BigNumberish, + tickSpacing: BigNumberish, + overrides?: CallOverrides + ): Promise; + + feeAmountTickSpacing( + fee: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + setOwner(_owner: string, overrides?: CallOverrides): Promise; + }; + + filters: { + "FeeAmountEnabled(uint24,int24)"( + fee?: BigNumberish | null, + tickSpacing?: BigNumberish | null + ): TypedEventFilter<[number, number], { fee: number; tickSpacing: number }>; + + FeeAmountEnabled( + fee?: BigNumberish | null, + tickSpacing?: BigNumberish | null + ): TypedEventFilter<[number, number], { fee: number; tickSpacing: number }>; + + "OwnerChanged(address,address)"( + oldOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { oldOwner: string; newOwner: string } + >; + + OwnerChanged( + oldOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { oldOwner: string; newOwner: string } + >; + + "PoolCreated(address,address,uint24,int24,address)"( + token0?: string | null, + token1?: string | null, + fee?: BigNumberish | null, + tickSpacing?: null, + pool?: null + ): TypedEventFilter< + [string, string, number, number, string], + { + token0: string; + token1: string; + fee: number; + tickSpacing: number; + pool: string; + } + >; + + PoolCreated( + token0?: string | null, + token1?: string | null, + fee?: BigNumberish | null, + tickSpacing?: null, + pool?: null + ): TypedEventFilter< + [string, string, number, number, string], + { + token0: string; + token1: string; + fee: number; + tickSpacing: number; + pool: string; + } + >; + }; + + estimateGas: { + createPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enableFeeAmount( + fee: BigNumberish, + tickSpacing: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeAmountTickSpacing( + fee: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + setOwner( + _owner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + createPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enableFeeAmount( + fee: BigNumberish, + tickSpacing: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeAmountTickSpacing( + fee: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + setOwner( + _owner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IUniswapV3FlashCallback.d.ts b/src/contrib/smart-order-router/types/v3/IUniswapV3FlashCallback.d.ts new file mode 100644 index 0000000..a4f0760 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IUniswapV3FlashCallback.d.ts @@ -0,0 +1,127 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV3FlashCallbackInterface extends ethers.utils.Interface { + functions: { + "uniswapV3FlashCallback(uint256,uint256,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "uniswapV3FlashCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "uniswapV3FlashCallback", + data: BytesLike + ): Result; + + events: {}; +} + +export class IUniswapV3FlashCallback extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV3FlashCallbackInterface; + + functions: { + uniswapV3FlashCallback( + fee0: BigNumberish, + fee1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + uniswapV3FlashCallback( + fee0: BigNumberish, + fee1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + uniswapV3FlashCallback( + fee0: BigNumberish, + fee1: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + uniswapV3FlashCallback( + fee0: BigNumberish, + fee1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + uniswapV3FlashCallback( + fee0: BigNumberish, + fee1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IUniswapV3MintCallback.d.ts b/src/contrib/smart-order-router/types/v3/IUniswapV3MintCallback.d.ts new file mode 100644 index 0000000..4ba0663 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IUniswapV3MintCallback.d.ts @@ -0,0 +1,127 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV3MintCallbackInterface extends ethers.utils.Interface { + functions: { + "uniswapV3MintCallback(uint256,uint256,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "uniswapV3MintCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "uniswapV3MintCallback", + data: BytesLike + ): Result; + + events: {}; +} + +export class IUniswapV3MintCallback extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV3MintCallbackInterface; + + functions: { + uniswapV3MintCallback( + amount0Owed: BigNumberish, + amount1Owed: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + uniswapV3MintCallback( + amount0Owed: BigNumberish, + amount1Owed: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + uniswapV3MintCallback( + amount0Owed: BigNumberish, + amount1Owed: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + uniswapV3MintCallback( + amount0Owed: BigNumberish, + amount1Owed: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + uniswapV3MintCallback( + amount0Owed: BigNumberish, + amount1Owed: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IUniswapV3Pool.d.ts b/src/contrib/smart-order-router/types/v3/IUniswapV3Pool.d.ts new file mode 100644 index 0000000..2c4f850 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IUniswapV3Pool.d.ts @@ -0,0 +1,1436 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV3PoolInterface extends ethers.utils.Interface { + functions: { + "burn(int24,int24,uint128)": FunctionFragment; + "collect(address,int24,int24,uint128,uint128)": FunctionFragment; + "collectProtocol(address,uint128,uint128)": FunctionFragment; + "factory()": FunctionFragment; + "fee()": FunctionFragment; + "feeGrowthGlobal0X128()": FunctionFragment; + "feeGrowthGlobal1X128()": FunctionFragment; + "flash(address,uint256,uint256,bytes)": FunctionFragment; + "increaseObservationCardinalityNext(uint16)": FunctionFragment; + "initialize(uint160)": FunctionFragment; + "liquidity()": FunctionFragment; + "maxLiquidityPerTick()": FunctionFragment; + "mint(address,int24,int24,uint128,bytes)": FunctionFragment; + "observations(uint256)": FunctionFragment; + "observe(uint32[])": FunctionFragment; + "positions(bytes32)": FunctionFragment; + "protocolFees()": FunctionFragment; + "setFeeProtocol(uint8,uint8)": FunctionFragment; + "slot0()": FunctionFragment; + "snapshotCumulativesInside(int24,int24)": FunctionFragment; + "swap(address,bool,int256,uint160,bytes)": FunctionFragment; + "tickBitmap(int16)": FunctionFragment; + "tickSpacing()": FunctionFragment; + "ticks(int24)": FunctionFragment; + "token0()": FunctionFragment; + "token1()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "burn", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "collect", + values: [string, BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "collectProtocol", + values: [string, BigNumberish, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData(functionFragment: "fee", values?: undefined): string; + encodeFunctionData( + functionFragment: "feeGrowthGlobal0X128", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "feeGrowthGlobal1X128", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "flash", + values: [string, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "increaseObservationCardinalityNext", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "liquidity", values?: undefined): string; + encodeFunctionData( + functionFragment: "maxLiquidityPerTick", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [string, BigNumberish, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "observations", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "observe", + values: [BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "positions", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "protocolFees", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "setFeeProtocol", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "slot0", values?: undefined): string; + encodeFunctionData( + functionFragment: "snapshotCumulativesInside", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swap", + values: [string, boolean, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tickBitmap", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "tickSpacing", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "ticks", values: [BigNumberish]): string; + encodeFunctionData(functionFragment: "token0", values?: undefined): string; + encodeFunctionData(functionFragment: "token1", values?: undefined): string; + + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "collect", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "collectProtocol", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "fee", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "feeGrowthGlobal0X128", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "feeGrowthGlobal1X128", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "flash", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "increaseObservationCardinalityNext", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "liquidity", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "maxLiquidityPerTick", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "observations", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "observe", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "positions", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "protocolFees", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setFeeProtocol", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "slot0", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "snapshotCumulativesInside", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tickBitmap", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "tickSpacing", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "ticks", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token0", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token1", data: BytesLike): Result; + + events: { + "Burn(address,int24,int24,uint128,uint256,uint256)": EventFragment; + "Collect(address,address,int24,int24,uint128,uint128)": EventFragment; + "CollectProtocol(address,address,uint128,uint128)": EventFragment; + "Flash(address,address,uint256,uint256,uint256,uint256)": EventFragment; + "IncreaseObservationCardinalityNext(uint16,uint16)": EventFragment; + "Initialize(uint160,int24)": EventFragment; + "Mint(address,address,int24,int24,uint128,uint256,uint256)": EventFragment; + "SetFeeProtocol(uint8,uint8,uint8,uint8)": EventFragment; + "Swap(address,address,int256,int256,uint160,uint128,int24)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Burn"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Collect"): EventFragment; + getEvent(nameOrSignatureOrTopic: "CollectProtocol"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Flash"): EventFragment; + getEvent( + nameOrSignatureOrTopic: "IncreaseObservationCardinalityNext" + ): EventFragment; + getEvent(nameOrSignatureOrTopic: "Initialize"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Mint"): EventFragment; + getEvent(nameOrSignatureOrTopic: "SetFeeProtocol"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Swap"): EventFragment; +} + +export type BurnEvent = TypedEvent< + [string, number, number, BigNumber, BigNumber, BigNumber] & { + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type CollectEvent = TypedEvent< + [string, string, number, number, BigNumber, BigNumber] & { + owner: string; + recipient: string; + tickLower: number; + tickUpper: number; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type CollectProtocolEvent = TypedEvent< + [string, string, BigNumber, BigNumber] & { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type FlashEvent = TypedEvent< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber] & { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + paid0: BigNumber; + paid1: BigNumber; + } +>; + +export type IncreaseObservationCardinalityNextEvent = TypedEvent< + [number, number] & { + observationCardinalityNextOld: number; + observationCardinalityNextNew: number; + } +>; + +export type InitializeEvent = TypedEvent< + [BigNumber, number] & { sqrtPriceX96: BigNumber; tick: number } +>; + +export type MintEvent = TypedEvent< + [string, string, number, number, BigNumber, BigNumber, BigNumber] & { + sender: string; + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type SetFeeProtocolEvent = TypedEvent< + [number, number, number, number] & { + feeProtocol0Old: number; + feeProtocol1Old: number; + feeProtocol0New: number; + feeProtocol1New: number; + } +>; + +export type SwapEvent = TypedEvent< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber, number] & { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + sqrtPriceX96: BigNumber; + liquidity: BigNumber; + tick: number; + } +>; + +export class IUniswapV3Pool extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV3PoolInterface; + + functions: { + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise<[string]>; + + fee(overrides?: CallOverrides): Promise<[number]>; + + feeGrowthGlobal0X128(overrides?: CallOverrides): Promise<[BigNumber]>; + + feeGrowthGlobal1X128(overrides?: CallOverrides): Promise<[BigNumber]>; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + liquidity(overrides?: CallOverrides): Promise<[BigNumber]>; + + maxLiquidityPerTick(overrides?: CallOverrides): Promise<[BigNumber]>; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + observations( + index: BigNumberish, + overrides?: CallOverrides + ): Promise< + [number, BigNumber, BigNumber, boolean] & { + blockTimestamp: number; + tickCumulative: BigNumber; + secondsPerLiquidityCumulativeX128: BigNumber; + initialized: boolean; + } + >; + + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise< + [BigNumber[], BigNumber[]] & { + tickCumulatives: BigNumber[]; + secondsPerLiquidityCumulativeX128s: BigNumber[]; + } + >; + + positions( + key: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + _liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + protocolFees( + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { token0: BigNumber; token1: BigNumber } + >; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + slot0( + overrides?: CallOverrides + ): Promise< + [BigNumber, number, number, number, number, number, boolean] & { + sqrtPriceX96: BigNumber; + tick: number; + observationIndex: number; + observationCardinality: number; + observationCardinalityNext: number; + feeProtocol: number; + unlocked: boolean; + } + >; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + tickCumulativeInside: BigNumber; + secondsPerLiquidityInsideX128: BigNumber; + secondsInside: number; + } + >; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tickBitmap( + wordPosition: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + tickSpacing(overrides?: CallOverrides): Promise<[number]>; + + ticks( + tick: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + number, + boolean + ] & { + liquidityGross: BigNumber; + liquidityNet: BigNumber; + feeGrowthOutside0X128: BigNumber; + feeGrowthOutside1X128: BigNumber; + tickCumulativeOutside: BigNumber; + secondsPerLiquidityOutsideX128: BigNumber; + secondsOutside: number; + initialized: boolean; + } + >; + + token0(overrides?: CallOverrides): Promise<[string]>; + + token1(overrides?: CallOverrides): Promise<[string]>; + }; + + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + fee(overrides?: CallOverrides): Promise; + + feeGrowthGlobal0X128(overrides?: CallOverrides): Promise; + + feeGrowthGlobal1X128(overrides?: CallOverrides): Promise; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + liquidity(overrides?: CallOverrides): Promise; + + maxLiquidityPerTick(overrides?: CallOverrides): Promise; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + observations( + index: BigNumberish, + overrides?: CallOverrides + ): Promise< + [number, BigNumber, BigNumber, boolean] & { + blockTimestamp: number; + tickCumulative: BigNumber; + secondsPerLiquidityCumulativeX128: BigNumber; + initialized: boolean; + } + >; + + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise< + [BigNumber[], BigNumber[]] & { + tickCumulatives: BigNumber[]; + secondsPerLiquidityCumulativeX128s: BigNumber[]; + } + >; + + positions( + key: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + _liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + protocolFees( + overrides?: CallOverrides + ): Promise<[BigNumber, BigNumber] & { token0: BigNumber; token1: BigNumber }>; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + slot0( + overrides?: CallOverrides + ): Promise< + [BigNumber, number, number, number, number, number, boolean] & { + sqrtPriceX96: BigNumber; + tick: number; + observationIndex: number; + observationCardinality: number; + observationCardinalityNext: number; + feeProtocol: number; + unlocked: boolean; + } + >; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + tickCumulativeInside: BigNumber; + secondsPerLiquidityInsideX128: BigNumber; + secondsInside: number; + } + >; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tickBitmap( + wordPosition: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tickSpacing(overrides?: CallOverrides): Promise; + + ticks( + tick: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + number, + boolean + ] & { + liquidityGross: BigNumber; + liquidityNet: BigNumber; + feeGrowthOutside0X128: BigNumber; + feeGrowthOutside1X128: BigNumber; + tickCumulativeOutside: BigNumber; + secondsPerLiquidityOutsideX128: BigNumber; + secondsOutside: number; + initialized: boolean; + } + >; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + + callStatic: { + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + factory(overrides?: CallOverrides): Promise; + + fee(overrides?: CallOverrides): Promise; + + feeGrowthGlobal0X128(overrides?: CallOverrides): Promise; + + feeGrowthGlobal1X128(overrides?: CallOverrides): Promise; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: CallOverrides + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + + liquidity(overrides?: CallOverrides): Promise; + + maxLiquidityPerTick(overrides?: CallOverrides): Promise; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + observations( + index: BigNumberish, + overrides?: CallOverrides + ): Promise< + [number, BigNumber, BigNumber, boolean] & { + blockTimestamp: number; + tickCumulative: BigNumber; + secondsPerLiquidityCumulativeX128: BigNumber; + initialized: boolean; + } + >; + + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise< + [BigNumber[], BigNumber[]] & { + tickCumulatives: BigNumber[]; + secondsPerLiquidityCumulativeX128s: BigNumber[]; + } + >; + + positions( + key: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + _liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + protocolFees( + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { token0: BigNumber; token1: BigNumber } + >; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: CallOverrides + ): Promise; + + slot0( + overrides?: CallOverrides + ): Promise< + [BigNumber, number, number, number, number, number, boolean] & { + sqrtPriceX96: BigNumber; + tick: number; + observationIndex: number; + observationCardinality: number; + observationCardinalityNext: number; + feeProtocol: number; + unlocked: boolean; + } + >; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + tickCumulativeInside: BigNumber; + secondsPerLiquidityInsideX128: BigNumber; + secondsInside: number; + } + >; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + tickBitmap( + wordPosition: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tickSpacing(overrides?: CallOverrides): Promise; + + ticks( + tick: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + number, + boolean + ] & { + liquidityGross: BigNumber; + liquidityNet: BigNumber; + feeGrowthOutside0X128: BigNumber; + feeGrowthOutside1X128: BigNumber; + tickCumulativeOutside: BigNumber; + secondsPerLiquidityOutsideX128: BigNumber; + secondsOutside: number; + initialized: boolean; + } + >; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + }; + + filters: { + "Burn(address,int24,int24,uint128,uint256,uint256)"( + owner?: string | null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, number, number, BigNumber, BigNumber, BigNumber], + { + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + Burn( + owner?: string | null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, number, number, BigNumber, BigNumber, BigNumber], + { + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "Collect(address,address,int24,int24,uint128,uint128)"( + owner?: string | null, + recipient?: null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, number, number, BigNumber, BigNumber], + { + owner: string; + recipient: string; + tickLower: number; + tickUpper: number; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + Collect( + owner?: string | null, + recipient?: null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, number, number, BigNumber, BigNumber], + { + owner: string; + recipient: string; + tickLower: number; + tickUpper: number; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "CollectProtocol(address,address,uint128,uint128)"( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + CollectProtocol( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "Flash(address,address,uint256,uint256,uint256,uint256)"( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null, + paid0?: null, + paid1?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + paid0: BigNumber; + paid1: BigNumber; + } + >; + + Flash( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null, + paid0?: null, + paid1?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + paid0: BigNumber; + paid1: BigNumber; + } + >; + + "IncreaseObservationCardinalityNext(uint16,uint16)"( + observationCardinalityNextOld?: null, + observationCardinalityNextNew?: null + ): TypedEventFilter< + [number, number], + { + observationCardinalityNextOld: number; + observationCardinalityNextNew: number; + } + >; + + IncreaseObservationCardinalityNext( + observationCardinalityNextOld?: null, + observationCardinalityNextNew?: null + ): TypedEventFilter< + [number, number], + { + observationCardinalityNextOld: number; + observationCardinalityNextNew: number; + } + >; + + "Initialize(uint160,int24)"( + sqrtPriceX96?: null, + tick?: null + ): TypedEventFilter< + [BigNumber, number], + { sqrtPriceX96: BigNumber; tick: number } + >; + + Initialize( + sqrtPriceX96?: null, + tick?: null + ): TypedEventFilter< + [BigNumber, number], + { sqrtPriceX96: BigNumber; tick: number } + >; + + "Mint(address,address,int24,int24,uint128,uint256,uint256)"( + sender?: null, + owner?: string | null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, number, number, BigNumber, BigNumber, BigNumber], + { + sender: string; + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + Mint( + sender?: null, + owner?: string | null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, number, number, BigNumber, BigNumber, BigNumber], + { + sender: string; + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "SetFeeProtocol(uint8,uint8,uint8,uint8)"( + feeProtocol0Old?: null, + feeProtocol1Old?: null, + feeProtocol0New?: null, + feeProtocol1New?: null + ): TypedEventFilter< + [number, number, number, number], + { + feeProtocol0Old: number; + feeProtocol1Old: number; + feeProtocol0New: number; + feeProtocol1New: number; + } + >; + + SetFeeProtocol( + feeProtocol0Old?: null, + feeProtocol1Old?: null, + feeProtocol0New?: null, + feeProtocol1New?: null + ): TypedEventFilter< + [number, number, number, number], + { + feeProtocol0Old: number; + feeProtocol1Old: number; + feeProtocol0New: number; + feeProtocol1New: number; + } + >; + + "Swap(address,address,int256,int256,uint160,uint128,int24)"( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null, + sqrtPriceX96?: null, + liquidity?: null, + tick?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber, number], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + sqrtPriceX96: BigNumber; + liquidity: BigNumber; + tick: number; + } + >; + + Swap( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null, + sqrtPriceX96?: null, + liquidity?: null, + tick?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber, number], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + sqrtPriceX96: BigNumber; + liquidity: BigNumber; + tick: number; + } + >; + }; + + estimateGas: { + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + fee(overrides?: CallOverrides): Promise; + + feeGrowthGlobal0X128(overrides?: CallOverrides): Promise; + + feeGrowthGlobal1X128(overrides?: CallOverrides): Promise; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + liquidity(overrides?: CallOverrides): Promise; + + maxLiquidityPerTick(overrides?: CallOverrides): Promise; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + observations( + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + positions(key: BytesLike, overrides?: CallOverrides): Promise; + + protocolFees(overrides?: CallOverrides): Promise; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + slot0(overrides?: CallOverrides): Promise; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tickBitmap( + wordPosition: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tickSpacing(overrides?: CallOverrides): Promise; + + ticks(tick: BigNumberish, overrides?: CallOverrides): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + fee(overrides?: CallOverrides): Promise; + + feeGrowthGlobal0X128( + overrides?: CallOverrides + ): Promise; + + feeGrowthGlobal1X128( + overrides?: CallOverrides + ): Promise; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + liquidity(overrides?: CallOverrides): Promise; + + maxLiquidityPerTick( + overrides?: CallOverrides + ): Promise; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + observations( + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + positions( + key: BytesLike, + overrides?: CallOverrides + ): Promise; + + protocolFees(overrides?: CallOverrides): Promise; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + slot0(overrides?: CallOverrides): Promise; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tickBitmap( + wordPosition: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tickSpacing(overrides?: CallOverrides): Promise; + + ticks( + tick: BigNumberish, + overrides?: CallOverrides + ): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IUniswapV3PoolActions.d.ts b/src/contrib/smart-order-router/types/v3/IUniswapV3PoolActions.d.ts new file mode 100644 index 0000000..7cf0ac9 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IUniswapV3PoolActions.d.ts @@ -0,0 +1,396 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV3PoolActionsInterface extends ethers.utils.Interface { + functions: { + "burn(int24,int24,uint128)": FunctionFragment; + "collect(address,int24,int24,uint128,uint128)": FunctionFragment; + "flash(address,uint256,uint256,bytes)": FunctionFragment; + "increaseObservationCardinalityNext(uint16)": FunctionFragment; + "initialize(uint160)": FunctionFragment; + "mint(address,int24,int24,uint128,bytes)": FunctionFragment; + "swap(address,bool,int256,uint160,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "burn", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "collect", + values: [string, BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "flash", + values: [string, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "increaseObservationCardinalityNext", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [string, BigNumberish, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "swap", + values: [string, boolean, BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "collect", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "flash", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "increaseObservationCardinalityNext", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result; + + events: {}; +} + +export class IUniswapV3PoolActions extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV3PoolActionsInterface; + + functions: { + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: CallOverrides + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + }; + + filters: {}; + + estimateGas: { + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IUniswapV3PoolDeployer.d.ts b/src/contrib/smart-order-router/types/v3/IUniswapV3PoolDeployer.d.ts new file mode 100644 index 0000000..52c72b6 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IUniswapV3PoolDeployer.d.ts @@ -0,0 +1,128 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV3PoolDeployerInterface extends ethers.utils.Interface { + functions: { + "parameters()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "parameters", + values?: undefined + ): string; + + decodeFunctionResult(functionFragment: "parameters", data: BytesLike): Result; + + events: {}; +} + +export class IUniswapV3PoolDeployer extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV3PoolDeployerInterface; + + functions: { + parameters( + overrides?: CallOverrides + ): Promise< + [string, string, string, number, number] & { + factory: string; + token0: string; + token1: string; + fee: number; + tickSpacing: number; + } + >; + }; + + parameters( + overrides?: CallOverrides + ): Promise< + [string, string, string, number, number] & { + factory: string; + token0: string; + token1: string; + fee: number; + tickSpacing: number; + } + >; + + callStatic: { + parameters( + overrides?: CallOverrides + ): Promise< + [string, string, string, number, number] & { + factory: string; + token0: string; + token1: string; + fee: number; + tickSpacing: number; + } + >; + }; + + filters: {}; + + estimateGas: { + parameters(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + parameters(overrides?: CallOverrides): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IUniswapV3PoolDerivedState.d.ts b/src/contrib/smart-order-router/types/v3/IUniswapV3PoolDerivedState.d.ts new file mode 100644 index 0000000..cb257d2 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IUniswapV3PoolDerivedState.d.ts @@ -0,0 +1,185 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV3PoolDerivedStateInterface extends ethers.utils.Interface { + functions: { + "observe(uint32[])": FunctionFragment; + "snapshotCumulativesInside(int24,int24)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "observe", + values: [BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "snapshotCumulativesInside", + values: [BigNumberish, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "observe", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "snapshotCumulativesInside", + data: BytesLike + ): Result; + + events: {}; +} + +export class IUniswapV3PoolDerivedState extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV3PoolDerivedStateInterface; + + functions: { + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise< + [BigNumber[], BigNumber[]] & { + tickCumulatives: BigNumber[]; + secondsPerLiquidityCumulativeX128s: BigNumber[]; + } + >; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + tickCumulativeInside: BigNumber; + secondsPerLiquidityInsideX128: BigNumber; + secondsInside: number; + } + >; + }; + + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise< + [BigNumber[], BigNumber[]] & { + tickCumulatives: BigNumber[]; + secondsPerLiquidityCumulativeX128s: BigNumber[]; + } + >; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + tickCumulativeInside: BigNumber; + secondsPerLiquidityInsideX128: BigNumber; + secondsInside: number; + } + >; + + callStatic: { + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise< + [BigNumber[], BigNumber[]] & { + tickCumulatives: BigNumber[]; + secondsPerLiquidityCumulativeX128s: BigNumber[]; + } + >; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + tickCumulativeInside: BigNumber; + secondsPerLiquidityInsideX128: BigNumber; + secondsInside: number; + } + >; + }; + + filters: {}; + + estimateGas: { + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IUniswapV3PoolEvents.d.ts b/src/contrib/smart-order-router/types/v3/IUniswapV3PoolEvents.d.ts new file mode 100644 index 0000000..89abfe9 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IUniswapV3PoolEvents.d.ts @@ -0,0 +1,482 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV3PoolEventsInterface extends ethers.utils.Interface { + functions: {}; + + events: { + "Burn(address,int24,int24,uint128,uint256,uint256)": EventFragment; + "Collect(address,address,int24,int24,uint128,uint128)": EventFragment; + "CollectProtocol(address,address,uint128,uint128)": EventFragment; + "Flash(address,address,uint256,uint256,uint256,uint256)": EventFragment; + "IncreaseObservationCardinalityNext(uint16,uint16)": EventFragment; + "Initialize(uint160,int24)": EventFragment; + "Mint(address,address,int24,int24,uint128,uint256,uint256)": EventFragment; + "SetFeeProtocol(uint8,uint8,uint8,uint8)": EventFragment; + "Swap(address,address,int256,int256,uint160,uint128,int24)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Burn"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Collect"): EventFragment; + getEvent(nameOrSignatureOrTopic: "CollectProtocol"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Flash"): EventFragment; + getEvent( + nameOrSignatureOrTopic: "IncreaseObservationCardinalityNext" + ): EventFragment; + getEvent(nameOrSignatureOrTopic: "Initialize"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Mint"): EventFragment; + getEvent(nameOrSignatureOrTopic: "SetFeeProtocol"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Swap"): EventFragment; +} + +export type BurnEvent = TypedEvent< + [string, number, number, BigNumber, BigNumber, BigNumber] & { + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type CollectEvent = TypedEvent< + [string, string, number, number, BigNumber, BigNumber] & { + owner: string; + recipient: string; + tickLower: number; + tickUpper: number; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type CollectProtocolEvent = TypedEvent< + [string, string, BigNumber, BigNumber] & { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type FlashEvent = TypedEvent< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber] & { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + paid0: BigNumber; + paid1: BigNumber; + } +>; + +export type IncreaseObservationCardinalityNextEvent = TypedEvent< + [number, number] & { + observationCardinalityNextOld: number; + observationCardinalityNextNew: number; + } +>; + +export type InitializeEvent = TypedEvent< + [BigNumber, number] & { sqrtPriceX96: BigNumber; tick: number } +>; + +export type MintEvent = TypedEvent< + [string, string, number, number, BigNumber, BigNumber, BigNumber] & { + sender: string; + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type SetFeeProtocolEvent = TypedEvent< + [number, number, number, number] & { + feeProtocol0Old: number; + feeProtocol1Old: number; + feeProtocol0New: number; + feeProtocol1New: number; + } +>; + +export type SwapEvent = TypedEvent< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber, number] & { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + sqrtPriceX96: BigNumber; + liquidity: BigNumber; + tick: number; + } +>; + +export class IUniswapV3PoolEvents extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV3PoolEventsInterface; + + functions: {}; + + callStatic: {}; + + filters: { + "Burn(address,int24,int24,uint128,uint256,uint256)"( + owner?: string | null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, number, number, BigNumber, BigNumber, BigNumber], + { + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + Burn( + owner?: string | null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, number, number, BigNumber, BigNumber, BigNumber], + { + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "Collect(address,address,int24,int24,uint128,uint128)"( + owner?: string | null, + recipient?: null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, number, number, BigNumber, BigNumber], + { + owner: string; + recipient: string; + tickLower: number; + tickUpper: number; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + Collect( + owner?: string | null, + recipient?: null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, number, number, BigNumber, BigNumber], + { + owner: string; + recipient: string; + tickLower: number; + tickUpper: number; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "CollectProtocol(address,address,uint128,uint128)"( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + CollectProtocol( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "Flash(address,address,uint256,uint256,uint256,uint256)"( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null, + paid0?: null, + paid1?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + paid0: BigNumber; + paid1: BigNumber; + } + >; + + Flash( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null, + paid0?: null, + paid1?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + paid0: BigNumber; + paid1: BigNumber; + } + >; + + "IncreaseObservationCardinalityNext(uint16,uint16)"( + observationCardinalityNextOld?: null, + observationCardinalityNextNew?: null + ): TypedEventFilter< + [number, number], + { + observationCardinalityNextOld: number; + observationCardinalityNextNew: number; + } + >; + + IncreaseObservationCardinalityNext( + observationCardinalityNextOld?: null, + observationCardinalityNextNew?: null + ): TypedEventFilter< + [number, number], + { + observationCardinalityNextOld: number; + observationCardinalityNextNew: number; + } + >; + + "Initialize(uint160,int24)"( + sqrtPriceX96?: null, + tick?: null + ): TypedEventFilter< + [BigNumber, number], + { sqrtPriceX96: BigNumber; tick: number } + >; + + Initialize( + sqrtPriceX96?: null, + tick?: null + ): TypedEventFilter< + [BigNumber, number], + { sqrtPriceX96: BigNumber; tick: number } + >; + + "Mint(address,address,int24,int24,uint128,uint256,uint256)"( + sender?: null, + owner?: string | null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, number, number, BigNumber, BigNumber, BigNumber], + { + sender: string; + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + Mint( + sender?: null, + owner?: string | null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, number, number, BigNumber, BigNumber, BigNumber], + { + sender: string; + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "SetFeeProtocol(uint8,uint8,uint8,uint8)"( + feeProtocol0Old?: null, + feeProtocol1Old?: null, + feeProtocol0New?: null, + feeProtocol1New?: null + ): TypedEventFilter< + [number, number, number, number], + { + feeProtocol0Old: number; + feeProtocol1Old: number; + feeProtocol0New: number; + feeProtocol1New: number; + } + >; + + SetFeeProtocol( + feeProtocol0Old?: null, + feeProtocol1Old?: null, + feeProtocol0New?: null, + feeProtocol1New?: null + ): TypedEventFilter< + [number, number, number, number], + { + feeProtocol0Old: number; + feeProtocol1Old: number; + feeProtocol0New: number; + feeProtocol1New: number; + } + >; + + "Swap(address,address,int256,int256,uint160,uint128,int24)"( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null, + sqrtPriceX96?: null, + liquidity?: null, + tick?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber, number], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + sqrtPriceX96: BigNumber; + liquidity: BigNumber; + tick: number; + } + >; + + Swap( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null, + sqrtPriceX96?: null, + liquidity?: null, + tick?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber, number], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + sqrtPriceX96: BigNumber; + liquidity: BigNumber; + tick: number; + } + >; + }; + + estimateGas: {}; + + populateTransaction: {}; +} diff --git a/src/contrib/smart-order-router/types/v3/IUniswapV3PoolImmutables.d.ts b/src/contrib/smart-order-router/types/v3/IUniswapV3PoolImmutables.d.ts new file mode 100644 index 0000000..17d854d --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IUniswapV3PoolImmutables.d.ts @@ -0,0 +1,174 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV3PoolImmutablesInterface extends ethers.utils.Interface { + functions: { + "factory()": FunctionFragment; + "fee()": FunctionFragment; + "maxLiquidityPerTick()": FunctionFragment; + "tickSpacing()": FunctionFragment; + "token0()": FunctionFragment; + "token1()": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData(functionFragment: "fee", values?: undefined): string; + encodeFunctionData( + functionFragment: "maxLiquidityPerTick", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "tickSpacing", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "token0", values?: undefined): string; + encodeFunctionData(functionFragment: "token1", values?: undefined): string; + + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "fee", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "maxLiquidityPerTick", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "tickSpacing", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "token0", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token1", data: BytesLike): Result; + + events: {}; +} + +export class IUniswapV3PoolImmutables extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV3PoolImmutablesInterface; + + functions: { + factory(overrides?: CallOverrides): Promise<[string]>; + + fee(overrides?: CallOverrides): Promise<[number]>; + + maxLiquidityPerTick(overrides?: CallOverrides): Promise<[BigNumber]>; + + tickSpacing(overrides?: CallOverrides): Promise<[number]>; + + token0(overrides?: CallOverrides): Promise<[string]>; + + token1(overrides?: CallOverrides): Promise<[string]>; + }; + + factory(overrides?: CallOverrides): Promise; + + fee(overrides?: CallOverrides): Promise; + + maxLiquidityPerTick(overrides?: CallOverrides): Promise; + + tickSpacing(overrides?: CallOverrides): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + + callStatic: { + factory(overrides?: CallOverrides): Promise; + + fee(overrides?: CallOverrides): Promise; + + maxLiquidityPerTick(overrides?: CallOverrides): Promise; + + tickSpacing(overrides?: CallOverrides): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + }; + + filters: {}; + + estimateGas: { + factory(overrides?: CallOverrides): Promise; + + fee(overrides?: CallOverrides): Promise; + + maxLiquidityPerTick(overrides?: CallOverrides): Promise; + + tickSpacing(overrides?: CallOverrides): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + factory(overrides?: CallOverrides): Promise; + + fee(overrides?: CallOverrides): Promise; + + maxLiquidityPerTick( + overrides?: CallOverrides + ): Promise; + + tickSpacing(overrides?: CallOverrides): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IUniswapV3PoolOwnerActions.d.ts b/src/contrib/smart-order-router/types/v3/IUniswapV3PoolOwnerActions.d.ts new file mode 100644 index 0000000..323be42 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IUniswapV3PoolOwnerActions.d.ts @@ -0,0 +1,168 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV3PoolOwnerActionsInterface extends ethers.utils.Interface { + functions: { + "collectProtocol(address,uint128,uint128)": FunctionFragment; + "setFeeProtocol(uint8,uint8)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "collectProtocol", + values: [string, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "setFeeProtocol", + values: [BigNumberish, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "collectProtocol", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setFeeProtocol", + data: BytesLike + ): Result; + + events: {}; +} + +export class IUniswapV3PoolOwnerActions extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV3PoolOwnerActionsInterface; + + functions: { + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IUniswapV3PoolState.d.ts b/src/contrib/smart-order-router/types/v3/IUniswapV3PoolState.d.ts new file mode 100644 index 0000000..732ed73 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IUniswapV3PoolState.d.ts @@ -0,0 +1,438 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV3PoolStateInterface extends ethers.utils.Interface { + functions: { + "feeGrowthGlobal0X128()": FunctionFragment; + "feeGrowthGlobal1X128()": FunctionFragment; + "liquidity()": FunctionFragment; + "observations(uint256)": FunctionFragment; + "positions(bytes32)": FunctionFragment; + "protocolFees()": FunctionFragment; + "slot0()": FunctionFragment; + "tickBitmap(int16)": FunctionFragment; + "ticks(int24)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "feeGrowthGlobal0X128", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "feeGrowthGlobal1X128", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "liquidity", values?: undefined): string; + encodeFunctionData( + functionFragment: "observations", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "positions", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "protocolFees", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "slot0", values?: undefined): string; + encodeFunctionData( + functionFragment: "tickBitmap", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "ticks", values: [BigNumberish]): string; + + decodeFunctionResult( + functionFragment: "feeGrowthGlobal0X128", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "feeGrowthGlobal1X128", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "liquidity", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "observations", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "positions", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "protocolFees", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "slot0", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tickBitmap", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "ticks", data: BytesLike): Result; + + events: {}; +} + +export class IUniswapV3PoolState extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV3PoolStateInterface; + + functions: { + feeGrowthGlobal0X128(overrides?: CallOverrides): Promise<[BigNumber]>; + + feeGrowthGlobal1X128(overrides?: CallOverrides): Promise<[BigNumber]>; + + liquidity(overrides?: CallOverrides): Promise<[BigNumber]>; + + observations( + index: BigNumberish, + overrides?: CallOverrides + ): Promise< + [number, BigNumber, BigNumber, boolean] & { + blockTimestamp: number; + tickCumulative: BigNumber; + secondsPerLiquidityCumulativeX128: BigNumber; + initialized: boolean; + } + >; + + positions( + key: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + _liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + protocolFees( + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { token0: BigNumber; token1: BigNumber } + >; + + slot0( + overrides?: CallOverrides + ): Promise< + [BigNumber, number, number, number, number, number, boolean] & { + sqrtPriceX96: BigNumber; + tick: number; + observationIndex: number; + observationCardinality: number; + observationCardinalityNext: number; + feeProtocol: number; + unlocked: boolean; + } + >; + + tickBitmap( + wordPosition: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + ticks( + tick: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + number, + boolean + ] & { + liquidityGross: BigNumber; + liquidityNet: BigNumber; + feeGrowthOutside0X128: BigNumber; + feeGrowthOutside1X128: BigNumber; + tickCumulativeOutside: BigNumber; + secondsPerLiquidityOutsideX128: BigNumber; + secondsOutside: number; + initialized: boolean; + } + >; + }; + + feeGrowthGlobal0X128(overrides?: CallOverrides): Promise; + + feeGrowthGlobal1X128(overrides?: CallOverrides): Promise; + + liquidity(overrides?: CallOverrides): Promise; + + observations( + index: BigNumberish, + overrides?: CallOverrides + ): Promise< + [number, BigNumber, BigNumber, boolean] & { + blockTimestamp: number; + tickCumulative: BigNumber; + secondsPerLiquidityCumulativeX128: BigNumber; + initialized: boolean; + } + >; + + positions( + key: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + _liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + protocolFees( + overrides?: CallOverrides + ): Promise<[BigNumber, BigNumber] & { token0: BigNumber; token1: BigNumber }>; + + slot0( + overrides?: CallOverrides + ): Promise< + [BigNumber, number, number, number, number, number, boolean] & { + sqrtPriceX96: BigNumber; + tick: number; + observationIndex: number; + observationCardinality: number; + observationCardinalityNext: number; + feeProtocol: number; + unlocked: boolean; + } + >; + + tickBitmap( + wordPosition: BigNumberish, + overrides?: CallOverrides + ): Promise; + + ticks( + tick: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + number, + boolean + ] & { + liquidityGross: BigNumber; + liquidityNet: BigNumber; + feeGrowthOutside0X128: BigNumber; + feeGrowthOutside1X128: BigNumber; + tickCumulativeOutside: BigNumber; + secondsPerLiquidityOutsideX128: BigNumber; + secondsOutside: number; + initialized: boolean; + } + >; + + callStatic: { + feeGrowthGlobal0X128(overrides?: CallOverrides): Promise; + + feeGrowthGlobal1X128(overrides?: CallOverrides): Promise; + + liquidity(overrides?: CallOverrides): Promise; + + observations( + index: BigNumberish, + overrides?: CallOverrides + ): Promise< + [number, BigNumber, BigNumber, boolean] & { + blockTimestamp: number; + tickCumulative: BigNumber; + secondsPerLiquidityCumulativeX128: BigNumber; + initialized: boolean; + } + >; + + positions( + key: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + _liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + protocolFees( + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { token0: BigNumber; token1: BigNumber } + >; + + slot0( + overrides?: CallOverrides + ): Promise< + [BigNumber, number, number, number, number, number, boolean] & { + sqrtPriceX96: BigNumber; + tick: number; + observationIndex: number; + observationCardinality: number; + observationCardinalityNext: number; + feeProtocol: number; + unlocked: boolean; + } + >; + + tickBitmap( + wordPosition: BigNumberish, + overrides?: CallOverrides + ): Promise; + + ticks( + tick: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + number, + boolean + ] & { + liquidityGross: BigNumber; + liquidityNet: BigNumber; + feeGrowthOutside0X128: BigNumber; + feeGrowthOutside1X128: BigNumber; + tickCumulativeOutside: BigNumber; + secondsPerLiquidityOutsideX128: BigNumber; + secondsOutside: number; + initialized: boolean; + } + >; + }; + + filters: {}; + + estimateGas: { + feeGrowthGlobal0X128(overrides?: CallOverrides): Promise; + + feeGrowthGlobal1X128(overrides?: CallOverrides): Promise; + + liquidity(overrides?: CallOverrides): Promise; + + observations( + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + positions(key: BytesLike, overrides?: CallOverrides): Promise; + + protocolFees(overrides?: CallOverrides): Promise; + + slot0(overrides?: CallOverrides): Promise; + + tickBitmap( + wordPosition: BigNumberish, + overrides?: CallOverrides + ): Promise; + + ticks(tick: BigNumberish, overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + feeGrowthGlobal0X128( + overrides?: CallOverrides + ): Promise; + + feeGrowthGlobal1X128( + overrides?: CallOverrides + ): Promise; + + liquidity(overrides?: CallOverrides): Promise; + + observations( + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + positions( + key: BytesLike, + overrides?: CallOverrides + ): Promise; + + protocolFees(overrides?: CallOverrides): Promise; + + slot0(overrides?: CallOverrides): Promise; + + tickBitmap( + wordPosition: BigNumberish, + overrides?: CallOverrides + ): Promise; + + ticks( + tick: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IUniswapV3SwapCallback.d.ts b/src/contrib/smart-order-router/types/v3/IUniswapV3SwapCallback.d.ts new file mode 100644 index 0000000..559a7f5 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IUniswapV3SwapCallback.d.ts @@ -0,0 +1,127 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IUniswapV3SwapCallbackInterface extends ethers.utils.Interface { + functions: { + "uniswapV3SwapCallback(int256,int256,bytes)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; + + events: {}; +} + +export class IUniswapV3SwapCallback extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IUniswapV3SwapCallbackInterface; + + functions: { + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IV3Migrator.d.ts b/src/contrib/smart-order-router/types/v3/IV3Migrator.d.ts new file mode 100644 index 0000000..49337bf --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IV3Migrator.d.ts @@ -0,0 +1,539 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IV3MigratorInterface extends ethers.utils.Interface { + functions: { + "createAndInitializePoolIfNecessary(address,address,uint24,uint160)": FunctionFragment; + "migrate((address,uint256,uint8,address,address,uint24,int24,int24,uint256,uint256,address,uint256,bool))": FunctionFragment; + "multicall(bytes[])": FunctionFragment; + "selfPermit(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitAllowed(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitAllowedIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "createAndInitializePoolIfNecessary", + values: [string, string, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "migrate", + values: [ + { + pair: string; + liquidityToMigrate: BigNumberish; + percentageToMigrate: BigNumberish; + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + refundAsETH: boolean; + } + ] + ): string; + encodeFunctionData( + functionFragment: "multicall", + values: [BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "selfPermit", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitAllowed", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitAllowedIfNecessary", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitIfNecessary", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + + decodeFunctionResult( + functionFragment: "createAndInitializePoolIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "migrate", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "selfPermit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "selfPermitAllowed", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "selfPermitAllowedIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "selfPermitIfNecessary", + data: BytesLike + ): Result; + + events: {}; +} + +export class IV3Migrator extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IV3MigratorInterface; + + functions: { + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + migrate( + params: { + pair: string; + liquidityToMigrate: BigNumberish; + percentageToMigrate: BigNumberish; + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + refundAsETH: boolean; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + migrate( + params: { + pair: string; + liquidityToMigrate: BigNumberish; + percentageToMigrate: BigNumberish; + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + refundAsETH: boolean; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + + migrate( + params: { + pair: string; + liquidityToMigrate: BigNumberish; + percentageToMigrate: BigNumberish; + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + refundAsETH: boolean; + }, + overrides?: CallOverrides + ): Promise; + + multicall(data: BytesLike[], overrides?: CallOverrides): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + migrate( + params: { + pair: string; + liquidityToMigrate: BigNumberish; + percentageToMigrate: BigNumberish; + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + refundAsETH: boolean; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + migrate( + params: { + pair: string; + liquidityToMigrate: BigNumberish; + percentageToMigrate: BigNumberish; + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + refundAsETH: boolean; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/IWETH9.d.ts b/src/contrib/smart-order-router/types/v3/IWETH9.d.ts new file mode 100644 index 0000000..106fa93 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/IWETH9.d.ts @@ -0,0 +1,374 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface IWETH9Interface extends ethers.utils.Interface { + functions: { + "allowance(address,address)": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "deposit()": FunctionFragment; + "totalSupply()": FunctionFragment; + "transfer(address,uint256)": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + "withdraw(uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "allowance", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData(functionFragment: "deposit", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export type ApprovalEvent = TypedEvent< + [string, string, BigNumber] & { + owner: string; + spender: string; + value: BigNumber; + } +>; + +export type TransferEvent = TypedEvent< + [string, string, BigNumber] & { from: string; to: string; value: BigNumber } +>; + +export class IWETH9 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IWETH9Interface; + + functions: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + withdraw( + arg0: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise; + + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + withdraw( + arg0: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise; + + deposit(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + withdraw(arg0: BigNumberish, overrides?: CallOverrides): Promise; + }; + + filters: { + "Approval(address,address,uint256)"( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + Approval( + owner?: string | null, + spender?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; spender: string; value: BigNumber } + >; + + "Transfer(address,address,uint256)"( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + + Transfer( + from?: string | null, + to?: string | null, + value?: null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; value: BigNumber } + >; + }; + + estimateGas: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(account: string, overrides?: CallOverrides): Promise; + + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + withdraw( + arg0: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + allowance( + owner: string, + spender: string, + overrides?: CallOverrides + ): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + account: string, + overrides?: CallOverrides + ): Promise; + + deposit( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + withdraw( + arg0: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/NFTDescriptor.d.ts b/src/contrib/smart-order-router/types/v3/NFTDescriptor.d.ts new file mode 100644 index 0000000..92e8e46 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/NFTDescriptor.d.ts @@ -0,0 +1,208 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface NFTDescriptorInterface extends ethers.utils.Interface { + functions: { + "constructTokenURI((uint256,address,address,string,string,uint8,uint8,bool,int24,int24,int24,int24,uint24,address))": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "constructTokenURI", + values: [ + { + tokenId: BigNumberish; + quoteTokenAddress: string; + baseTokenAddress: string; + quoteTokenSymbol: string; + baseTokenSymbol: string; + quoteTokenDecimals: BigNumberish; + baseTokenDecimals: BigNumberish; + flipRatio: boolean; + tickLower: BigNumberish; + tickUpper: BigNumberish; + tickCurrent: BigNumberish; + tickSpacing: BigNumberish; + fee: BigNumberish; + poolAddress: string; + } + ] + ): string; + + decodeFunctionResult( + functionFragment: "constructTokenURI", + data: BytesLike + ): Result; + + events: {}; +} + +export class NFTDescriptor extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: NFTDescriptorInterface; + + functions: { + constructTokenURI( + params: { + tokenId: BigNumberish; + quoteTokenAddress: string; + baseTokenAddress: string; + quoteTokenSymbol: string; + baseTokenSymbol: string; + quoteTokenDecimals: BigNumberish; + baseTokenDecimals: BigNumberish; + flipRatio: boolean; + tickLower: BigNumberish; + tickUpper: BigNumberish; + tickCurrent: BigNumberish; + tickSpacing: BigNumberish; + fee: BigNumberish; + poolAddress: string; + }, + overrides?: CallOverrides + ): Promise<[string]>; + }; + + constructTokenURI( + params: { + tokenId: BigNumberish; + quoteTokenAddress: string; + baseTokenAddress: string; + quoteTokenSymbol: string; + baseTokenSymbol: string; + quoteTokenDecimals: BigNumberish; + baseTokenDecimals: BigNumberish; + flipRatio: boolean; + tickLower: BigNumberish; + tickUpper: BigNumberish; + tickCurrent: BigNumberish; + tickSpacing: BigNumberish; + fee: BigNumberish; + poolAddress: string; + }, + overrides?: CallOverrides + ): Promise; + + callStatic: { + constructTokenURI( + params: { + tokenId: BigNumberish; + quoteTokenAddress: string; + baseTokenAddress: string; + quoteTokenSymbol: string; + baseTokenSymbol: string; + quoteTokenDecimals: BigNumberish; + baseTokenDecimals: BigNumberish; + flipRatio: boolean; + tickLower: BigNumberish; + tickUpper: BigNumberish; + tickCurrent: BigNumberish; + tickSpacing: BigNumberish; + fee: BigNumberish; + poolAddress: string; + }, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + constructTokenURI( + params: { + tokenId: BigNumberish; + quoteTokenAddress: string; + baseTokenAddress: string; + quoteTokenSymbol: string; + baseTokenSymbol: string; + quoteTokenDecimals: BigNumberish; + baseTokenDecimals: BigNumberish; + flipRatio: boolean; + tickLower: BigNumberish; + tickUpper: BigNumberish; + tickCurrent: BigNumberish; + tickSpacing: BigNumberish; + fee: BigNumberish; + poolAddress: string; + }, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + constructTokenURI( + params: { + tokenId: BigNumberish; + quoteTokenAddress: string; + baseTokenAddress: string; + quoteTokenSymbol: string; + baseTokenSymbol: string; + quoteTokenDecimals: BigNumberish; + baseTokenDecimals: BigNumberish; + flipRatio: boolean; + tickLower: BigNumberish; + tickUpper: BigNumberish; + tickCurrent: BigNumberish; + tickSpacing: BigNumberish; + fee: BigNumberish; + poolAddress: string; + }, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/NonfungiblePositionManager.d.ts b/src/contrib/smart-order-router/types/v3/NonfungiblePositionManager.d.ts new file mode 100644 index 0000000..e0f8499 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/NonfungiblePositionManager.d.ts @@ -0,0 +1,1881 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface NonfungiblePositionManagerInterface extends ethers.utils.Interface { + functions: { + "DOMAIN_SEPARATOR()": FunctionFragment; + "PERMIT_TYPEHASH()": FunctionFragment; + "WETH9()": FunctionFragment; + "approve(address,uint256)": FunctionFragment; + "balanceOf(address)": FunctionFragment; + "baseURI()": FunctionFragment; + "burn(uint256)": FunctionFragment; + "collect((uint256,address,uint128,uint128))": FunctionFragment; + "createAndInitializePoolIfNecessary(address,address,uint24,uint160)": FunctionFragment; + "decreaseLiquidity((uint256,uint128,uint256,uint256,uint256))": FunctionFragment; + "factory()": FunctionFragment; + "getApproved(uint256)": FunctionFragment; + "increaseLiquidity((uint256,uint256,uint256,uint256,uint256,uint256))": FunctionFragment; + "isApprovedForAll(address,address)": FunctionFragment; + "mint((address,address,uint24,int24,int24,uint256,uint256,uint256,uint256,address,uint256))": FunctionFragment; + "multicall(bytes[])": FunctionFragment; + "name()": FunctionFragment; + "ownerOf(uint256)": FunctionFragment; + "permit(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "positions(uint256)": FunctionFragment; + "refundETH()": FunctionFragment; + "safeTransferFrom(address,address,uint256)": FunctionFragment; + "selfPermit(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitAllowed(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitAllowedIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "setApprovalForAll(address,bool)": FunctionFragment; + "supportsInterface(bytes4)": FunctionFragment; + "sweepToken(address,uint256,address)": FunctionFragment; + "symbol()": FunctionFragment; + "tokenByIndex(uint256)": FunctionFragment; + "tokenOfOwnerByIndex(address,uint256)": FunctionFragment; + "tokenURI(uint256)": FunctionFragment; + "totalSupply()": FunctionFragment; + "transferFrom(address,address,uint256)": FunctionFragment; + "uniswapV3MintCallback(uint256,uint256,bytes)": FunctionFragment; + "unwrapWETH9(uint256,address)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "DOMAIN_SEPARATOR", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PERMIT_TYPEHASH", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData( + functionFragment: "approve", + values: [string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; + encodeFunctionData(functionFragment: "baseURI", values?: undefined): string; + encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "collect", + values: [ + { + tokenId: BigNumberish; + recipient: string; + amount0Max: BigNumberish; + amount1Max: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "createAndInitializePoolIfNecessary", + values: [string, string, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "decreaseLiquidity", + values: [ + { + tokenId: BigNumberish; + liquidity: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + } + ] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "getApproved", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "increaseLiquidity", + values: [ + { + tokenId: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "isApprovedForAll", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [ + { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "multicall", + values: [BytesLike[]] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData( + functionFragment: "ownerOf", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "permit", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "positions", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "refundETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "safeTransferFrom", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "selfPermit", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitAllowed", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitAllowedIfNecessary", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitIfNecessary", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "setApprovalForAll", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "sweepToken", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "tokenByIndex", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "tokenOfOwnerByIndex", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "tokenURI", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3MintCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9", + values: [BigNumberish, string] + ): string; + + decodeFunctionResult( + functionFragment: "DOMAIN_SEPARATOR", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PERMIT_TYPEHASH", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "baseURI", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "collect", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "createAndInitializePoolIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "decreaseLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getApproved", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "increaseLiquidity", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "isApprovedForAll", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "positions", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "refundETH", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "selfPermit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "selfPermitAllowed", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "selfPermitAllowedIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "selfPermitIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setApprovalForAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "sweepToken", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "tokenByIndex", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "tokenOfOwnerByIndex", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tokenURI", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3MintCallback", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9", + data: BytesLike + ): Result; + + events: { + "Approval(address,address,uint256)": EventFragment; + "ApprovalForAll(address,address,bool)": EventFragment; + "Collect(uint256,address,uint256,uint256)": EventFragment; + "DecreaseLiquidity(uint256,uint128,uint256,uint256)": EventFragment; + "IncreaseLiquidity(uint256,uint128,uint256,uint256)": EventFragment; + "Transfer(address,address,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; + getEvent(nameOrSignatureOrTopic: "ApprovalForAll"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Collect"): EventFragment; + getEvent(nameOrSignatureOrTopic: "DecreaseLiquidity"): EventFragment; + getEvent(nameOrSignatureOrTopic: "IncreaseLiquidity"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; +} + +export type ApprovalEvent = TypedEvent< + [string, string, BigNumber] & { + owner: string; + approved: string; + tokenId: BigNumber; + } +>; + +export type ApprovalForAllEvent = TypedEvent< + [string, string, boolean] & { + owner: string; + operator: string; + approved: boolean; + } +>; + +export type CollectEvent = TypedEvent< + [BigNumber, string, BigNumber, BigNumber] & { + tokenId: BigNumber; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type DecreaseLiquidityEvent = TypedEvent< + [BigNumber, BigNumber, BigNumber, BigNumber] & { + tokenId: BigNumber; + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type IncreaseLiquidityEvent = TypedEvent< + [BigNumber, BigNumber, BigNumber, BigNumber] & { + tokenId: BigNumber; + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type TransferEvent = TypedEvent< + [string, string, BigNumber] & { from: string; to: string; tokenId: BigNumber } +>; + +export class NonfungiblePositionManager extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: NonfungiblePositionManagerInterface; + + functions: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<[string]>; + + WETH9(overrides?: CallOverrides): Promise<[string]>; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise<[BigNumber]>; + + baseURI(overrides?: CallOverrides): Promise<[string]>; + + burn( + tokenId: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + collect( + params: { + tokenId: BigNumberish; + recipient: string; + amount0Max: BigNumberish; + amount1Max: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + decreaseLiquidity( + params: { + tokenId: BigNumberish; + liquidity: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise<[string]>; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + increaseLiquidity( + params: { + tokenId: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise<[boolean]>; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise<[string]>; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + positions( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + string, + string, + string, + number, + number, + number, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber + ] & { + nonce: BigNumber; + operator: string; + token0: string; + token1: string; + fee: number; + tickLower: number; + tickUpper: number; + liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + tokenURI( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3MintCallback( + amount0Owed: BigNumberish, + amount1Owed: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + WETH9(overrides?: CallOverrides): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + baseURI(overrides?: CallOverrides): Promise; + + burn( + tokenId: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + collect( + params: { + tokenId: BigNumberish; + recipient: string; + amount0Max: BigNumberish; + amount1Max: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + decreaseLiquidity( + params: { + tokenId: BigNumberish; + liquidity: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + increaseLiquidity( + params: { + tokenId: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + positions( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + string, + string, + string, + number, + number, + number, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber + ] & { + nonce: BigNumber; + operator: string; + token0: string; + token1: string; + fee: number; + tickLower: number; + tickUpper: number; + liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenURI(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3MintCallback( + amount0Owed: BigNumberish, + amount1Owed: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + WETH9(overrides?: CallOverrides): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + baseURI(overrides?: CallOverrides): Promise; + + burn(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + collect( + params: { + tokenId: BigNumberish; + recipient: string; + amount0Max: BigNumberish; + amount1Max: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + + decreaseLiquidity( + params: { + tokenId: BigNumberish; + liquidity: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + factory(overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + increaseLiquidity( + params: { + tokenId: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber] & { + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber] & { + tokenId: BigNumber; + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + multicall(data: BytesLike[], overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + positions( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + string, + string, + string, + number, + number, + number, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber + ] & { + nonce: BigNumber; + operator: string; + token0: string; + token1: string; + fee: number; + tickLower: number; + tickUpper: number; + liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + refundETH(overrides?: CallOverrides): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + _data: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: CallOverrides + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenURI(tokenId: BigNumberish, overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + uniswapV3MintCallback( + amount0Owed: BigNumberish, + amount1Owed: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + "Approval(address,address,uint256)"( + owner?: string | null, + approved?: string | null, + tokenId?: BigNumberish | null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; approved: string; tokenId: BigNumber } + >; + + Approval( + owner?: string | null, + approved?: string | null, + tokenId?: BigNumberish | null + ): TypedEventFilter< + [string, string, BigNumber], + { owner: string; approved: string; tokenId: BigNumber } + >; + + "ApprovalForAll(address,address,bool)"( + owner?: string | null, + operator?: string | null, + approved?: null + ): TypedEventFilter< + [string, string, boolean], + { owner: string; operator: string; approved: boolean } + >; + + ApprovalForAll( + owner?: string | null, + operator?: string | null, + approved?: null + ): TypedEventFilter< + [string, string, boolean], + { owner: string; operator: string; approved: boolean } + >; + + "Collect(uint256,address,uint256,uint256)"( + tokenId?: BigNumberish | null, + recipient?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [BigNumber, string, BigNumber, BigNumber], + { + tokenId: BigNumber; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + Collect( + tokenId?: BigNumberish | null, + recipient?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [BigNumber, string, BigNumber, BigNumber], + { + tokenId: BigNumber; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "DecreaseLiquidity(uint256,uint128,uint256,uint256)"( + tokenId?: BigNumberish | null, + liquidity?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [BigNumber, BigNumber, BigNumber, BigNumber], + { + tokenId: BigNumber; + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + DecreaseLiquidity( + tokenId?: BigNumberish | null, + liquidity?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [BigNumber, BigNumber, BigNumber, BigNumber], + { + tokenId: BigNumber; + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "IncreaseLiquidity(uint256,uint128,uint256,uint256)"( + tokenId?: BigNumberish | null, + liquidity?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [BigNumber, BigNumber, BigNumber, BigNumber], + { + tokenId: BigNumber; + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + IncreaseLiquidity( + tokenId?: BigNumberish | null, + liquidity?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [BigNumber, BigNumber, BigNumber, BigNumber], + { + tokenId: BigNumber; + liquidity: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "Transfer(address,address,uint256)"( + from?: string | null, + to?: string | null, + tokenId?: BigNumberish | null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; tokenId: BigNumber } + >; + + Transfer( + from?: string | null, + to?: string | null, + tokenId?: BigNumberish | null + ): TypedEventFilter< + [string, string, BigNumber], + { from: string; to: string; tokenId: BigNumber } + >; + }; + + estimateGas: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + WETH9(overrides?: CallOverrides): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf(owner: string, overrides?: CallOverrides): Promise; + + baseURI(overrides?: CallOverrides): Promise; + + burn( + tokenId: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + collect( + params: { + tokenId: BigNumberish; + recipient: string; + amount0Max: BigNumberish; + amount1Max: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + decreaseLiquidity( + params: { + tokenId: BigNumberish; + liquidity: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + increaseLiquidity( + params: { + tokenId: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + positions( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenURI( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3MintCallback( + amount0Owed: BigNumberish, + amount1Owed: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + WETH9(overrides?: CallOverrides): Promise; + + approve( + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + balanceOf( + owner: string, + overrides?: CallOverrides + ): Promise; + + baseURI(overrides?: CallOverrides): Promise; + + burn( + tokenId: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + collect( + params: { + tokenId: BigNumberish; + recipient: string; + amount0Max: BigNumberish; + amount1Max: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + decreaseLiquidity( + params: { + tokenId: BigNumberish; + liquidity: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + getApproved( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + increaseLiquidity( + params: { + tokenId: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + isApprovedForAll( + owner: string, + operator: string, + overrides?: CallOverrides + ): Promise; + + mint( + params: { + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Desired: BigNumberish; + amount1Desired: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + ownerOf( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + permit( + spender: string, + tokenId: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + positions( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256)"( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,bytes)"( + from: string, + to: string, + tokenId: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + operator: string, + approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex( + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenOfOwnerByIndex( + owner: string, + index: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenURI( + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: string, + to: string, + tokenId: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3MintCallback( + amount0Owed: BigNumberish, + amount1Owed: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/NonfungibleTokenPositionDescriptor.d.ts b/src/contrib/smart-order-router/types/v3/NonfungibleTokenPositionDescriptor.d.ts new file mode 100644 index 0000000..87a9896 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/NonfungibleTokenPositionDescriptor.d.ts @@ -0,0 +1,254 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface NonfungibleTokenPositionDescriptorInterface + extends ethers.utils.Interface { + functions: { + "WETH9()": FunctionFragment; + "flipRatio(address,address,uint256)": FunctionFragment; + "nativeCurrencyLabel()": FunctionFragment; + "nativeCurrencyLabelBytes()": FunctionFragment; + "tokenRatioPriority(address,uint256)": FunctionFragment; + "tokenURI(address,uint256)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData( + functionFragment: "flipRatio", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "nativeCurrencyLabel", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "nativeCurrencyLabelBytes", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "tokenRatioPriority", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "tokenURI", + values: [string, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "flipRatio", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "nativeCurrencyLabel", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "nativeCurrencyLabelBytes", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "tokenRatioPriority", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tokenURI", data: BytesLike): Result; + + events: {}; +} + +export class NonfungibleTokenPositionDescriptor extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: NonfungibleTokenPositionDescriptorInterface; + + functions: { + WETH9(overrides?: CallOverrides): Promise<[string]>; + + flipRatio( + token0: string, + token1: string, + chainId: BigNumberish, + overrides?: CallOverrides + ): Promise<[boolean]>; + + nativeCurrencyLabel(overrides?: CallOverrides): Promise<[string]>; + + nativeCurrencyLabelBytes(overrides?: CallOverrides): Promise<[string]>; + + tokenRatioPriority( + token: string, + chainId: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + tokenURI( + positionManager: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + }; + + WETH9(overrides?: CallOverrides): Promise; + + flipRatio( + token0: string, + token1: string, + chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + nativeCurrencyLabel(overrides?: CallOverrides): Promise; + + nativeCurrencyLabelBytes(overrides?: CallOverrides): Promise; + + tokenRatioPriority( + token: string, + chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenURI( + positionManager: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + callStatic: { + WETH9(overrides?: CallOverrides): Promise; + + flipRatio( + token0: string, + token1: string, + chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + nativeCurrencyLabel(overrides?: CallOverrides): Promise; + + nativeCurrencyLabelBytes(overrides?: CallOverrides): Promise; + + tokenRatioPriority( + token: string, + chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenURI( + positionManager: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + WETH9(overrides?: CallOverrides): Promise; + + flipRatio( + token0: string, + token1: string, + chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + nativeCurrencyLabel(overrides?: CallOverrides): Promise; + + nativeCurrencyLabelBytes(overrides?: CallOverrides): Promise; + + tokenRatioPriority( + token: string, + chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenURI( + positionManager: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + WETH9(overrides?: CallOverrides): Promise; + + flipRatio( + token0: string, + token1: string, + chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + nativeCurrencyLabel( + overrides?: CallOverrides + ): Promise; + + nativeCurrencyLabelBytes( + overrides?: CallOverrides + ): Promise; + + tokenRatioPriority( + token: string, + chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tokenURI( + positionManager: string, + tokenId: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/PairFlash.d.ts b/src/contrib/smart-order-router/types/v3/PairFlash.d.ts new file mode 100644 index 0000000..94ce7a6 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/PairFlash.d.ts @@ -0,0 +1,352 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface PairFlashInterface extends ethers.utils.Interface { + functions: { + "WETH9()": FunctionFragment; + "factory()": FunctionFragment; + "initFlash((address,address,uint24,uint256,uint256,uint24,uint24))": FunctionFragment; + "refundETH()": FunctionFragment; + "swapRouter()": FunctionFragment; + "sweepToken(address,uint256,address)": FunctionFragment; + "uniswapV3FlashCallback(uint256,uint256,bytes)": FunctionFragment; + "unwrapWETH9(uint256,address)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "initFlash", + values: [ + { + token0: string; + token1: string; + fee1: BigNumberish; + amount0: BigNumberish; + amount1: BigNumberish; + fee2: BigNumberish; + fee3: BigNumberish; + } + ] + ): string; + encodeFunctionData(functionFragment: "refundETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "swapRouter", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "sweepToken", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3FlashCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9", + values: [BigNumberish, string] + ): string; + + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initFlash", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "refundETH", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "swapRouter", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "sweepToken", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "uniswapV3FlashCallback", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9", + data: BytesLike + ): Result; + + events: {}; +} + +export class PairFlash extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: PairFlashInterface; + + functions: { + WETH9(overrides?: CallOverrides): Promise<[string]>; + + factory(overrides?: CallOverrides): Promise<[string]>; + + initFlash( + params: { + token0: string; + token1: string; + fee1: BigNumberish; + amount0: BigNumberish; + amount1: BigNumberish; + fee2: BigNumberish; + fee3: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapRouter(overrides?: CallOverrides): Promise<[string]>; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3FlashCallback( + fee0: BigNumberish, + fee1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + initFlash( + params: { + token0: string; + token1: string; + fee1: BigNumberish; + amount0: BigNumberish; + amount1: BigNumberish; + fee2: BigNumberish; + fee3: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapRouter(overrides?: CallOverrides): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3FlashCallback( + fee0: BigNumberish, + fee1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + initFlash( + params: { + token0: string; + token1: string; + fee1: BigNumberish; + amount0: BigNumberish; + amount1: BigNumberish; + fee2: BigNumberish; + fee3: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + refundETH(overrides?: CallOverrides): Promise; + + swapRouter(overrides?: CallOverrides): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + uniswapV3FlashCallback( + fee0: BigNumberish, + fee1: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + initFlash( + params: { + token0: string; + token1: string; + fee1: BigNumberish; + amount0: BigNumberish; + amount1: BigNumberish; + fee2: BigNumberish; + fee3: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapRouter(overrides?: CallOverrides): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3FlashCallback( + fee0: BigNumberish, + fee1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + initFlash( + params: { + token0: string; + token1: string; + fee1: BigNumberish; + amount0: BigNumberish; + amount1: BigNumberish; + fee2: BigNumberish; + fee3: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + swapRouter(overrides?: CallOverrides): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3FlashCallback( + fee0: BigNumberish, + fee1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/Quoter.d.ts b/src/contrib/smart-order-router/types/v3/Quoter.d.ts new file mode 100644 index 0000000..9ffe872 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/Quoter.d.ts @@ -0,0 +1,339 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface QuoterInterface extends ethers.utils.Interface { + functions: { + "WETH9()": FunctionFragment; + "factory()": FunctionFragment; + "quoteExactInput(bytes,uint256)": FunctionFragment; + "quoteExactInputSingle(address,address,uint24,uint256,uint160)": FunctionFragment; + "quoteExactOutput(bytes,uint256)": FunctionFragment; + "quoteExactOutputSingle(address,address,uint24,uint256,uint160)": FunctionFragment; + "uniswapV3SwapCallback(int256,int256,bytes)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "quoteExactInput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactInputSingle", + values: [string, string, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutputSingle", + values: [string, string, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "quoteExactInput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; + + events: {}; +} + +export class Quoter extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: QuoterInterface; + + functions: { + WETH9(overrides?: CallOverrides): Promise<[string]>; + + factory(overrides?: CallOverrides): Promise<[string]>; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + }; + + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: CallOverrides + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: CallOverrides + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountIn: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + tokenIn: string, + tokenOut: string, + fee: BigNumberish, + amountOut: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/QuoterV2.d.ts b/src/contrib/smart-order-router/types/v3/QuoterV2.d.ts new file mode 100644 index 0000000..1d11c51 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/QuoterV2.d.ts @@ -0,0 +1,403 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface QuoterV2Interface extends ethers.utils.Interface { + functions: { + "WETH9()": FunctionFragment; + "factory()": FunctionFragment; + "quoteExactInput(bytes,uint256)": FunctionFragment; + "quoteExactInputSingle((address,address,uint256,uint24,uint160))": FunctionFragment; + "quoteExactOutput(bytes,uint256)": FunctionFragment; + "quoteExactOutputSingle((address,address,uint256,uint24,uint160))": FunctionFragment; + "uniswapV3SwapCallback(int256,int256,bytes)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "quoteExactInput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactInputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutput", + values: [BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "quoteExactOutputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "quoteExactInput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "quoteExactOutputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; + + events: {}; +} + +export class QuoterV2 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: QuoterV2Interface; + + functions: { + WETH9(overrides?: CallOverrides): Promise<[string]>; + + factory(overrides?: CallOverrides): Promise<[string]>; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise<[void]>; + }; + + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber[], number[], BigNumber] & { + amountOut: BigNumber; + sqrtPriceX96AfterList: BigNumber[]; + initializedTicksCrossedList: number[]; + gasEstimate: BigNumber; + } + >; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number, BigNumber] & { + amountOut: BigNumber; + sqrtPriceX96After: BigNumber; + initializedTicksCrossed: number; + gasEstimate: BigNumber; + } + >; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber[], number[], BigNumber] & { + amountIn: BigNumber; + sqrtPriceX96AfterList: BigNumber[]; + initializedTicksCrossedList: number[]; + gasEstimate: BigNumber; + } + >; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number, BigNumber] & { + amountIn: BigNumber; + sqrtPriceX96After: BigNumber; + initializedTicksCrossed: number; + gasEstimate: BigNumber; + } + >; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + WETH9(overrides?: CallOverrides): Promise; + + factory(overrides?: CallOverrides): Promise; + + quoteExactInput( + path: BytesLike, + amountIn: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + amountIn: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutput( + path: BytesLike, + amountOut: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + quoteExactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + amount: BigNumberish; + fee: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + path: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/SwapRouter.d.ts b/src/contrib/smart-order-router/types/v3/SwapRouter.d.ts new file mode 100644 index 0000000..e6bb096 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/SwapRouter.d.ts @@ -0,0 +1,968 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface SwapRouterInterface extends ethers.utils.Interface { + functions: { + "WETH9()": FunctionFragment; + "exactInput((bytes,address,uint256,uint256,uint256))": FunctionFragment; + "exactInputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))": FunctionFragment; + "exactOutput((bytes,address,uint256,uint256,uint256))": FunctionFragment; + "exactOutputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))": FunctionFragment; + "factory()": FunctionFragment; + "multicall(bytes[])": FunctionFragment; + "refundETH()": FunctionFragment; + "selfPermit(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitAllowed(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitAllowedIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "sweepToken(address,uint256,address)": FunctionFragment; + "sweepTokenWithFee(address,uint256,address,uint256,address)": FunctionFragment; + "uniswapV3SwapCallback(int256,int256,bytes)": FunctionFragment; + "unwrapWETH9(uint256,address)": FunctionFragment; + "unwrapWETH9WithFee(uint256,address,uint256,address)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData( + functionFragment: "exactInput", + values: [ + { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactInputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactOutput", + values: [ + { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + } + ] + ): string; + encodeFunctionData( + functionFragment: "exactOutputSingle", + values: [ + { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + } + ] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "multicall", + values: [BytesLike[]] + ): string; + encodeFunctionData(functionFragment: "refundETH", values?: undefined): string; + encodeFunctionData( + functionFragment: "selfPermit", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitAllowed", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitAllowedIfNecessary", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitIfNecessary", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "sweepToken", + values: [string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "sweepTokenWithFee", + values: [string, BigNumberish, string, BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "uniswapV3SwapCallback", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "unwrapWETH9WithFee", + values: [BigNumberish, string, BigNumberish, string] + ): string; + + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "exactInput", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "exactInputSingle", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutput", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "exactOutputSingle", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "refundETH", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "selfPermit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "selfPermitAllowed", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "selfPermitAllowedIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "selfPermitIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "sweepToken", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "sweepTokenWithFee", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "uniswapV3SwapCallback", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "unwrapWETH9WithFee", + data: BytesLike + ): Result; + + events: {}; +} + +export class SwapRouter extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: SwapRouterInterface; + + functions: { + WETH9(overrides?: CallOverrides): Promise<[string]>; + + exactInput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise<[string]>; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepTokenWithFee( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9WithFee( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + WETH9(overrides?: CallOverrides): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepTokenWithFee( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9WithFee( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + WETH9(overrides?: CallOverrides): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: CallOverrides + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + multicall(data: BytesLike[], overrides?: CallOverrides): Promise; + + refundETH(overrides?: CallOverrides): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + sweepTokenWithFee( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: CallOverrides + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: CallOverrides + ): Promise; + + unwrapWETH9WithFee( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + WETH9(overrides?: CallOverrides): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepTokenWithFee( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9WithFee( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + WETH9(overrides?: CallOverrides): Promise; + + exactInput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactInputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountIn: BigNumberish; + amountOutMinimum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutput( + params: { + path: BytesLike; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + exactOutputSingle( + params: { + tokenIn: string; + tokenOut: string; + fee: BigNumberish; + recipient: string; + deadline: BigNumberish; + amountOut: BigNumberish; + amountInMaximum: BigNumberish; + sqrtPriceLimitX96: BigNumberish; + }, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + refundETH( + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepToken( + token: string, + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + sweepTokenWithFee( + token: string, + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + uniswapV3SwapCallback( + amount0Delta: BigNumberish, + amount1Delta: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9( + amountMinimum: BigNumberish, + recipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + unwrapWETH9WithFee( + amountMinimum: BigNumberish, + recipient: string, + feeBips: BigNumberish, + feeRecipient: string, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/TickLens.d.ts b/src/contrib/smart-order-router/types/v3/TickLens.d.ts new file mode 100644 index 0000000..d21fc2a --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/TickLens.d.ts @@ -0,0 +1,147 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface TickLensInterface extends ethers.utils.Interface { + functions: { + "getPopulatedTicksInWord(address,int16)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "getPopulatedTicksInWord", + values: [string, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "getPopulatedTicksInWord", + data: BytesLike + ): Result; + + events: {}; +} + +export class TickLens extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: TickLensInterface; + + functions: { + getPopulatedTicksInWord( + pool: string, + tickBitmapIndex: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + ([number, BigNumber, BigNumber] & { + tick: number; + liquidityNet: BigNumber; + liquidityGross: BigNumber; + })[] + ] & { + populatedTicks: ([number, BigNumber, BigNumber] & { + tick: number; + liquidityNet: BigNumber; + liquidityGross: BigNumber; + })[]; + } + >; + }; + + getPopulatedTicksInWord( + pool: string, + tickBitmapIndex: BigNumberish, + overrides?: CallOverrides + ): Promise< + ([number, BigNumber, BigNumber] & { + tick: number; + liquidityNet: BigNumber; + liquidityGross: BigNumber; + })[] + >; + + callStatic: { + getPopulatedTicksInWord( + pool: string, + tickBitmapIndex: BigNumberish, + overrides?: CallOverrides + ): Promise< + ([number, BigNumber, BigNumber] & { + tick: number; + liquidityNet: BigNumber; + liquidityGross: BigNumber; + })[] + >; + }; + + filters: {}; + + estimateGas: { + getPopulatedTicksInWord( + pool: string, + tickBitmapIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + getPopulatedTicksInWord( + pool: string, + tickBitmapIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/UniswapInterfaceMulticall.d.ts b/src/contrib/smart-order-router/types/v3/UniswapInterfaceMulticall.d.ts new file mode 100644 index 0000000..8104c17 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/UniswapInterfaceMulticall.d.ts @@ -0,0 +1,178 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface UniswapInterfaceMulticallInterface extends ethers.utils.Interface { + functions: { + "getCurrentBlockTimestamp()": FunctionFragment; + "getEthBalance(address)": FunctionFragment; + "multicall(tuple[])": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "getCurrentBlockTimestamp", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getEthBalance", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "multicall", + values: [{ target: string; gasLimit: BigNumberish; callData: BytesLike }[]] + ): string; + + decodeFunctionResult( + functionFragment: "getCurrentBlockTimestamp", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getEthBalance", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result; + + events: {}; +} + +export class UniswapInterfaceMulticall extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: UniswapInterfaceMulticallInterface; + + functions: { + getCurrentBlockTimestamp( + overrides?: CallOverrides + ): Promise<[BigNumber] & { timestamp: BigNumber }>; + + getEthBalance( + addr: string, + overrides?: CallOverrides + ): Promise<[BigNumber] & { balance: BigNumber }>; + + multicall( + calls: { target: string; gasLimit: BigNumberish; callData: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + getCurrentBlockTimestamp(overrides?: CallOverrides): Promise; + + getEthBalance(addr: string, overrides?: CallOverrides): Promise; + + multicall( + calls: { target: string; gasLimit: BigNumberish; callData: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + getCurrentBlockTimestamp(overrides?: CallOverrides): Promise; + + getEthBalance(addr: string, overrides?: CallOverrides): Promise; + + multicall( + calls: { target: string; gasLimit: BigNumberish; callData: BytesLike }[], + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + ([boolean, BigNumber, string] & { + success: boolean; + gasUsed: BigNumber; + returnData: string; + })[] + ] & { + blockNumber: BigNumber; + returnData: ([boolean, BigNumber, string] & { + success: boolean; + gasUsed: BigNumber; + returnData: string; + })[]; + } + >; + }; + + filters: {}; + + estimateGas: { + getCurrentBlockTimestamp(overrides?: CallOverrides): Promise; + + getEthBalance(addr: string, overrides?: CallOverrides): Promise; + + multicall( + calls: { target: string; gasLimit: BigNumberish; callData: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + getCurrentBlockTimestamp( + overrides?: CallOverrides + ): Promise; + + getEthBalance( + addr: string, + overrides?: CallOverrides + ): Promise; + + multicall( + calls: { target: string; gasLimit: BigNumberish; callData: BytesLike }[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/UniswapV3Factory.d.ts b/src/contrib/smart-order-router/types/v3/UniswapV3Factory.d.ts new file mode 100644 index 0000000..85a2a64 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/UniswapV3Factory.d.ts @@ -0,0 +1,408 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface UniswapV3FactoryInterface extends ethers.utils.Interface { + functions: { + "createPool(address,address,uint24)": FunctionFragment; + "enableFeeAmount(uint24,int24)": FunctionFragment; + "feeAmountTickSpacing(uint24)": FunctionFragment; + "getPool(address,address,uint24)": FunctionFragment; + "owner()": FunctionFragment; + "parameters()": FunctionFragment; + "setOwner(address)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "createPool", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "enableFeeAmount", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "feeAmountTickSpacing", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "getPool", + values: [string, string, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "owner", values?: undefined): string; + encodeFunctionData( + functionFragment: "parameters", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "setOwner", values: [string]): string; + + decodeFunctionResult(functionFragment: "createPool", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "enableFeeAmount", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "feeAmountTickSpacing", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "getPool", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "parameters", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "setOwner", data: BytesLike): Result; + + events: { + "FeeAmountEnabled(uint24,int24)": EventFragment; + "OwnerChanged(address,address)": EventFragment; + "PoolCreated(address,address,uint24,int24,address)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "FeeAmountEnabled"): EventFragment; + getEvent(nameOrSignatureOrTopic: "OwnerChanged"): EventFragment; + getEvent(nameOrSignatureOrTopic: "PoolCreated"): EventFragment; +} + +export type FeeAmountEnabledEvent = TypedEvent< + [number, number] & { fee: number; tickSpacing: number } +>; + +export type OwnerChangedEvent = TypedEvent< + [string, string] & { oldOwner: string; newOwner: string } +>; + +export type PoolCreatedEvent = TypedEvent< + [string, string, number, number, string] & { + token0: string; + token1: string; + fee: number; + tickSpacing: number; + pool: string; + } +>; + +export class UniswapV3Factory extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: UniswapV3FactoryInterface; + + functions: { + createPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enableFeeAmount( + fee: BigNumberish, + tickSpacing: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeAmountTickSpacing( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise<[number]>; + + getPool( + arg0: string, + arg1: string, + arg2: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + parameters( + overrides?: CallOverrides + ): Promise< + [string, string, string, number, number] & { + factory: string; + token0: string; + token1: string; + fee: number; + tickSpacing: number; + } + >; + + setOwner( + _owner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + createPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enableFeeAmount( + fee: BigNumberish, + tickSpacing: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeAmountTickSpacing( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getPool( + arg0: string, + arg1: string, + arg2: BigNumberish, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + parameters( + overrides?: CallOverrides + ): Promise< + [string, string, string, number, number] & { + factory: string; + token0: string; + token1: string; + fee: number; + tickSpacing: number; + } + >; + + setOwner( + _owner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + callStatic: { + createPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: CallOverrides + ): Promise; + + enableFeeAmount( + fee: BigNumberish, + tickSpacing: BigNumberish, + overrides?: CallOverrides + ): Promise; + + feeAmountTickSpacing( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getPool( + arg0: string, + arg1: string, + arg2: BigNumberish, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + parameters( + overrides?: CallOverrides + ): Promise< + [string, string, string, number, number] & { + factory: string; + token0: string; + token1: string; + fee: number; + tickSpacing: number; + } + >; + + setOwner(_owner: string, overrides?: CallOverrides): Promise; + }; + + filters: { + "FeeAmountEnabled(uint24,int24)"( + fee?: BigNumberish | null, + tickSpacing?: BigNumberish | null + ): TypedEventFilter<[number, number], { fee: number; tickSpacing: number }>; + + FeeAmountEnabled( + fee?: BigNumberish | null, + tickSpacing?: BigNumberish | null + ): TypedEventFilter<[number, number], { fee: number; tickSpacing: number }>; + + "OwnerChanged(address,address)"( + oldOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { oldOwner: string; newOwner: string } + >; + + OwnerChanged( + oldOwner?: string | null, + newOwner?: string | null + ): TypedEventFilter< + [string, string], + { oldOwner: string; newOwner: string } + >; + + "PoolCreated(address,address,uint24,int24,address)"( + token0?: string | null, + token1?: string | null, + fee?: BigNumberish | null, + tickSpacing?: null, + pool?: null + ): TypedEventFilter< + [string, string, number, number, string], + { + token0: string; + token1: string; + fee: number; + tickSpacing: number; + pool: string; + } + >; + + PoolCreated( + token0?: string | null, + token1?: string | null, + fee?: BigNumberish | null, + tickSpacing?: null, + pool?: null + ): TypedEventFilter< + [string, string, number, number, string], + { + token0: string; + token1: string; + fee: number; + tickSpacing: number; + pool: string; + } + >; + }; + + estimateGas: { + createPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enableFeeAmount( + fee: BigNumberish, + tickSpacing: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeAmountTickSpacing( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getPool( + arg0: string, + arg1: string, + arg2: BigNumberish, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + parameters(overrides?: CallOverrides): Promise; + + setOwner( + _owner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + createPool( + tokenA: string, + tokenB: string, + fee: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + enableFeeAmount( + fee: BigNumberish, + tickSpacing: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + feeAmountTickSpacing( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + getPool( + arg0: string, + arg1: string, + arg2: BigNumberish, + overrides?: CallOverrides + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + parameters(overrides?: CallOverrides): Promise; + + setOwner( + _owner: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/UniswapV3Pool.d.ts b/src/contrib/smart-order-router/types/v3/UniswapV3Pool.d.ts new file mode 100644 index 0000000..7b08f3f --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/UniswapV3Pool.d.ts @@ -0,0 +1,1433 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface UniswapV3PoolInterface extends ethers.utils.Interface { + functions: { + "burn(int24,int24,uint128)": FunctionFragment; + "collect(address,int24,int24,uint128,uint128)": FunctionFragment; + "collectProtocol(address,uint128,uint128)": FunctionFragment; + "factory()": FunctionFragment; + "fee()": FunctionFragment; + "feeGrowthGlobal0X128()": FunctionFragment; + "feeGrowthGlobal1X128()": FunctionFragment; + "flash(address,uint256,uint256,bytes)": FunctionFragment; + "increaseObservationCardinalityNext(uint16)": FunctionFragment; + "initialize(uint160)": FunctionFragment; + "liquidity()": FunctionFragment; + "maxLiquidityPerTick()": FunctionFragment; + "mint(address,int24,int24,uint128,bytes)": FunctionFragment; + "observations(uint256)": FunctionFragment; + "observe(uint32[])": FunctionFragment; + "positions(bytes32)": FunctionFragment; + "protocolFees()": FunctionFragment; + "setFeeProtocol(uint8,uint8)": FunctionFragment; + "slot0()": FunctionFragment; + "snapshotCumulativesInside(int24,int24)": FunctionFragment; + "swap(address,bool,int256,uint160,bytes)": FunctionFragment; + "tickBitmap(int16)": FunctionFragment; + "tickSpacing()": FunctionFragment; + "ticks(int24)": FunctionFragment; + "token0()": FunctionFragment; + "token1()": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "burn", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "collect", + values: [string, BigNumberish, BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "collectProtocol", + values: [string, BigNumberish, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData(functionFragment: "fee", values?: undefined): string; + encodeFunctionData( + functionFragment: "feeGrowthGlobal0X128", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "feeGrowthGlobal1X128", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "flash", + values: [string, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "increaseObservationCardinalityNext", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [BigNumberish] + ): string; + encodeFunctionData(functionFragment: "liquidity", values?: undefined): string; + encodeFunctionData( + functionFragment: "maxLiquidityPerTick", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "mint", + values: [string, BigNumberish, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "observations", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "observe", + values: [BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "positions", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "protocolFees", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "setFeeProtocol", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "slot0", values?: undefined): string; + encodeFunctionData( + functionFragment: "snapshotCumulativesInside", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "swap", + values: [string, boolean, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tickBitmap", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "tickSpacing", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "ticks", values: [BigNumberish]): string; + encodeFunctionData(functionFragment: "token0", values?: undefined): string; + encodeFunctionData(functionFragment: "token1", values?: undefined): string; + + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "collect", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "collectProtocol", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "fee", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "feeGrowthGlobal0X128", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "feeGrowthGlobal1X128", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "flash", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "increaseObservationCardinalityNext", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "liquidity", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "maxLiquidityPerTick", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "observations", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "observe", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "positions", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "protocolFees", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setFeeProtocol", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "slot0", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "snapshotCumulativesInside", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "swap", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "tickBitmap", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "tickSpacing", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "ticks", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token0", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "token1", data: BytesLike): Result; + + events: { + "Burn(address,int24,int24,uint128,uint256,uint256)": EventFragment; + "Collect(address,address,int24,int24,uint128,uint128)": EventFragment; + "CollectProtocol(address,address,uint128,uint128)": EventFragment; + "Flash(address,address,uint256,uint256,uint256,uint256)": EventFragment; + "IncreaseObservationCardinalityNext(uint16,uint16)": EventFragment; + "Initialize(uint160,int24)": EventFragment; + "Mint(address,address,int24,int24,uint128,uint256,uint256)": EventFragment; + "SetFeeProtocol(uint8,uint8,uint8,uint8)": EventFragment; + "Swap(address,address,int256,int256,uint160,uint128,int24)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "Burn"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Collect"): EventFragment; + getEvent(nameOrSignatureOrTopic: "CollectProtocol"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Flash"): EventFragment; + getEvent( + nameOrSignatureOrTopic: "IncreaseObservationCardinalityNext" + ): EventFragment; + getEvent(nameOrSignatureOrTopic: "Initialize"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Mint"): EventFragment; + getEvent(nameOrSignatureOrTopic: "SetFeeProtocol"): EventFragment; + getEvent(nameOrSignatureOrTopic: "Swap"): EventFragment; +} + +export type BurnEvent = TypedEvent< + [string, number, number, BigNumber, BigNumber, BigNumber] & { + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type CollectEvent = TypedEvent< + [string, string, number, number, BigNumber, BigNumber] & { + owner: string; + recipient: string; + tickLower: number; + tickUpper: number; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type CollectProtocolEvent = TypedEvent< + [string, string, BigNumber, BigNumber] & { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type FlashEvent = TypedEvent< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber] & { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + paid0: BigNumber; + paid1: BigNumber; + } +>; + +export type IncreaseObservationCardinalityNextEvent = TypedEvent< + [number, number] & { + observationCardinalityNextOld: number; + observationCardinalityNextNew: number; + } +>; + +export type InitializeEvent = TypedEvent< + [BigNumber, number] & { sqrtPriceX96: BigNumber; tick: number } +>; + +export type MintEvent = TypedEvent< + [string, string, number, number, BigNumber, BigNumber, BigNumber] & { + sender: string; + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } +>; + +export type SetFeeProtocolEvent = TypedEvent< + [number, number, number, number] & { + feeProtocol0Old: number; + feeProtocol1Old: number; + feeProtocol0New: number; + feeProtocol1New: number; + } +>; + +export type SwapEvent = TypedEvent< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber, number] & { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + sqrtPriceX96: BigNumber; + liquidity: BigNumber; + tick: number; + } +>; + +export class UniswapV3Pool extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: UniswapV3PoolInterface; + + functions: { + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise<[string]>; + + fee(overrides?: CallOverrides): Promise<[number]>; + + feeGrowthGlobal0X128(overrides?: CallOverrides): Promise<[BigNumber]>; + + feeGrowthGlobal1X128(overrides?: CallOverrides): Promise<[BigNumber]>; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + liquidity(overrides?: CallOverrides): Promise<[BigNumber]>; + + maxLiquidityPerTick(overrides?: CallOverrides): Promise<[BigNumber]>; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + observations( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise< + [number, BigNumber, BigNumber, boolean] & { + blockTimestamp: number; + tickCumulative: BigNumber; + secondsPerLiquidityCumulativeX128: BigNumber; + initialized: boolean; + } + >; + + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise< + [BigNumber[], BigNumber[]] & { + tickCumulatives: BigNumber[]; + secondsPerLiquidityCumulativeX128s: BigNumber[]; + } + >; + + positions( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + protocolFees( + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { token0: BigNumber; token1: BigNumber } + >; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + slot0( + overrides?: CallOverrides + ): Promise< + [BigNumber, number, number, number, number, number, boolean] & { + sqrtPriceX96: BigNumber; + tick: number; + observationIndex: number; + observationCardinality: number; + observationCardinalityNext: number; + feeProtocol: number; + unlocked: boolean; + } + >; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + tickCumulativeInside: BigNumber; + secondsPerLiquidityInsideX128: BigNumber; + secondsInside: number; + } + >; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tickBitmap( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + tickSpacing(overrides?: CallOverrides): Promise<[number]>; + + ticks( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + number, + boolean + ] & { + liquidityGross: BigNumber; + liquidityNet: BigNumber; + feeGrowthOutside0X128: BigNumber; + feeGrowthOutside1X128: BigNumber; + tickCumulativeOutside: BigNumber; + secondsPerLiquidityOutsideX128: BigNumber; + secondsOutside: number; + initialized: boolean; + } + >; + + token0(overrides?: CallOverrides): Promise<[string]>; + + token1(overrides?: CallOverrides): Promise<[string]>; + }; + + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + fee(overrides?: CallOverrides): Promise; + + feeGrowthGlobal0X128(overrides?: CallOverrides): Promise; + + feeGrowthGlobal1X128(overrides?: CallOverrides): Promise; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + liquidity(overrides?: CallOverrides): Promise; + + maxLiquidityPerTick(overrides?: CallOverrides): Promise; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + observations( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise< + [number, BigNumber, BigNumber, boolean] & { + blockTimestamp: number; + tickCumulative: BigNumber; + secondsPerLiquidityCumulativeX128: BigNumber; + initialized: boolean; + } + >; + + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise< + [BigNumber[], BigNumber[]] & { + tickCumulatives: BigNumber[]; + secondsPerLiquidityCumulativeX128s: BigNumber[]; + } + >; + + positions( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + protocolFees( + overrides?: CallOverrides + ): Promise<[BigNumber, BigNumber] & { token0: BigNumber; token1: BigNumber }>; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + slot0( + overrides?: CallOverrides + ): Promise< + [BigNumber, number, number, number, number, number, boolean] & { + sqrtPriceX96: BigNumber; + tick: number; + observationIndex: number; + observationCardinality: number; + observationCardinalityNext: number; + feeProtocol: number; + unlocked: boolean; + } + >; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + tickCumulativeInside: BigNumber; + secondsPerLiquidityInsideX128: BigNumber; + secondsInside: number; + } + >; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tickBitmap(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + tickSpacing(overrides?: CallOverrides): Promise; + + ticks( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + number, + boolean + ] & { + liquidityGross: BigNumber; + liquidityNet: BigNumber; + feeGrowthOutside0X128: BigNumber; + feeGrowthOutside1X128: BigNumber; + tickCumulativeOutside: BigNumber; + secondsPerLiquidityOutsideX128: BigNumber; + secondsOutside: number; + initialized: boolean; + } + >; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + + callStatic: { + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + factory(overrides?: CallOverrides): Promise; + + fee(overrides?: CallOverrides): Promise; + + feeGrowthGlobal0X128(overrides?: CallOverrides): Promise; + + feeGrowthGlobal1X128(overrides?: CallOverrides): Promise; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: CallOverrides + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + + liquidity(overrides?: CallOverrides): Promise; + + maxLiquidityPerTick(overrides?: CallOverrides): Promise; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + observations( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise< + [number, BigNumber, BigNumber, boolean] & { + blockTimestamp: number; + tickCumulative: BigNumber; + secondsPerLiquidityCumulativeX128: BigNumber; + initialized: boolean; + } + >; + + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise< + [BigNumber[], BigNumber[]] & { + tickCumulatives: BigNumber[]; + secondsPerLiquidityCumulativeX128s: BigNumber[]; + } + >; + + positions( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + liquidity: BigNumber; + feeGrowthInside0LastX128: BigNumber; + feeGrowthInside1LastX128: BigNumber; + tokensOwed0: BigNumber; + tokensOwed1: BigNumber; + } + >; + + protocolFees( + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { token0: BigNumber; token1: BigNumber } + >; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: CallOverrides + ): Promise; + + slot0( + overrides?: CallOverrides + ): Promise< + [BigNumber, number, number, number, number, number, boolean] & { + sqrtPriceX96: BigNumber; + tick: number; + observationIndex: number; + observationCardinality: number; + observationCardinalityNext: number; + feeProtocol: number; + unlocked: boolean; + } + >; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber, number] & { + tickCumulativeInside: BigNumber; + secondsPerLiquidityInsideX128: BigNumber; + secondsInside: number; + } + >; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: CallOverrides + ): Promise< + [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber } + >; + + tickBitmap( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tickSpacing(overrides?: CallOverrides): Promise; + + ticks( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise< + [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + number, + boolean + ] & { + liquidityGross: BigNumber; + liquidityNet: BigNumber; + feeGrowthOutside0X128: BigNumber; + feeGrowthOutside1X128: BigNumber; + tickCumulativeOutside: BigNumber; + secondsPerLiquidityOutsideX128: BigNumber; + secondsOutside: number; + initialized: boolean; + } + >; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + }; + + filters: { + "Burn(address,int24,int24,uint128,uint256,uint256)"( + owner?: string | null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, number, number, BigNumber, BigNumber, BigNumber], + { + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + Burn( + owner?: string | null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, number, number, BigNumber, BigNumber, BigNumber], + { + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "Collect(address,address,int24,int24,uint128,uint128)"( + owner?: string | null, + recipient?: null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, number, number, BigNumber, BigNumber], + { + owner: string; + recipient: string; + tickLower: number; + tickUpper: number; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + Collect( + owner?: string | null, + recipient?: null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, number, number, BigNumber, BigNumber], + { + owner: string; + recipient: string; + tickLower: number; + tickUpper: number; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "CollectProtocol(address,address,uint128,uint128)"( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + CollectProtocol( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "Flash(address,address,uint256,uint256,uint256,uint256)"( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null, + paid0?: null, + paid1?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + paid0: BigNumber; + paid1: BigNumber; + } + >; + + Flash( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null, + paid0?: null, + paid1?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + paid0: BigNumber; + paid1: BigNumber; + } + >; + + "IncreaseObservationCardinalityNext(uint16,uint16)"( + observationCardinalityNextOld?: null, + observationCardinalityNextNew?: null + ): TypedEventFilter< + [number, number], + { + observationCardinalityNextOld: number; + observationCardinalityNextNew: number; + } + >; + + IncreaseObservationCardinalityNext( + observationCardinalityNextOld?: null, + observationCardinalityNextNew?: null + ): TypedEventFilter< + [number, number], + { + observationCardinalityNextOld: number; + observationCardinalityNextNew: number; + } + >; + + "Initialize(uint160,int24)"( + sqrtPriceX96?: null, + tick?: null + ): TypedEventFilter< + [BigNumber, number], + { sqrtPriceX96: BigNumber; tick: number } + >; + + Initialize( + sqrtPriceX96?: null, + tick?: null + ): TypedEventFilter< + [BigNumber, number], + { sqrtPriceX96: BigNumber; tick: number } + >; + + "Mint(address,address,int24,int24,uint128,uint256,uint256)"( + sender?: null, + owner?: string | null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, number, number, BigNumber, BigNumber, BigNumber], + { + sender: string; + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + Mint( + sender?: null, + owner?: string | null, + tickLower?: BigNumberish | null, + tickUpper?: BigNumberish | null, + amount?: null, + amount0?: null, + amount1?: null + ): TypedEventFilter< + [string, string, number, number, BigNumber, BigNumber, BigNumber], + { + sender: string; + owner: string; + tickLower: number; + tickUpper: number; + amount: BigNumber; + amount0: BigNumber; + amount1: BigNumber; + } + >; + + "SetFeeProtocol(uint8,uint8,uint8,uint8)"( + feeProtocol0Old?: null, + feeProtocol1Old?: null, + feeProtocol0New?: null, + feeProtocol1New?: null + ): TypedEventFilter< + [number, number, number, number], + { + feeProtocol0Old: number; + feeProtocol1Old: number; + feeProtocol0New: number; + feeProtocol1New: number; + } + >; + + SetFeeProtocol( + feeProtocol0Old?: null, + feeProtocol1Old?: null, + feeProtocol0New?: null, + feeProtocol1New?: null + ): TypedEventFilter< + [number, number, number, number], + { + feeProtocol0Old: number; + feeProtocol1Old: number; + feeProtocol0New: number; + feeProtocol1New: number; + } + >; + + "Swap(address,address,int256,int256,uint160,uint128,int24)"( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null, + sqrtPriceX96?: null, + liquidity?: null, + tick?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber, number], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + sqrtPriceX96: BigNumber; + liquidity: BigNumber; + tick: number; + } + >; + + Swap( + sender?: string | null, + recipient?: string | null, + amount0?: null, + amount1?: null, + sqrtPriceX96?: null, + liquidity?: null, + tick?: null + ): TypedEventFilter< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber, number], + { + sender: string; + recipient: string; + amount0: BigNumber; + amount1: BigNumber; + sqrtPriceX96: BigNumber; + liquidity: BigNumber; + tick: number; + } + >; + }; + + estimateGas: { + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + fee(overrides?: CallOverrides): Promise; + + feeGrowthGlobal0X128(overrides?: CallOverrides): Promise; + + feeGrowthGlobal1X128(overrides?: CallOverrides): Promise; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + liquidity(overrides?: CallOverrides): Promise; + + maxLiquidityPerTick(overrides?: CallOverrides): Promise; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + observations( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + positions(arg0: BytesLike, overrides?: CallOverrides): Promise; + + protocolFees(overrides?: CallOverrides): Promise; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + slot0(overrides?: CallOverrides): Promise; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tickBitmap( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tickSpacing(overrides?: CallOverrides): Promise; + + ticks(arg0: BigNumberish, overrides?: CallOverrides): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + }; + + populateTransaction: { + burn( + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collect( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + collectProtocol( + recipient: string, + amount0Requested: BigNumberish, + amount1Requested: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + fee(overrides?: CallOverrides): Promise; + + feeGrowthGlobal0X128( + overrides?: CallOverrides + ): Promise; + + feeGrowthGlobal1X128( + overrides?: CallOverrides + ): Promise; + + flash( + recipient: string, + amount0: BigNumberish, + amount1: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + increaseObservationCardinalityNext( + observationCardinalityNext: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + initialize( + sqrtPriceX96: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + liquidity(overrides?: CallOverrides): Promise; + + maxLiquidityPerTick( + overrides?: CallOverrides + ): Promise; + + mint( + recipient: string, + tickLower: BigNumberish, + tickUpper: BigNumberish, + amount: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + observations( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + observe( + secondsAgos: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + positions( + arg0: BytesLike, + overrides?: CallOverrides + ): Promise; + + protocolFees(overrides?: CallOverrides): Promise; + + setFeeProtocol( + feeProtocol0: BigNumberish, + feeProtocol1: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + slot0(overrides?: CallOverrides): Promise; + + snapshotCumulativesInside( + tickLower: BigNumberish, + tickUpper: BigNumberish, + overrides?: CallOverrides + ): Promise; + + swap( + recipient: string, + zeroForOne: boolean, + amountSpecified: BigNumberish, + sqrtPriceLimitX96: BigNumberish, + data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + tickBitmap( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + tickSpacing(overrides?: CallOverrides): Promise; + + ticks( + arg0: BigNumberish, + overrides?: CallOverrides + ): Promise; + + token0(overrides?: CallOverrides): Promise; + + token1(overrides?: CallOverrides): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/V3Migrator.d.ts b/src/contrib/smart-order-router/types/v3/V3Migrator.d.ts new file mode 100644 index 0000000..53e021e --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/V3Migrator.d.ts @@ -0,0 +1,586 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + BaseContract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; + +interface V3MigratorInterface extends ethers.utils.Interface { + functions: { + "WETH9()": FunctionFragment; + "createAndInitializePoolIfNecessary(address,address,uint24,uint160)": FunctionFragment; + "factory()": FunctionFragment; + "migrate((address,uint256,uint8,address,address,uint24,int24,int24,uint256,uint256,address,uint256,bool))": FunctionFragment; + "multicall(bytes[])": FunctionFragment; + "nonfungiblePositionManager()": FunctionFragment; + "selfPermit(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitAllowed(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitAllowedIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + "selfPermitIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; + }; + + encodeFunctionData(functionFragment: "WETH9", values?: undefined): string; + encodeFunctionData( + functionFragment: "createAndInitializePoolIfNecessary", + values: [string, string, BigNumberish, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "factory", values?: undefined): string; + encodeFunctionData( + functionFragment: "migrate", + values: [ + { + pair: string; + liquidityToMigrate: BigNumberish; + percentageToMigrate: BigNumberish; + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + refundAsETH: boolean; + } + ] + ): string; + encodeFunctionData( + functionFragment: "multicall", + values: [BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "nonfungiblePositionManager", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "selfPermit", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitAllowed", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitAllowedIfNecessary", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + encodeFunctionData( + functionFragment: "selfPermitIfNecessary", + values: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike + ] + ): string; + + decodeFunctionResult(functionFragment: "WETH9", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "createAndInitializePoolIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "migrate", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "nonfungiblePositionManager", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "selfPermit", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "selfPermitAllowed", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "selfPermitAllowedIfNecessary", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "selfPermitIfNecessary", + data: BytesLike + ): Result; + + events: {}; +} + +export class V3Migrator extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: V3MigratorInterface; + + functions: { + WETH9(overrides?: CallOverrides): Promise<[string]>; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise<[string]>; + + migrate( + params: { + pair: string; + liquidityToMigrate: BigNumberish; + percentageToMigrate: BigNumberish; + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + refundAsETH: boolean; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + nonfungiblePositionManager(overrides?: CallOverrides): Promise<[string]>; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + WETH9(overrides?: CallOverrides): Promise; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + migrate( + params: { + pair: string; + liquidityToMigrate: BigNumberish; + percentageToMigrate: BigNumberish; + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + refundAsETH: boolean; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + nonfungiblePositionManager(overrides?: CallOverrides): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + callStatic: { + WETH9(overrides?: CallOverrides): Promise; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: CallOverrides + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + migrate( + params: { + pair: string; + liquidityToMigrate: BigNumberish; + percentageToMigrate: BigNumberish; + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + refundAsETH: boolean; + }, + overrides?: CallOverrides + ): Promise; + + multicall(data: BytesLike[], overrides?: CallOverrides): Promise; + + nonfungiblePositionManager(overrides?: CallOverrides): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + WETH9(overrides?: CallOverrides): Promise; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + migrate( + params: { + pair: string; + liquidityToMigrate: BigNumberish; + percentageToMigrate: BigNumberish; + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + refundAsETH: boolean; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + nonfungiblePositionManager(overrides?: CallOverrides): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; + + populateTransaction: { + WETH9(overrides?: CallOverrides): Promise; + + createAndInitializePoolIfNecessary( + token0: string, + token1: string, + fee: BigNumberish, + sqrtPriceX96: BigNumberish, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + factory(overrides?: CallOverrides): Promise; + + migrate( + params: { + pair: string; + liquidityToMigrate: BigNumberish; + percentageToMigrate: BigNumberish; + token0: string; + token1: string; + fee: BigNumberish; + tickLower: BigNumberish; + tickUpper: BigNumberish; + amount0Min: BigNumberish; + amount1Min: BigNumberish; + recipient: string; + deadline: BigNumberish; + refundAsETH: boolean; + }, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + multicall( + data: BytesLike[], + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + nonfungiblePositionManager( + overrides?: CallOverrides + ): Promise; + + selfPermit( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowed( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitAllowedIfNecessary( + token: string, + nonce: BigNumberish, + expiry: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + + selfPermitIfNecessary( + token: string, + value: BigNumberish, + deadline: BigNumberish, + v: BigNumberish, + r: BytesLike, + s: BytesLike, + overrides?: PayableOverrides & { from?: string | Promise } + ): Promise; + }; +} diff --git a/src/contrib/smart-order-router/types/v3/common.d.ts b/src/contrib/smart-order-router/types/v3/common.d.ts new file mode 100644 index 0000000..fc93782 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/common.d.ts @@ -0,0 +1,35 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { EventFilter, Event } from "ethers"; +import { Result } from "@ethersproject/abi"; + +export interface TypedEventFilter<_EventArgsArray, _EventArgsObject> + extends EventFilter {} + +export interface TypedEvent extends Event { + args: EventArgs; +} + +export type TypedListener< + EventArgsArray extends Array, + EventArgsObject +> = ( + ...listenerArg: [ + ...EventArgsArray, + TypedEvent + ] +) => void; + +export type MinEthersFactory = { + deploy(...a: ARGS[]): Promise; +}; +export type GetContractTypeFromFactory = F extends MinEthersFactory< + infer C, + any +> + ? C + : never; +export type GetARGsTypeFromFactory = F extends MinEthersFactory + ? Parameters + : never; diff --git a/src/contrib/smart-order-router/types/v3/factories/IERC1271__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IERC1271__factory.ts new file mode 100644 index 0000000..e18a890 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IERC1271__factory.ts @@ -0,0 +1,47 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IERC1271, IERC1271Interface } from "../IERC1271"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes32", + name: "hash", + type: "bytes32", + }, + { + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "isValidSignature", + outputs: [ + { + internalType: "bytes4", + name: "magicValue", + type: "bytes4", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class IERC1271__factory { + static readonly abi = _abi; + static createInterface(): IERC1271Interface { + return new utils.Interface(_abi) as IERC1271Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IERC1271 { + return new Contract(address, _abi, signerOrProvider) as IERC1271; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IERC20Metadata__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IERC20Metadata__factory.ts new file mode 100644 index 0000000..0054ffb --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IERC20Metadata__factory.ts @@ -0,0 +1,248 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IERC20Metadata, + IERC20MetadataInterface, +} from "../IERC20Metadata"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IERC20Metadata__factory { + static readonly abi = _abi; + static createInterface(): IERC20MetadataInterface { + return new utils.Interface(_abi) as IERC20MetadataInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IERC20Metadata { + return new Contract(address, _abi, signerOrProvider) as IERC20Metadata; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IERC20Minimal__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IERC20Minimal__factory.ts new file mode 100644 index 0000000..d3bc2e6 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IERC20Minimal__factory.ts @@ -0,0 +1,193 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IERC20Minimal, IERC20MinimalInterface } from "../IERC20Minimal"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IERC20Minimal__factory { + static readonly abi = _abi; + static createInterface(): IERC20MinimalInterface { + return new utils.Interface(_abi) as IERC20MinimalInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IERC20Minimal { + return new Contract(address, _abi, signerOrProvider) as IERC20Minimal; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IERC20PermitAllowed__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IERC20PermitAllowed__factory.ts new file mode 100644 index 0000000..00cbfe2 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IERC20PermitAllowed__factory.ts @@ -0,0 +1,74 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IERC20PermitAllowed, + IERC20PermitAllowedInterface, +} from "../IERC20PermitAllowed"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "holder", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "bool", + name: "allowed", + type: "bool", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "permit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IERC20PermitAllowed__factory { + static readonly abi = _abi; + static createInterface(): IERC20PermitAllowedInterface { + return new utils.Interface(_abi) as IERC20PermitAllowedInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IERC20PermitAllowed { + return new Contract(address, _abi, signerOrProvider) as IERC20PermitAllowed; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IERC721Permit__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IERC721Permit__factory.ts new file mode 100644 index 0000000..0624af5 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IERC721Permit__factory.ts @@ -0,0 +1,372 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IERC721Permit, IERC721PermitInterface } from "../IERC721Permit"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "approved", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "operator", + type: "address", + }, + { + indexed: false, + internalType: "bool", + name: "approved", + type: "bool", + }, + ], + name: "ApprovalForAll", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [], + name: "DOMAIN_SEPARATOR", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PERMIT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "approve", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "getApproved", + outputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + name: "isApprovedForAll", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "ownerOf", + outputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "permit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "bool", + name: "_approved", + type: "bool", + }, + ], + name: "setApprovalForAll", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IERC721Permit__factory { + static readonly abi = _abi; + static createInterface(): IERC721PermitInterface { + return new utils.Interface(_abi) as IERC721PermitInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IERC721Permit { + return new Contract(address, _abi, signerOrProvider) as IERC721Permit; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IMulticall__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IMulticall__factory.ts new file mode 100644 index 0000000..249e11a --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IMulticall__factory.ts @@ -0,0 +1,42 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IMulticall, IMulticallInterface } from "../IMulticall"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes[]", + name: "data", + type: "bytes[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "bytes[]", + name: "results", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, +]; + +export class IMulticall__factory { + static readonly abi = _abi; + static createInterface(): IMulticallInterface { + return new utils.Interface(_abi) as IMulticallInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IMulticall { + return new Contract(address, _abi, signerOrProvider) as IMulticall; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/INonfungiblePositionManager__factory.ts b/src/contrib/smart-order-router/types/v3/factories/INonfungiblePositionManager__factory.ts new file mode 100644 index 0000000..00e9871 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/INonfungiblePositionManager__factory.ts @@ -0,0 +1,1019 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + INonfungiblePositionManager, + INonfungiblePositionManagerInterface, +} from "../INonfungiblePositionManager"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "approved", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "operator", + type: "address", + }, + { + indexed: false, + internalType: "bool", + name: "approved", + type: "bool", + }, + ], + name: "ApprovalForAll", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "recipient", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "Collect", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + indexed: false, + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "DecreaseLiquidity", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + indexed: false, + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "IncreaseLiquidity", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [], + name: "DOMAIN_SEPARATOR", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PERMIT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "approve", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "burn", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint128", + name: "amount0Max", + type: "uint128", + }, + { + internalType: "uint128", + name: "amount1Max", + type: "uint128", + }, + ], + internalType: "struct INonfungiblePositionManager.CollectParams", + name: "params", + type: "tuple", + }, + ], + name: "collect", + outputs: [ + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + ], + name: "createAndInitializePoolIfNecessary", + outputs: [ + { + internalType: "address", + name: "pool", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + internalType: + "struct INonfungiblePositionManager.DecreaseLiquidityParams", + name: "params", + type: "tuple", + }, + ], + name: "decreaseLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "getApproved", + outputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount0Desired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Desired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + internalType: + "struct INonfungiblePositionManager.IncreaseLiquidityParams", + name: "params", + type: "tuple", + }, + ], + name: "increaseLiquidity", + outputs: [ + { + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + name: "isApprovedForAll", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint256", + name: "amount0Desired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Desired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + internalType: "struct INonfungiblePositionManager.MintParams", + name: "params", + type: "tuple", + }, + ], + name: "mint", + outputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "ownerOf", + outputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "permit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "positions", + outputs: [ + { + internalType: "uint96", + name: "nonce", + type: "uint96", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + internalType: "uint256", + name: "feeGrowthInside0LastX128", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeGrowthInside1LastX128", + type: "uint256", + }, + { + internalType: "uint128", + name: "tokensOwed0", + type: "uint128", + }, + { + internalType: "uint128", + name: "tokensOwed1", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "refundETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "bool", + name: "_approved", + type: "bool", + }, + ], + name: "setApprovalForAll", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "index", + type: "uint256", + }, + ], + name: "tokenByIndex", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "uint256", + name: "index", + type: "uint256", + }, + ], + name: "tokenOfOwnerByIndex", + outputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "tokenURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, +]; + +export class INonfungiblePositionManager__factory { + static readonly abi = _abi; + static createInterface(): INonfungiblePositionManagerInterface { + return new utils.Interface(_abi) as INonfungiblePositionManagerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): INonfungiblePositionManager { + return new Contract( + address, + _abi, + signerOrProvider + ) as INonfungiblePositionManager; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/INonfungibleTokenPositionDescriptor__factory.ts b/src/contrib/smart-order-router/types/v3/factories/INonfungibleTokenPositionDescriptor__factory.ts new file mode 100644 index 0000000..8e906c0 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/INonfungibleTokenPositionDescriptor__factory.ts @@ -0,0 +1,56 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + INonfungibleTokenPositionDescriptor, + INonfungibleTokenPositionDescriptorInterface, +} from "../INonfungibleTokenPositionDescriptor"; + +const _abi = [ + { + inputs: [ + { + internalType: "contract INonfungiblePositionManager", + name: "positionManager", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "tokenURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class INonfungibleTokenPositionDescriptor__factory { + static readonly abi = _abi; + static createInterface(): INonfungibleTokenPositionDescriptorInterface { + return new utils.Interface( + _abi + ) as INonfungibleTokenPositionDescriptorInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): INonfungibleTokenPositionDescriptor { + return new Contract( + address, + _abi, + signerOrProvider + ) as INonfungibleTokenPositionDescriptor; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IPeripheryImmutableState__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IPeripheryImmutableState__factory.ts new file mode 100644 index 0000000..565d5eb --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IPeripheryImmutableState__factory.ts @@ -0,0 +1,56 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IPeripheryImmutableState, + IPeripheryImmutableStateInterface, +} from "../IPeripheryImmutableState"; + +const _abi = [ + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class IPeripheryImmutableState__factory { + static readonly abi = _abi; + static createInterface(): IPeripheryImmutableStateInterface { + return new utils.Interface(_abi) as IPeripheryImmutableStateInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IPeripheryImmutableState { + return new Contract( + address, + _abi, + signerOrProvider + ) as IPeripheryImmutableState; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IPeripheryPaymentsWithFee__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IPeripheryPaymentsWithFee__factory.ts new file mode 100644 index 0000000..3cf01a0 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IPeripheryPaymentsWithFee__factory.ts @@ -0,0 +1,139 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IPeripheryPaymentsWithFee, + IPeripheryPaymentsWithFeeInterface, +} from "../IPeripheryPaymentsWithFee"; + +const _abi = [ + { + inputs: [], + name: "refundETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "sweepTokenWithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "unwrapWETH9WithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, +]; + +export class IPeripheryPaymentsWithFee__factory { + static readonly abi = _abi; + static createInterface(): IPeripheryPaymentsWithFeeInterface { + return new utils.Interface(_abi) as IPeripheryPaymentsWithFeeInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IPeripheryPaymentsWithFee { + return new Contract( + address, + _abi, + signerOrProvider + ) as IPeripheryPaymentsWithFee; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IPeripheryPayments__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IPeripheryPayments__factory.ts new file mode 100644 index 0000000..73afeee --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IPeripheryPayments__factory.ts @@ -0,0 +1,74 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IPeripheryPayments, + IPeripheryPaymentsInterface, +} from "../IPeripheryPayments"; + +const _abi = [ + { + inputs: [], + name: "refundETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, +]; + +export class IPeripheryPayments__factory { + static readonly abi = _abi; + static createInterface(): IPeripheryPaymentsInterface { + return new utils.Interface(_abi) as IPeripheryPaymentsInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IPeripheryPayments { + return new Contract(address, _abi, signerOrProvider) as IPeripheryPayments; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IPoolInitializer__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IPoolInitializer__factory.ts new file mode 100644 index 0000000..68208ee --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IPoolInitializer__factory.ts @@ -0,0 +1,60 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IPoolInitializer, + IPoolInitializerInterface, +} from "../IPoolInitializer"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + ], + name: "createAndInitializePoolIfNecessary", + outputs: [ + { + internalType: "address", + name: "pool", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, +]; + +export class IPoolInitializer__factory { + static readonly abi = _abi; + static createInterface(): IPoolInitializerInterface { + return new utils.Interface(_abi) as IPoolInitializerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IPoolInitializer { + return new Contract(address, _abi, signerOrProvider) as IPoolInitializer; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IQuoterV2__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IQuoterV2__factory.ts new file mode 100644 index 0000000..09d6480 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IQuoterV2__factory.ts @@ -0,0 +1,223 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IQuoterV2, IQuoterV2Interface } from "../IQuoterV2"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + name: "quoteExactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160[]", + name: "sqrtPriceX96AfterList", + type: "uint160[]", + }, + { + internalType: "uint32[]", + name: "initializedTicksCrossedList", + type: "uint32[]", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IQuoterV2.QuoteExactInputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "quoteExactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceX96After", + type: "uint160", + }, + { + internalType: "uint32", + name: "initializedTicksCrossed", + type: "uint32", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + name: "quoteExactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint160[]", + name: "sqrtPriceX96AfterList", + type: "uint160[]", + }, + { + internalType: "uint32[]", + name: "initializedTicksCrossedList", + type: "uint32[]", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IQuoterV2.QuoteExactOutputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "quoteExactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceX96After", + type: "uint160", + }, + { + internalType: "uint32", + name: "initializedTicksCrossed", + type: "uint32", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IQuoterV2__factory { + static readonly abi = _abi; + static createInterface(): IQuoterV2Interface { + return new utils.Interface(_abi) as IQuoterV2Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IQuoterV2 { + return new Contract(address, _abi, signerOrProvider) as IQuoterV2; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IQuoter__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IQuoter__factory.ts new file mode 100644 index 0000000..3167760 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IQuoter__factory.ts @@ -0,0 +1,149 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IQuoter, IQuoterInterface } from "../IQuoter"; + +const _abi = [ + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + name: "quoteExactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + name: "quoteExactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + name: "quoteExactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + name: "quoteExactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IQuoter__factory { + static readonly abi = _abi; + static createInterface(): IQuoterInterface { + return new utils.Interface(_abi) as IQuoterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IQuoter { + return new Contract(address, _abi, signerOrProvider) as IQuoter; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/ISelfPermit__factory.ts b/src/contrib/smart-order-router/types/v3/factories/ISelfPermit__factory.ts new file mode 100644 index 0000000..8dac067 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/ISelfPermit__factory.ts @@ -0,0 +1,175 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { ISelfPermit, ISelfPermitInterface } from "../ISelfPermit"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitAllowed", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitAllowedIfNecessary", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitIfNecessary", + outputs: [], + stateMutability: "payable", + type: "function", + }, +]; + +export class ISelfPermit__factory { + static readonly abi = _abi; + static createInterface(): ISelfPermitInterface { + return new utils.Interface(_abi) as ISelfPermitInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): ISelfPermit { + return new Contract(address, _abi, signerOrProvider) as ISelfPermit; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/ISwapRouter__factory.ts b/src/contrib/smart-order-router/types/v3/factories/ISwapRouter__factory.ts new file mode 100644 index 0000000..bc08223 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/ISwapRouter__factory.ts @@ -0,0 +1,260 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { ISwapRouter, ISwapRouterInterface } from "../ISwapRouter"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + ], + internalType: "struct ISwapRouter.ExactInputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct ISwapRouter.ExactInputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + ], + internalType: "struct ISwapRouter.ExactOutputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct ISwapRouter.ExactOutputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class ISwapRouter__factory { + static readonly abi = _abi; + static createInterface(): ISwapRouterInterface { + return new utils.Interface(_abi) as ISwapRouterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): ISwapRouter { + return new Contract(address, _abi, signerOrProvider) as ISwapRouter; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/ITickLens__factory.ts b/src/contrib/smart-order-router/types/v3/factories/ITickLens__factory.ts new file mode 100644 index 0000000..dee9a50 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/ITickLens__factory.ts @@ -0,0 +1,64 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { ITickLens, ITickLensInterface } from "../ITickLens"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "pool", + type: "address", + }, + { + internalType: "int16", + name: "tickBitmapIndex", + type: "int16", + }, + ], + name: "getPopulatedTicksInWord", + outputs: [ + { + components: [ + { + internalType: "int24", + name: "tick", + type: "int24", + }, + { + internalType: "int128", + name: "liquidityNet", + type: "int128", + }, + { + internalType: "uint128", + name: "liquidityGross", + type: "uint128", + }, + ], + internalType: "struct ITickLens.PopulatedTick[]", + name: "populatedTicks", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class ITickLens__factory { + static readonly abi = _abi; + static createInterface(): ITickLensInterface { + return new utils.Interface(_abi) as ITickLensInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): ITickLens { + return new Contract(address, _abi, signerOrProvider) as ITickLens; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IUniswapV3Factory__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3Factory__factory.ts new file mode 100644 index 0000000..e5e1743 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3Factory__factory.ts @@ -0,0 +1,222 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV3Factory, + IUniswapV3FactoryInterface, +} from "../IUniswapV3Factory"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + indexed: true, + internalType: "int24", + name: "tickSpacing", + type: "int24", + }, + ], + name: "FeeAmountEnabled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "oldOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnerChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token0", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token1", + type: "address", + }, + { + indexed: true, + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + indexed: false, + internalType: "int24", + name: "tickSpacing", + type: "int24", + }, + { + indexed: false, + internalType: "address", + name: "pool", + type: "address", + }, + ], + name: "PoolCreated", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + ], + name: "createPool", + outputs: [ + { + internalType: "address", + name: "pool", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickSpacing", + type: "int24", + }, + ], + name: "enableFeeAmount", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + ], + name: "feeAmountTickSpacing", + outputs: [ + { + internalType: "int24", + name: "", + type: "int24", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + ], + name: "getPool", + outputs: [ + { + internalType: "address", + name: "pool", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address", + }, + ], + name: "setOwner", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IUniswapV3Factory__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3FactoryInterface { + return new utils.Interface(_abi) as IUniswapV3FactoryInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV3Factory { + return new Contract(address, _abi, signerOrProvider) as IUniswapV3Factory; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IUniswapV3FlashCallback__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3FlashCallback__factory.ts new file mode 100644 index 0000000..fcdd212 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3FlashCallback__factory.ts @@ -0,0 +1,53 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV3FlashCallback, + IUniswapV3FlashCallbackInterface, +} from "../IUniswapV3FlashCallback"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "fee0", + type: "uint256", + }, + { + internalType: "uint256", + name: "fee1", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV3FlashCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IUniswapV3FlashCallback__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3FlashCallbackInterface { + return new utils.Interface(_abi) as IUniswapV3FlashCallbackInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV3FlashCallback { + return new Contract( + address, + _abi, + signerOrProvider + ) as IUniswapV3FlashCallback; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IUniswapV3MintCallback__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3MintCallback__factory.ts new file mode 100644 index 0000000..3c4f1bc --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3MintCallback__factory.ts @@ -0,0 +1,53 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV3MintCallback, + IUniswapV3MintCallbackInterface, +} from "../IUniswapV3MintCallback"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "amount0Owed", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Owed", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV3MintCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IUniswapV3MintCallback__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3MintCallbackInterface { + return new utils.Interface(_abi) as IUniswapV3MintCallbackInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV3MintCallback { + return new Contract( + address, + _abi, + signerOrProvider + ) as IUniswapV3MintCallback; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolActions__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolActions__factory.ts new file mode 100644 index 0000000..c742f8d --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolActions__factory.ts @@ -0,0 +1,250 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV3PoolActions, + IUniswapV3PoolActionsInterface, +} from "../IUniswapV3PoolActions"; + +const _abi = [ + { + inputs: [ + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint128", + name: "amount", + type: "uint128", + }, + ], + name: "burn", + outputs: [ + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint128", + name: "amount0Requested", + type: "uint128", + }, + { + internalType: "uint128", + name: "amount1Requested", + type: "uint128", + }, + ], + name: "collect", + outputs: [ + { + internalType: "uint128", + name: "amount0", + type: "uint128", + }, + { + internalType: "uint128", + name: "amount1", + type: "uint128", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "flash", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint16", + name: "observationCardinalityNext", + type: "uint16", + }, + ], + name: "increaseObservationCardinalityNext", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint128", + name: "amount", + type: "uint128", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "mint", + outputs: [ + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "bool", + name: "zeroForOne", + type: "bool", + }, + { + internalType: "int256", + name: "amountSpecified", + type: "int256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "swap", + outputs: [ + { + internalType: "int256", + name: "amount0", + type: "int256", + }, + { + internalType: "int256", + name: "amount1", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IUniswapV3PoolActions__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3PoolActionsInterface { + return new utils.Interface(_abi) as IUniswapV3PoolActionsInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV3PoolActions { + return new Contract( + address, + _abi, + signerOrProvider + ) as IUniswapV3PoolActions; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolDeployer__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolDeployer__factory.ts new file mode 100644 index 0000000..1dc6fd1 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolDeployer__factory.ts @@ -0,0 +1,63 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV3PoolDeployer, + IUniswapV3PoolDeployerInterface, +} from "../IUniswapV3PoolDeployer"; + +const _abi = [ + { + inputs: [], + name: "parameters", + outputs: [ + { + internalType: "address", + name: "factory", + type: "address", + }, + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickSpacing", + type: "int24", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class IUniswapV3PoolDeployer__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3PoolDeployerInterface { + return new utils.Interface(_abi) as IUniswapV3PoolDeployerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV3PoolDeployer { + return new Contract( + address, + _abi, + signerOrProvider + ) as IUniswapV3PoolDeployer; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolDerivedState__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolDerivedState__factory.ts new file mode 100644 index 0000000..580c180 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolDerivedState__factory.ts @@ -0,0 +1,88 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV3PoolDerivedState, + IUniswapV3PoolDerivedStateInterface, +} from "../IUniswapV3PoolDerivedState"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint32[]", + name: "secondsAgos", + type: "uint32[]", + }, + ], + name: "observe", + outputs: [ + { + internalType: "int56[]", + name: "tickCumulatives", + type: "int56[]", + }, + { + internalType: "uint160[]", + name: "secondsPerLiquidityCumulativeX128s", + type: "uint160[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + ], + name: "snapshotCumulativesInside", + outputs: [ + { + internalType: "int56", + name: "tickCumulativeInside", + type: "int56", + }, + { + internalType: "uint160", + name: "secondsPerLiquidityInsideX128", + type: "uint160", + }, + { + internalType: "uint32", + name: "secondsInside", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class IUniswapV3PoolDerivedState__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3PoolDerivedStateInterface { + return new utils.Interface(_abi) as IUniswapV3PoolDerivedStateInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV3PoolDerivedState { + return new Contract( + address, + _abi, + signerOrProvider + ) as IUniswapV3PoolDerivedState; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolEvents__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolEvents__factory.ts new file mode 100644 index 0000000..2a89aa4 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolEvents__factory.ts @@ -0,0 +1,357 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV3PoolEvents, + IUniswapV3PoolEventsInterface, +} from "../IUniswapV3PoolEvents"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + indexed: true, + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + indexed: false, + internalType: "uint128", + name: "amount", + type: "uint128", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "Burn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "recipient", + type: "address", + }, + { + indexed: true, + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + indexed: true, + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + indexed: false, + internalType: "uint128", + name: "amount0", + type: "uint128", + }, + { + indexed: false, + internalType: "uint128", + name: "amount1", + type: "uint128", + }, + ], + name: "Collect", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "recipient", + type: "address", + }, + { + indexed: false, + internalType: "uint128", + name: "amount0", + type: "uint128", + }, + { + indexed: false, + internalType: "uint128", + name: "amount1", + type: "uint128", + }, + ], + name: "CollectProtocol", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "recipient", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "paid0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "paid1", + type: "uint256", + }, + ], + name: "Flash", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint16", + name: "observationCardinalityNextOld", + type: "uint16", + }, + { + indexed: false, + internalType: "uint16", + name: "observationCardinalityNextNew", + type: "uint16", + }, + ], + name: "IncreaseObservationCardinalityNext", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + { + indexed: false, + internalType: "int24", + name: "tick", + type: "int24", + }, + ], + name: "Initialize", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + indexed: true, + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + indexed: false, + internalType: "uint128", + name: "amount", + type: "uint128", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "Mint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint8", + name: "feeProtocol0Old", + type: "uint8", + }, + { + indexed: false, + internalType: "uint8", + name: "feeProtocol1Old", + type: "uint8", + }, + { + indexed: false, + internalType: "uint8", + name: "feeProtocol0New", + type: "uint8", + }, + { + indexed: false, + internalType: "uint8", + name: "feeProtocol1New", + type: "uint8", + }, + ], + name: "SetFeeProtocol", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "recipient", + type: "address", + }, + { + indexed: false, + internalType: "int256", + name: "amount0", + type: "int256", + }, + { + indexed: false, + internalType: "int256", + name: "amount1", + type: "int256", + }, + { + indexed: false, + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + { + indexed: false, + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + indexed: false, + internalType: "int24", + name: "tick", + type: "int24", + }, + ], + name: "Swap", + type: "event", + }, +]; + +export class IUniswapV3PoolEvents__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3PoolEventsInterface { + return new utils.Interface(_abi) as IUniswapV3PoolEventsInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV3PoolEvents { + return new Contract( + address, + _abi, + signerOrProvider + ) as IUniswapV3PoolEvents; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolImmutables__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolImmutables__factory.ts new file mode 100644 index 0000000..361ebe9 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolImmutables__factory.ts @@ -0,0 +1,108 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV3PoolImmutables, + IUniswapV3PoolImmutablesInterface, +} from "../IUniswapV3PoolImmutables"; + +const _abi = [ + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "fee", + outputs: [ + { + internalType: "uint24", + name: "", + type: "uint24", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "maxLiquidityPerTick", + outputs: [ + { + internalType: "uint128", + name: "", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tickSpacing", + outputs: [ + { + internalType: "int24", + name: "", + type: "int24", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "token0", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "token1", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class IUniswapV3PoolImmutables__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3PoolImmutablesInterface { + return new utils.Interface(_abi) as IUniswapV3PoolImmutablesInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV3PoolImmutables { + return new Contract( + address, + _abi, + signerOrProvider + ) as IUniswapV3PoolImmutables; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolOwnerActions__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolOwnerActions__factory.ts new file mode 100644 index 0000000..a499bc6 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolOwnerActions__factory.ts @@ -0,0 +1,82 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV3PoolOwnerActions, + IUniswapV3PoolOwnerActionsInterface, +} from "../IUniswapV3PoolOwnerActions"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint128", + name: "amount0Requested", + type: "uint128", + }, + { + internalType: "uint128", + name: "amount1Requested", + type: "uint128", + }, + ], + name: "collectProtocol", + outputs: [ + { + internalType: "uint128", + name: "amount0", + type: "uint128", + }, + { + internalType: "uint128", + name: "amount1", + type: "uint128", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint8", + name: "feeProtocol0", + type: "uint8", + }, + { + internalType: "uint8", + name: "feeProtocol1", + type: "uint8", + }, + ], + name: "setFeeProtocol", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IUniswapV3PoolOwnerActions__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3PoolOwnerActionsInterface { + return new utils.Interface(_abi) as IUniswapV3PoolOwnerActionsInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV3PoolOwnerActions { + return new Contract( + address, + _abi, + signerOrProvider + ) as IUniswapV3PoolOwnerActions; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolState__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolState__factory.ts new file mode 100644 index 0000000..fc13190 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3PoolState__factory.ts @@ -0,0 +1,272 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV3PoolState, + IUniswapV3PoolStateInterface, +} from "../IUniswapV3PoolState"; + +const _abi = [ + { + inputs: [], + name: "feeGrowthGlobal0X128", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "feeGrowthGlobal1X128", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "liquidity", + outputs: [ + { + internalType: "uint128", + name: "", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "index", + type: "uint256", + }, + ], + name: "observations", + outputs: [ + { + internalType: "uint32", + name: "blockTimestamp", + type: "uint32", + }, + { + internalType: "int56", + name: "tickCumulative", + type: "int56", + }, + { + internalType: "uint160", + name: "secondsPerLiquidityCumulativeX128", + type: "uint160", + }, + { + internalType: "bool", + name: "initialized", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "key", + type: "bytes32", + }, + ], + name: "positions", + outputs: [ + { + internalType: "uint128", + name: "_liquidity", + type: "uint128", + }, + { + internalType: "uint256", + name: "feeGrowthInside0LastX128", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeGrowthInside1LastX128", + type: "uint256", + }, + { + internalType: "uint128", + name: "tokensOwed0", + type: "uint128", + }, + { + internalType: "uint128", + name: "tokensOwed1", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "protocolFees", + outputs: [ + { + internalType: "uint128", + name: "token0", + type: "uint128", + }, + { + internalType: "uint128", + name: "token1", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "slot0", + outputs: [ + { + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + { + internalType: "int24", + name: "tick", + type: "int24", + }, + { + internalType: "uint16", + name: "observationIndex", + type: "uint16", + }, + { + internalType: "uint16", + name: "observationCardinality", + type: "uint16", + }, + { + internalType: "uint16", + name: "observationCardinalityNext", + type: "uint16", + }, + { + internalType: "uint8", + name: "feeProtocol", + type: "uint8", + }, + { + internalType: "bool", + name: "unlocked", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "int16", + name: "wordPosition", + type: "int16", + }, + ], + name: "tickBitmap", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "int24", + name: "tick", + type: "int24", + }, + ], + name: "ticks", + outputs: [ + { + internalType: "uint128", + name: "liquidityGross", + type: "uint128", + }, + { + internalType: "int128", + name: "liquidityNet", + type: "int128", + }, + { + internalType: "uint256", + name: "feeGrowthOutside0X128", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeGrowthOutside1X128", + type: "uint256", + }, + { + internalType: "int56", + name: "tickCumulativeOutside", + type: "int56", + }, + { + internalType: "uint160", + name: "secondsPerLiquidityOutsideX128", + type: "uint160", + }, + { + internalType: "uint32", + name: "secondsOutside", + type: "uint32", + }, + { + internalType: "bool", + name: "initialized", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class IUniswapV3PoolState__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3PoolStateInterface { + return new utils.Interface(_abi) as IUniswapV3PoolStateInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV3PoolState { + return new Contract(address, _abi, signerOrProvider) as IUniswapV3PoolState; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IUniswapV3Pool__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3Pool__factory.ts new file mode 100644 index 0000000..5dad6e8 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3Pool__factory.ts @@ -0,0 +1,1007 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV3Pool, + IUniswapV3PoolInterface, +} from "../IUniswapV3Pool"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + indexed: true, + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + indexed: false, + internalType: "uint128", + name: "amount", + type: "uint128", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "Burn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "recipient", + type: "address", + }, + { + indexed: true, + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + indexed: true, + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + indexed: false, + internalType: "uint128", + name: "amount0", + type: "uint128", + }, + { + indexed: false, + internalType: "uint128", + name: "amount1", + type: "uint128", + }, + ], + name: "Collect", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "recipient", + type: "address", + }, + { + indexed: false, + internalType: "uint128", + name: "amount0", + type: "uint128", + }, + { + indexed: false, + internalType: "uint128", + name: "amount1", + type: "uint128", + }, + ], + name: "CollectProtocol", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "recipient", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "paid0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "paid1", + type: "uint256", + }, + ], + name: "Flash", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint16", + name: "observationCardinalityNextOld", + type: "uint16", + }, + { + indexed: false, + internalType: "uint16", + name: "observationCardinalityNextNew", + type: "uint16", + }, + ], + name: "IncreaseObservationCardinalityNext", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + { + indexed: false, + internalType: "int24", + name: "tick", + type: "int24", + }, + ], + name: "Initialize", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + indexed: true, + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + indexed: false, + internalType: "uint128", + name: "amount", + type: "uint128", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "Mint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint8", + name: "feeProtocol0Old", + type: "uint8", + }, + { + indexed: false, + internalType: "uint8", + name: "feeProtocol1Old", + type: "uint8", + }, + { + indexed: false, + internalType: "uint8", + name: "feeProtocol0New", + type: "uint8", + }, + { + indexed: false, + internalType: "uint8", + name: "feeProtocol1New", + type: "uint8", + }, + ], + name: "SetFeeProtocol", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "recipient", + type: "address", + }, + { + indexed: false, + internalType: "int256", + name: "amount0", + type: "int256", + }, + { + indexed: false, + internalType: "int256", + name: "amount1", + type: "int256", + }, + { + indexed: false, + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + { + indexed: false, + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + indexed: false, + internalType: "int24", + name: "tick", + type: "int24", + }, + ], + name: "Swap", + type: "event", + }, + { + inputs: [ + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint128", + name: "amount", + type: "uint128", + }, + ], + name: "burn", + outputs: [ + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint128", + name: "amount0Requested", + type: "uint128", + }, + { + internalType: "uint128", + name: "amount1Requested", + type: "uint128", + }, + ], + name: "collect", + outputs: [ + { + internalType: "uint128", + name: "amount0", + type: "uint128", + }, + { + internalType: "uint128", + name: "amount1", + type: "uint128", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint128", + name: "amount0Requested", + type: "uint128", + }, + { + internalType: "uint128", + name: "amount1Requested", + type: "uint128", + }, + ], + name: "collectProtocol", + outputs: [ + { + internalType: "uint128", + name: "amount0", + type: "uint128", + }, + { + internalType: "uint128", + name: "amount1", + type: "uint128", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "fee", + outputs: [ + { + internalType: "uint24", + name: "", + type: "uint24", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "feeGrowthGlobal0X128", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "feeGrowthGlobal1X128", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "flash", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint16", + name: "observationCardinalityNext", + type: "uint16", + }, + ], + name: "increaseObservationCardinalityNext", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "liquidity", + outputs: [ + { + internalType: "uint128", + name: "", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "maxLiquidityPerTick", + outputs: [ + { + internalType: "uint128", + name: "", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint128", + name: "amount", + type: "uint128", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "mint", + outputs: [ + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "index", + type: "uint256", + }, + ], + name: "observations", + outputs: [ + { + internalType: "uint32", + name: "blockTimestamp", + type: "uint32", + }, + { + internalType: "int56", + name: "tickCumulative", + type: "int56", + }, + { + internalType: "uint160", + name: "secondsPerLiquidityCumulativeX128", + type: "uint160", + }, + { + internalType: "bool", + name: "initialized", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32[]", + name: "secondsAgos", + type: "uint32[]", + }, + ], + name: "observe", + outputs: [ + { + internalType: "int56[]", + name: "tickCumulatives", + type: "int56[]", + }, + { + internalType: "uint160[]", + name: "secondsPerLiquidityCumulativeX128s", + type: "uint160[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "key", + type: "bytes32", + }, + ], + name: "positions", + outputs: [ + { + internalType: "uint128", + name: "_liquidity", + type: "uint128", + }, + { + internalType: "uint256", + name: "feeGrowthInside0LastX128", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeGrowthInside1LastX128", + type: "uint256", + }, + { + internalType: "uint128", + name: "tokensOwed0", + type: "uint128", + }, + { + internalType: "uint128", + name: "tokensOwed1", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "protocolFees", + outputs: [ + { + internalType: "uint128", + name: "token0", + type: "uint128", + }, + { + internalType: "uint128", + name: "token1", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint8", + name: "feeProtocol0", + type: "uint8", + }, + { + internalType: "uint8", + name: "feeProtocol1", + type: "uint8", + }, + ], + name: "setFeeProtocol", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "slot0", + outputs: [ + { + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + { + internalType: "int24", + name: "tick", + type: "int24", + }, + { + internalType: "uint16", + name: "observationIndex", + type: "uint16", + }, + { + internalType: "uint16", + name: "observationCardinality", + type: "uint16", + }, + { + internalType: "uint16", + name: "observationCardinalityNext", + type: "uint16", + }, + { + internalType: "uint8", + name: "feeProtocol", + type: "uint8", + }, + { + internalType: "bool", + name: "unlocked", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + ], + name: "snapshotCumulativesInside", + outputs: [ + { + internalType: "int56", + name: "tickCumulativeInside", + type: "int56", + }, + { + internalType: "uint160", + name: "secondsPerLiquidityInsideX128", + type: "uint160", + }, + { + internalType: "uint32", + name: "secondsInside", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "bool", + name: "zeroForOne", + type: "bool", + }, + { + internalType: "int256", + name: "amountSpecified", + type: "int256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "swap", + outputs: [ + { + internalType: "int256", + name: "amount0", + type: "int256", + }, + { + internalType: "int256", + name: "amount1", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "int16", + name: "wordPosition", + type: "int16", + }, + ], + name: "tickBitmap", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tickSpacing", + outputs: [ + { + internalType: "int24", + name: "", + type: "int24", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "int24", + name: "tick", + type: "int24", + }, + ], + name: "ticks", + outputs: [ + { + internalType: "uint128", + name: "liquidityGross", + type: "uint128", + }, + { + internalType: "int128", + name: "liquidityNet", + type: "int128", + }, + { + internalType: "uint256", + name: "feeGrowthOutside0X128", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeGrowthOutside1X128", + type: "uint256", + }, + { + internalType: "int56", + name: "tickCumulativeOutside", + type: "int56", + }, + { + internalType: "uint160", + name: "secondsPerLiquidityOutsideX128", + type: "uint160", + }, + { + internalType: "uint32", + name: "secondsOutside", + type: "uint32", + }, + { + internalType: "bool", + name: "initialized", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "token0", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "token1", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +export class IUniswapV3Pool__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3PoolInterface { + return new utils.Interface(_abi) as IUniswapV3PoolInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV3Pool { + return new Contract(address, _abi, signerOrProvider) as IUniswapV3Pool; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IUniswapV3SwapCallback__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3SwapCallback__factory.ts new file mode 100644 index 0000000..aa22d96 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IUniswapV3SwapCallback__factory.ts @@ -0,0 +1,53 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { + IUniswapV3SwapCallback, + IUniswapV3SwapCallbackInterface, +} from "../IUniswapV3SwapCallback"; + +const _abi = [ + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IUniswapV3SwapCallback__factory { + static readonly abi = _abi; + static createInterface(): IUniswapV3SwapCallbackInterface { + return new utils.Interface(_abi) as IUniswapV3SwapCallbackInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IUniswapV3SwapCallback { + return new Contract( + address, + _abi, + signerOrProvider + ) as IUniswapV3SwapCallback; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IV3Migrator__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IV3Migrator__factory.ts new file mode 100644 index 0000000..ef178d8 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IV3Migrator__factory.ts @@ -0,0 +1,308 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IV3Migrator, IV3MigratorInterface } from "../IV3Migrator"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + ], + name: "createAndInitializePoolIfNecessary", + outputs: [ + { + internalType: "address", + name: "pool", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + { + internalType: "uint256", + name: "liquidityToMigrate", + type: "uint256", + }, + { + internalType: "uint8", + name: "percentageToMigrate", + type: "uint8", + }, + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "refundAsETH", + type: "bool", + }, + ], + internalType: "struct IV3Migrator.MigrateParams", + name: "params", + type: "tuple", + }, + ], + name: "migrate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "data", + type: "bytes[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "bytes[]", + name: "results", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitAllowed", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitAllowedIfNecessary", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitIfNecessary", + outputs: [], + stateMutability: "payable", + type: "function", + }, +]; + +export class IV3Migrator__factory { + static readonly abi = _abi; + static createInterface(): IV3MigratorInterface { + return new utils.Interface(_abi) as IV3MigratorInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IV3Migrator { + return new Contract(address, _abi, signerOrProvider) as IV3Migrator; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/IWETH9__factory.ts b/src/contrib/smart-order-router/types/v3/factories/IWETH9__factory.ts new file mode 100644 index 0000000..787ae03 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/IWETH9__factory.ts @@ -0,0 +1,223 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from "ethers"; +import { Provider } from "@ethersproject/providers"; +import type { IWETH9, IWETH9Interface } from "../IWETH9"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "deposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "withdraw", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +export class IWETH9__factory { + static readonly abi = _abi; + static createInterface(): IWETH9Interface { + return new utils.Interface(_abi) as IWETH9Interface; + } + static connect(address: string, signerOrProvider: Signer | Provider): IWETH9 { + return new Contract(address, _abi, signerOrProvider) as IWETH9; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/NFTDescriptor__factory.ts b/src/contrib/smart-order-router/types/v3/factories/NFTDescriptor__factory.ts new file mode 100644 index 0000000..ce568ac --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/NFTDescriptor__factory.ts @@ -0,0 +1,144 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { NFTDescriptor, NFTDescriptorInterface } from "../NFTDescriptor"; + +const _abi = [ + { + inputs: [ + { + components: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "address", + name: "quoteTokenAddress", + type: "address", + }, + { + internalType: "address", + name: "baseTokenAddress", + type: "address", + }, + { + internalType: "string", + name: "quoteTokenSymbol", + type: "string", + }, + { + internalType: "string", + name: "baseTokenSymbol", + type: "string", + }, + { + internalType: "uint8", + name: "quoteTokenDecimals", + type: "uint8", + }, + { + internalType: "uint8", + name: "baseTokenDecimals", + type: "uint8", + }, + { + internalType: "bool", + name: "flipRatio", + type: "bool", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "int24", + name: "tickCurrent", + type: "int24", + }, + { + internalType: "int24", + name: "tickSpacing", + type: "int24", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "poolAddress", + type: "address", + }, + ], + internalType: "struct NFTDescriptor.ConstructTokenURIParams", + name: "params", + type: "tuple", + }, + ], + name: "constructTokenURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x615fdd610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063c49917d71461003a575b600080fd5b61004d610048366004613f08565b610063565b60405161005a919061464a565b60405180910390f35b6060600061007e83610079856101800151610170565b6103d1565b905060006100b2610092856060015161048c565b61009f866080015161048c565b6100ad876101a00151610644565b61065a565b905060006101006100c6866000015161068c565b6100d3876080015161048c565b6100e08860200151610644565b6100ed8960400151610644565b6100fb8a6101800151610170565b610767565b905060006101156101108761079d565b6109d8565b90506101458484848460405160200161013194939291906142c5565b6040516020818303038152906040526109d8565b6040516020016101559190614605565b6040516020818303038152906040529450505050505b919050565b606062ffffff82166101b6575060408051808201909152600281527f3025000000000000000000000000000000000000000000000000000000000000602082015261016b565b816000805b62ffffff8316156102065760ff8116156101d7576001016101f0565b600a62ffffff84160662ffffff166000146101f0576001015b600190910190600a62ffffff84160492506101bb565b61020e613e02565b60006005841061030357600060046102298660ff8716610b5d565b1015610236576001610239565b60005b60ff908116915061024d9085166001610b5d565b610258866005610b5d565b106102845761027f61026e60ff86166001610b5d565b610279876005610b5d565b90610b5d565b610287565b60005b60ff8516608085018190529092506102a6906001906102799085610bba565b60ff90811660a085015260808401516102cd9183916102c791166001610b5d565b90610bba565b60ff90811660408501526102f59082906102c7906102ee9088166001610bba565b8590610bba565b60ff16602084015250610373565b61030e600585610b5d565b60026080840181905290915061032c90600190610279908490610bba565b60ff90811660a084015261034e906103479085166002610bba565b8290610bba565b60ff1660208301819052610363906002610b5d565b60ff166040830152600160c08301525b6103926103838560ff8616610b5d565b62ffffff891690600a0a610c14565b8252600160e0830152600484116103aa5760006103b5565b6103b5846004610b5d565b60ff1660608301526103c682610c7b565b979650505050505050565b6060816103e1846060015161048c565b6103ee856080015161048c565b6104278660e00151156104065786610120015161040d565b8661010001515b8761016001518860c001518960a001518a60e00151610ea7565b6104608760e001511561043f57876101000151610446565b8761012001515b8861016001518960c001518a60a001518b60e00151610ea7565b6040516020016104749594939291906143ec565b60405160208183030381529060405290505b92915050565b6060816000805b82518160ff1610156104f057828160ff16815181106104ae57fe5b6020910101517fff0000000000000000000000000000000000000000000000000000000000000016601160f91b14156104e8576001909101905b600101610493565b5060ff81161561063c5760008160ff1683510167ffffffffffffffff8111801561051957600080fd5b506040519080825280601f01601f191660200182016040528015610544576020820181803683370190505b5090506000805b84518160ff16101561062f57848160ff168151811061056657fe5b6020910101517fff0000000000000000000000000000000000000000000000000000000000000016601160f91b14156105e4577f5c000000000000000000000000000000000000000000000000000000000000008383806001019450815181106105cc57fe5b60200101906001600160f81b031916908160001a9053505b848160ff16815181106105f357fe5b602001015160f81c60f81b83838060010194508151811061061057fe5b60200101906001600160f81b031916908160001a90535060010161054b565b508194505050505061016b565b509192915050565b60606104866001600160a01b0383166014610fd1565b6060838383866040516020016106739493929190614179565b60405160208183030381529060405290505b9392505050565b6060816106b157506040805180820190915260018152600360fc1b602082015261016b565b8160005b81156106c957600101600a820491506106b5565b60008167ffffffffffffffff811180156106e257600080fd5b506040519080825280601f01601f19166020018201604052801561070d576020820181803683370190505b50859350905060001982015b831561075e57600a840660300160f81b8282806001900393508151811061073c57fe5b60200101906001600160f81b031916908160001a905350600a84049350610719565b50949350505050565b606083858484896040516020016107829594939291906144ed565b60405160208183030381529060405290505b95945050505050565b60606000604051806102a001604052806107ba8560200151610644565b81526020016107cc8560400151610644565b8152602001846101a001516001600160a01b031681526020018460600151815260200184608001518152602001610807856101800151610170565b815260200184610100015160020b815260200184610120015160020b815260200184610160015160020b8152602001610850856101000151866101200151876101400151611159565b60000b81526020018460000151815260200161087a85602001516001600160a01b03166088611190565b815260200161089785604001516001600160a01b03166088611190565b81526020016108b485602001516001600160a01b03166000611190565b81526020016108d185604001516001600160a01b03166000611190565b81526020016109046108f686602001516001600160a01b03166010886000015161119f565b600060ff60106101126111bf565b815260200161093761092986604001516001600160a01b03166010886000015161119f565b600060ff60646101e46111bf565b815260200161095c6108f686602001516001600160a01b03166020886000015161119f565b815260200161098161092986604001516001600160a01b03166020886000015161119f565b81526020016109a66108f686602001516001600160a01b03166030886000015161119f565b81526020016109cb61092986604001516001600160a01b03166030886000015161119f565b9052905061068581611207565b60608151600014156109f9575060408051602081019091526000815261016b565b600060405180606001604052806040815260200161526b60409139905060006003845160020181610a2657fe5b04600402905060008160200167ffffffffffffffff81118015610a4857600080fd5b506040519080825280601f01601f191660200182016040528015610a73576020820181803683370190505b509050818152600183018586518101602084015b81831015610ae15760039283018051603f601282901c811687015160f890811b8552600c83901c8216880151811b6001860152600683901c8216880151811b60028601529116860151901b93820193909352600401610a87565b600389510660018114610afb5760028114610b2757610b4f565b7f3d3d000000000000000000000000000000000000000000000000000000000000600119830152610b4f565b7f3d000000000000000000000000000000000000000000000000000000000000006000198301525b509398975050505050505050565b600082821115610bb4576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610685576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000808211610c6a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610c7357fe5b049392505050565b60606000826020015160ff1667ffffffffffffffff81118015610c9d57600080fd5b506040519080825280601f01601f191660200182016040528015610cc8576020820181803683370190505b5090508260e0015115610d1e577f250000000000000000000000000000000000000000000000000000000000000081600183510381518110610d0657fe5b60200101906001600160f81b031916908160001a9053505b8260c0015115610d7b57600360fc1b81600081518110610d3a57fe5b60200101906001600160f81b031916908160001a905350601760f91b81600181518110610d6357fe5b60200101906001600160f81b031916908160001a9053505b608083015160ff165b60a0840151610d979060ff166001610bba565b811015610dce57603060f81b828281518110610daf57fe5b60200101906001600160f81b031916908160001a905350600101610d84565b505b825115610486576000836060015160ff16118015610dfb5750826060015160ff16836040015160ff16145b15610e3e5760408301805160ff600019820181169092528251601760f91b92849216908110610e2657fe5b60200101906001600160f81b031916908160001a9053505b8251610e5090603090600a9006610bba565b60f81b818460400180518091906001900360ff1660ff1681525060ff1681518110610e7757fe5b60200101906001600160f81b031916908160001a905350600a8360000181815181610e9e57fe5b04905250610dd0565b606084600281900b620d89e71981610ebb57fe5b050260020b8660020b1415610f15578115610ef1576040518060400160405280600381526020016209a82b60eb1b815250610f0e565b6040518060400160405280600381526020016226a4a760e91b8152505b9050610794565b84600281900b620d89e881610f2657fe5b050260020b8660020b1415610f7c578115610f5c576040518060400160405280600381526020016226a4a760e91b815250610f0e565b5060408051808201909152600381526209a82b60eb1b6020820152610794565b6000610f8787611496565b90508215610fbe57610fbb78010000000000000000000000000000000000000000000000006001600160a01b038316610c14565b90505b610fc98186866117e4565b915050610794565b606060008260020260020167ffffffffffffffff81118015610ff257600080fd5b506040519080825280601f01601f19166020018201604052801561101d576020820181803683370190505b509050600360fc1b8160008151811061103257fe5b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061107757fe5b60200101906001600160f81b031916908160001a905350600160028402015b6001811115611105577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106110ce57fe5b1a60f81b8282815181106110de57fe5b60200101906001600160f81b031916908160001a90535060049490941c9360001901611096565b508315610685576040805162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015290519081900360640190fd5b60008360020b8260020b12156111725750600019610685565b8260020b8260020b131561118857506001610685565b506000610685565b606061068583831c60036119b2565b600060ff826111ae8686611a79565b02816111b657fe5b06949350505050565b60606111fd6111f8846102c76111d5888a610b5d565b6111f26111e2888a610b5d565b6111ec8d8d610b5d565b90611a80565b90610c14565b61068c565b9695505050505050565b606061121282611ad9565b61122e836000015184602001518560600151866080015161218d565b611245846060015185608001518660a001516124b8565b6112638560c001518660e00151876101000151886101200151612608565b61128361127487610140015161068c565b8760c001518860e0015161295b565b6112968761014001518860400151612d8c565b6040516020018087805190602001908083835b602083106112c85780518252601f1990920191602091820191016112a9565b51815160209384036101000a600019018019909216911617905289519190930192890191508083835b602083106113105780518252601f1990920191602091820191016112f1565b51815160209384036101000a600019018019909216911617905288519190930192880191508083835b602083106113585780518252601f199092019160209182019101611339565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106113a05780518252601f199092019160209182019101611381565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b602083106113e85780518252601f1990920191602091820191016113c9565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106114305780518252601f199092019160209182019101611411565b5181516020939093036101000a60001901801990911692169190911790527f3c2f7376673e000000000000000000000000000000000000000000000000000092019182525060408051808303601919018152600690920190529998505050505050505050565b60008060008360020b126114ad578260020b6114b5565b8260020b6000035b9050620d89e881111561150f576040805162461bcd60e51b815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006001821661152357600160801b611535565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611569576ffff97272373d413259a46990580e213a0260801c5b6004821615611588576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156115a7576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156115c6576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156115e5576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611604576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611623576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611643576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611663576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611683576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156116a3576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156116c3576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156116e3576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611703576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611723576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611744576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611764576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611783576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156117a0576b048a170391f7dc42444e8fa20260801c5b60008460020b13156117bb5780600019816117b757fe5b0490505b6401000000008106156117cf5760016117d2565b60005b60ff16602082901c0192505050919050565b606060006117f3858585612e04565b9050600061180b828368010000000000000000612f06565b90506c010000000000000000000000008210801561184c576118458272047bf19673df52e37f2410011d100000000000600160801b612f06565b9150611861565b61185e82620186a0600160801b612f06565b91505b8160005b811561187957600101600a82049150611865565b6000190160008061188a8684612fb5565b91509150801561189b576001909201915b6118a3613e02565b8515611910576118c26118ba602b60ff8716610b5d565b600790610bba565b60ff9081166020830152600260808301526118e8906001906102c790602b908816610b5d565b60ff90811660a0830152602082015161190391166001610b5d565b60ff166040820152611987565b60098460ff16106119595761192960ff85166004610b5d565b60ff166020820181905260056080830152611945906001610b5d565b60ff1660a082015260046040820152611987565b6006602082015260056040820181905261197e906001906102c79060ff881690610b5d565b60ff1660608201525b82815285151560c0820152600060e08201526119a281610c7b565b9c9b505050505050505050505050565b606060008260020267ffffffffffffffff811180156119d057600080fd5b506040519080825280601f01601f1916602001820160405280156119fb576020820181803683370190505b5080519091505b8015611a71577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611a3757fe5b1a60f81b826001830381518110611a4a57fe5b60200101906001600160f81b031916908160001a90535060049490941c9360001901611a02565b509392505050565b1c60ff1690565b600082611a8f57506000610486565b82820282848281611a9c57fe5b04146106855760405162461bcd60e51b815260040180806020018281038252602181526020018061548a6021913960400191505060405180910390fd5b6060611b6e82610160015160405160200180806150446081913960810182805190602001908083835b60208310611b215780518252601f199092019160209182019101611b02565b6001836020036101000a038019825116818451168082178552505050505050905001806813979f1e17b9bb339f60b91b8152506009019150506040516020818303038152906040526109d8565b611cda836101e001518461020001518561018001516040516020018080614b816063913960630184805190602001908083835b60208310611bc05780518252601f199092019160209182019101611ba1565b51815160209384036101000a600019018019909216911617905265272063793d2760d01b919093019081528551600690910192860191508083835b60208310611c1a5780518252601f199092019160209182019101611bfb565b51815160209384036101000a60001901801990921691161790527f2720723d273132307078272066696c6c3d272300000000000000000000000000919093019081528451601390910192850191508083835b60208310611c8b5780518252601f199092019160209182019101611c6c565b6001836020036101000a038019825116818451168082178552505050505050905001806813979f1e17b9bb339f60b91b81525060090193505050506040516020818303038152906040526109d8565b611d2b846102200151856102400151866101a001516040516020018080614b8160639139606301848051906020019080838360208310611bc05780518252601f199092019160209182019101611ba1565b611e4a856102600151866102800151876101c001516040516020018080614b816063913960630184805190602001908083835b60208310611d7d5780518252601f199092019160209182019101611d5e565b51815160209384036101000a600019018019909216911617905265272063793d2760d01b919093019081528551600690910192860191508083835b60208310611dd75780518252601f199092019160209182019101611db8565b51815160001960209485036101000a019081169019919091161790527f2720723d273130307078272066696c6c3d272300000000000000000000000000939091019283528451601390930192908501915080838360208310611c8b5780518252601f199092019160209182019101611c6c565b6101608601516040516020018060566148fc8239605601602c6152ab82397f3c646566733e0000000000000000000000000000000000000000000000000000602c820152603201604b614ff98239604b0186805190602001908083835b60208310611ec65780518252601f199092019160209182019101611ea7565b6001836020036101000a03801982511681845116808217855250505050505090500180615b31603e9139603e0185805190602001908083835b60208310611f1e5780518252601f199092019160209182019101611eff565b6001836020036101000a038019825116818451168082178552505050505050905001806150c5603e9139603e0184805190602001908083835b60208310611f765780518252601f199092019160209182019101611f57565b5181516020939093036101000a60001901801990911692169190911790527f22202f3e00000000000000000000000000000000000000000000000000000000920191825250600401603b6147f48239603b0183805190602001908083835b60208310611ff35780518252601f199092019160209182019101611fd4565b6001836020036101000a03801982511681845116808217855250505050505090500180614c4160999139609901607f6156e28239607f016088615aa982396088016041614cda8239604101605d615c698239605d01607261578e8239607201604961475d823960490160be614f3b823960be016071614a0d8239607101607561562582396075016066614d1b823960660160a46152d7823960a4016085615b6f82397f3c6720636c69702d706174683d2275726c2823636f726e65727329223e00000060858201527f3c726563742066696c6c3d22000000000000000000000000000000000000000060a2820152825160ae9091019060208401908083835b602083106121115780518252601f1990920191602091820191016120f2565b6001836020036101000a03801982511681845116808217855250505050505090500180614d8160319139603101604e6147a68239604e01605d614be48239605d01604161522a8239604101605261510382396052016075615bf48239607501955050505050506040516020818303038152906040529050919050565b60608382858488878a896040516020018080615d4c60259139602501607d614ebe8239607d0189805190602001908083835b602083106121de5780518252601f1990920191602091820191016121bf565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528a516005909101928b0191508083835b602083106122375780518252601f199092019160209182019101612218565b6001836020036101000a03801982511681845116808217855250505050505090500180614db2607991396079016086615cc6823960860187805190602001908083835b602083106122995780518252601f19909201916020918201910161227a565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528851600590910192890191508083835b602083106122f25780518252601f1990920191602091820191016122d3565b6001836020036101000a0380198251168184511680821785525050505050509050018061498860859139608501607b6159178239607b0185805190602001908083835b602083106123545780518252601f199092019160209182019101612335565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528651600590910192870191508083835b602083106123ad5780518252601f19909201916020918201910161238e565b6001836020036101000a03801982511681845116808217855250505050505090500180614ad2605d9139605d0160a3615582823960a30183805190602001908083835b6020831061240f5780518252601f1990920191602091820191016123f0565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528451600590910192850191508083835b602083106124685780518252601f199092019160209182019101612449565b6001836020036101000a038019825116818451168082178552505050505050905001806146d2608b9139608b01985050505050505050506040516020818303038152906040529050949350505050565b6060838383604051602001808061482f60cd913960cd0184805190602001908083835b602083106124fa5780518252601f1990920191602091820191016124db565b6001836020036101000a03801982511681845116808217855250505050505090500180602f60f81b81525060010183805190602001908083835b602083106125535780518252601f199092019160209182019101612534565b6001836020036101000a03801982511681845116808217855250505050505090500180615ef56077913960770182805190602001908083835b602083106125ab5780518252601f19909201916020918201910161258c565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b016073615d958239607301935050505060405160208183030381529060405290509392505050565b606060008260000b60011461269a578260000b6000191461265e576040518060400160405280600581526020017f236e6f6e65000000000000000000000000000000000000000000000000000000815250612695565b6040518060400160405280600a81526020017f23666164652d646f776e000000000000000000000000000000000000000000008152505b6126d1565b6040518060400160405280600881526020017f23666164652d75700000000000000000000000000000000000000000000000008152505b905060006126e0878787613026565b9050818183836126ef88613274565b60405160200180807f3c67206d61736b3d2275726c2800000000000000000000000000000000000000815250600d0186805190602001908083835b602083106127495780518252601f19909201916020918201910161272a565b5181516020939093036101000a600019018019909116921691909117905261149160f11b920191825250600201607761537b823960770185805190602001908083835b602083106127ab5780518252601f19909201916020918201910161278c565b6001836020036101000a03801982511681845116808217855250505050505090500180614a7e60549139605401807f3c2f673e3c67206d61736b3d2275726c2800000000000000000000000000000081525060110184805190602001908083835b6020831061282b5780518252601f19909201916020918201910161280c565b5181516020939093036101000a600019018019909116921691909117905261149160f11b92019182525060020160296153f2823960290160456154458239604501807f3c7061746820643d22000000000000000000000000000000000000000000000081525060090183805190602001908083835b602083106128bf5780518252601f1990920191602091820191016128a0565b6001836020036101000a0380198251168184511680821785525050505050509050018061569a6048913960480182805190602001908083835b602083106129175780518252601f1990920191602091820191016128f8565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405160208183030381529060405292505050949350505050565b6060600061296884613748565b9050600061297584613748565b865183518251929350600490910191600a91820191016000806129988a8a613852565b915091506129ab8560040160070261068c565b8b6129bb8660040160070261068c565b896129cb8760040160070261068c565b8a87876040516020018080615761602d9139602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0189805190602001908083835b60208310612a235780518252601f199092019160209182019101612a04565b6001836020036101000a03801982511681845116808217855250505050505090500180615155603d9139603d01608d615e088239608d0188805190602001908083835b60208310612a855780518252601f199092019160209182019101612a66565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b01602d615fa48239602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0187805190602001908083835b60208310612b085780518252601f199092019160209182019101612ae9565b6001836020036101000a03801982511681845116808217855250505050505090500180615155603d9139603d016093614e2b823960930186805190602001908083835b60208310612b6a5780518252601f199092019160209182019101612b4b565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b01602d614b2f8239602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0185805190602001908083835b60208310612bed5780518252601f199092019160209182019101612bce565b6001836020036101000a03801982511681845116808217855250505050505090500180615155603d9139603d016093615992823960930184805190602001908083835b60208310612c4f5780518252601f199092019160209182019101612c30565b6001836020036101000a03801982511681845116808217855250505050505090500180615f6c603891396038016060615e958239606001606461551e82396064016025614b5c823960250183805190602001908083835b60208310612cc55780518252601f199092019160209182019101612ca6565b51815160209384036101000a60001901801990921691161790527f70782c2000000000000000000000000000000000000000000000000000000000919093019081528451600490910192850191508083835b60208310612d365780518252601f199092019160209182019101612d17565b6001836020036101000a0380198251168184511680821785525050505050509050018061495260369139603601985050505050505050506040516020818303038152906040529750505050505050509392505050565b6060612d988383613c83565b15612dee5760405160200180608d61588a8239608d0160736154ab823960730160716151b98239607101608a6158008239608a016084615a25823960840190506040516020818303038152906040529050610486565b5060408051602081019091526000815292915050565b600080612e1f612e1a60ff868116908616613ce6565b613d4b565b9050600081118015612e32575060128111155b15612ef3578260ff168460ff161115612e9c57612e66612e53826002610c14565b6001600160a01b03871690600a0a611a80565b91506002810660011415612e9757612e94827003298b075b4b6a5240945790619b37fd4a600160801b612f06565b91505b612eee565b612ebd612eaa826002610c14565b6001600160a01b03871690600a0a610c14565b91506002810660011415612eee57612eeb82600160801b7003298b075b4b6a5240945790619b37fd4a612f06565b91505b611a71565b50506001600160a01b0390921692915050565b6000808060001985870986860292508281109083900303905080612f3c5760008411612f3157600080fd5b508290049050610685565b808411612f4857600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b600080600060058460ff161115612fdd57612fda8560ff600419870116600a0a610c14565b94505b60006004600a8706119050612ff386600a610c14565b95508015613002578560010195505b85620186a0141561301857600a86049550600191505b5084925090505b9250929050565b606060008260020b85850360020b8161303b57fe5b05905060048160020b13613086576040518060400160405280601a81526020017f4d312031433431203431203130352031303520313435203134350000000000008152509150611a71565b60088160020b136130ce576040518060400160405280601981526020017f4d312031433333203439203937203131332031343520313435000000000000008152509150611a71565b60108160020b13613116576040518060400160405280601981526020017f4d312031433333203537203839203131332031343520313435000000000000008152509150611a71565b60208160020b1361315e576040518060400160405280601981526020017f4d312031433235203635203831203132312031343520313435000000000000008152509150611a71565b60408160020b136131a6576040518060400160405280601981526020017f4d312031433137203733203733203132392031343520313435000000000000008152509150611a71565b60808160020b136131ee576040518060400160405280601881526020017f4d312031433920383120363520313337203134352031343500000000000000008152509150611a71565b6101008160020b13613237576040518060400160405280601a81526020017f4d31203143312038392035372e352031343520313435203134350000000000008152509150611a71565b505060408051808201909152601881527f4d3120314331203937203439203134352031343520313435000000000000000060208201529392505050565b604080518082018252600281527f37330000000000000000000000000000000000000000000000000000000000006020808301919091528251808401845260038082527f313930000000000000000000000000000000000000000000000000000000000082840152845180860186528181527f32313700000000000000000000000000000000000000000000000000000000008185015285518087019096529085527f3333340000000000000000000000000000000000000000000000000000000000928501929092526060939091906001600087900b148061335b57508560000b600019145b15613552578560000b600019146133725781613374565b835b8660000b600019146133865781613388565b835b8760000b6000191461339a578361339c565b855b8860000b600019146133ae57836133b0565b855b60405160200180806b1e31b4b931b6329031bc1e9160a11b815250600c0185805190602001908083835b602083106133f95780518252601f1990920191602091820191016133da565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528651600890910192870191508083835b602083106134555780518252601f199092019160209182019101613436565b6001836020036101000a038019825116818451168082178552505050505050905001806151926027913960270183805190602001908083835b602083106134ad5780518252601f19909201916020918201910161348e565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528451600890910192850191508083835b602083106135095780518252601f1990920191602091820191016134ea565b6001836020036101000a0380198251168184511680821785525050505050509050018061541b602a9139602a01945050505050604051602081830303815290604052945061373f565b8383838360405160200180806b1e31b4b931b6329031bc1e9160a11b815250600c0185805190602001908083835b6020831061359f5780518252601f199092019160209182019101613580565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528651600890910192870191508083835b602083106135fb5780518252601f1990920191602091820191016135dc565b51815160209384036101000a60001901801990921691161790527f70782220723d22347078222066696c6c3d22776869746522202f3e0000000000919093019081526b1e31b4b931b6329031bc1e9160a11b601b8201528551602790910192860191508083835b602083106136815780518252601f199092019160209182019101613662565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528451600890910192850191508083835b602083106136dd5780518252601f1990920191602091820191016136be565b6001836020036101000a038019825116818451168082178552505050505050905001807f70782220723d22347078222066696c6c3d22776869746522202f3e0000000000815250601b0194505050505060405160208183030381529060405294505b50505050919050565b6060600060405180602001604052806000815250905060008360020b121561378e5782600019029250604051806040016040528060018152602001602d60f81b81525090505b8061379b8460020b61068c565b6040516020018083805190602001908083835b602083106137cd5780518252601f1990920191602091820191016137ae565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106138155780518252601f1990920191602091820191016137f6565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050919050565b60608060006002858501810b0590506201e847198160020b12156138ca57604051806040016040528060018152602001600760fb1b8152506040518060400160405280600181526020017f3700000000000000000000000000000000000000000000000000000000000000815250925092505061301f565b620124f7198160020b121561393357604051806040016040528060018152602001600760fb1b8152506040518060400160405280600481526020017f31302e3500000000000000000000000000000000000000000000000000000000815250925092505061301f565b6161a7198160020b121561399b57604051806040016040528060018152602001600760fb1b8152506040518060400160405280600581526020017f31342e3235000000000000000000000000000000000000000000000000000000815250925092505061301f565b611387198160020b1215613a04576040518060400160405280600281526020017f313000000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161062760f31b815250925092505061301f565b60008160020b1215613a6b576040518060400160405280600281526020017f313100000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161323160f01b815250925092505061301f565b6113888160020b1215613aee576040518060400160405280600281526020017f31330000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f3233000000000000000000000000000000000000000000000000000000000000815250925092505061301f565b6161a88160020b1215613b71576040518060400160405280600281526020017f31350000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f3235000000000000000000000000000000000000000000000000000000000000815250925092505061301f565b620124f88160020b1215613bda5760405180604001604052806002815260200161062760f31b8152506040518060400160405280600281526020017f3236000000000000000000000000000000000000000000000000000000000000815250925092505061301f565b6201e8488160020b1215613c285760405180604001604052806002815260200161323160f01b81525060405180604001604052806002815260200161323760f01b815250925092505061301f565b6040518060400160405280600281526020017f323400000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161323760f01b815250925092505061301f565b6040805160208082018590526bffffffffffffffffffffffff19606085901b16828401528251603481840301815260549092019092528051910120600090613cca84613d62565b60020260010160ff1660001981613cdd57fe5b04119392505050565b6000818303818312801590613cfb5750838113155b80613d105750600083128015613d1057508381135b6106855760405162461bcd60e51b8152600401808060200182810382526024815260200180615d716024913960400191505060405180910390fd5b600080821215613d5e5781600003610486565b5090565b6000808211613d7057600080fd5b600160801b8210613d8357608091821c91015b680100000000000000008210613d9b57604091821c91015b6401000000008210613daf57602091821c91015b620100008210613dc157601091821c91015b6101008210613dd257600891821c91015b60108210613de257600491821c91015b60048210613df257600291821c91015b6002821061016b57600101919050565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b80356001600160a01b038116811461016b57600080fd5b8035801515811461016b57600080fd5b8035600281900b811461016b57600080fd5b600082601f830112613e8f578081fd5b813567ffffffffffffffff811115613ea357fe5b613eb6601f8201601f191660200161467d565b818152846020838601011115613eca578283fd5b816020850160208301379081016020019190915292915050565b803562ffffff8116811461016b57600080fd5b803560ff8116811461016b57600080fd5b600060208284031215613f19578081fd5b813567ffffffffffffffff80821115613f30578283fd5b81840191506101c0808387031215613f46578384fd5b613f4f8161467d565b905082358152613f6160208401613e46565b6020820152613f7260408401613e46565b6040820152606083013582811115613f88578485fd5b613f9487828601613e7f565b606083015250608083013582811115613fab578485fd5b613fb787828601613e7f565b608083015250613fc960a08401613ef7565b60a0820152613fda60c08401613ef7565b60c0820152613feb60e08401613e5d565b60e08201526101009150614000828401613e6d565b828201526101209150614014828401613e6d565b828201526101409150614028828401613e6d565b82820152610160915061403c828401613e6d565b828201526101809150614050828401613ee4565b828201526101a09150614064828401613e46565b91810191909152949350505050565b600081516140858185602086016146a1565b9290920192915050565b7fe29aa0efb88f20444953434c41494d45523a204475652064696c6967656e636581527f20697320696d7065726174697665207768656e20617373657373696e6720746860208201527f6973204e46542e204d616b65207375726520746f6b656e20616464726573736560408201527f73206d617463682074686520657870656374656420746f6b656e732c2061732060608201527f746f6b656e2073796d626f6c73206d617920626520696d6974617465642e00006080820152609e0190565b7f5c6e5c6e00000000000000000000000000000000000000000000000000000000815260040190565b60007f54686973204e465420726570726573656e74732061206c69717569646974792082527f706f736974696f6e20696e206120556e69737761702056332000000000000000602083015285516141d7816039850160208a016146a1565b602d60f81b60399184019182015285516141f881603a840160208a016146a1565b7f20706f6f6c2e2000000000000000000000000000000000000000000000000000603a92909101918201527f546865206f776e6572206f662074686973204e46542063616e206d6f6469667960418201527f206f722072656465656d2074686520706f736974696f6e2e5c6e00000000000060618201527f5c6e506f6f6c20416464726573733a2000000000000000000000000000000000607b82015284516142a881608b8401602089016146a1565b612e3760f11b608b92909101918201526103c6608d820185614073565b60007f7b226e616d65223a220000000000000000000000000000000000000000000000825285516142fd816009850160208a016146a1565b7f222c20226465736372697074696f6e223a220000000000000000000000000000600991840191820152855161433a81601b840160208a016146a1565b855191019061435081601b8401602089016146a1565b7f222c2022696d616765223a202200000000000000000000000000000000000000601b92909101918201527f646174613a696d6167652f7376672b786d6c3b6261736536342c000000000000602882015283516143b48160428401602088016146a1565b7f227d000000000000000000000000000000000000000000000000000000000000604292909101918201526044019695505050505050565b60007f556e6973776170202d20000000000000000000000000000000000000000000008252865161442481600a850160208b016146a1565b80830190507f202d20000000000000000000000000000000000000000000000000000000000080600a830152875161446381600d850160208c016146a1565b602f60f81b600d9390910192830152865161448581600e850160208b016146a1565b600e92019182015284516144a08160118401602089016146a1565b7f3c3e0000000000000000000000000000000000000000000000000000000000006011929091019182015283516144de8160138401602088016146a1565b01601301979650505050505050565b60007f20416464726573733a2000000000000000000000000000000000000000000000808352875161452681600a860160208c016146a1565b612e3760f11b600a91850191820152875161454881600c840160208c016146a1565b01600c810191909152855190614565826016830160208a016146a1565b8181019150507f5c6e46656520546965723a200000000000000000000000000000000000000000601682015284516145a48160228401602089016146a1565b7f5c6e546f6b656e2049443a2000000000000000000000000000000000000000006022929091019182015283516145e281602e8401602088016146a1565b6145f86145f3602e83850101614150565b61408f565b9998505050505050505050565b60007f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008252825161463d81601d8501602087016146a1565b91909101601d0192915050565b60006020825282518060208401526146698160408501602087016146a1565b601f01601f19169190910160400192915050565b60405181810167ffffffffffffffff8111828210171561469957fe5b604052919050565b60005b838110156146bc5781810151838201526020016146a4565b838111156146cb576000848401525b5050505056fe203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e3c2f74657874506174683e3c2f746578743e3c73746f70206f66667365743d222e39222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e3c72656374207374796c653d2266696c7465723a2075726c28236631292220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e3c6665496d61676520726573756c743d2270332220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c67206d61736b3d2275726c2823666164652d73796d626f6c29223e3c726563742066696c6c3d226e6f6e652220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22323030707822202f3e203c7465787420793d22373070782220783d2233327078222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d7765696768743d223230302220666f6e742d73697a653d2233367078223e3c7376672077696474683d2232393022206865696768743d22353030222076696577426f783d2230203020323930203530302220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7376672270782c2030707829222063783d22307078222063793d223070782220723d22347078222066696c6c3d227768697465222f3e3c2f673e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e203c2f74657874506174683e3c6d61736b2069643d22666164652d757022206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d2275726c2823677261642d75702922202f3e3c2f6d61736b3e22207374726f6b653d227267626128302c302c302c302e332922207374726f6b652d77696474683d2233327078222066696c6c3d226e6f6e6522207374726f6b652d6c696e656361703d22726f756e6422202f3e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d2233307322203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20343434707829223e3c636972636c65207374796c653d227472616e73666f726d3a7472616e736c6174653364283c7376672077696474683d2732393027206865696768743d27353030272076696577426f783d2730203020323930203530302720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667273e3c636972636c652063783d27203c67207374796c653d2266696c7465723a75726c2823746f702d726567696f6e2d626c7572293b207472616e73666f726d3a7363616c6528312e35293b207472616e73666f726d2d6f726967696e3a63656e74657220746f703b223e22202f3e3c6665426c656e64206d6f64653d226f7665726c61792220696e3d2270302220696e323d22703122202f3e3c6665426c656e64206d6f64653d226578636c7573696f6e2220696e323d22703222202f3e3c6665426c656e64206d6f64653d226f7665726c61792220696e323d2270332220726573756c743d22626c656e644f757422202f3e3c6665476175737369616e426c7572203c706174682069643d226d696e696d61702220643d224d3233342034343443323334203435372e393439203234322e323120343633203235332034363322202f3e3c6d61736b2069643d226e6f6e6522206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d22776869746522202f3e3c2f6d61736b3e2220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e4d696e205469636b3a203c2f747370616e3e3c74657874506174682073746172744f66667365743d222d31303025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c6c696e6561724772616469656e742069643d22677261642d646f776e222078313d2230222078323d2231222079313d2230222079323d2231223e3c73746f70206f66667365743d22302e30222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e3c73746f70206f66667365743d22302e39222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e3c66696c7465722069643d226631223e3c6665496d61676520726573756c743d2270302220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c7376672077696474683d2732393027206865696768743d27353030272076696577426f783d2730203020323930203530302720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667273e3c726563742077696474683d27323930707827206865696768743d273530307078272066696c6c3d2723222f3e3c6665496d61676520726573756c743d2270322220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c656c6c697073652063783d22353025222063793d22307078222072783d223138307078222072793d223132307078222066696c6c3d222330303022206f7061636974793d22302e383522202f3e3c2f673e707822206865696768743d2232367078222072783d22387078222072793d22387078222066696c6c3d227267626128302c302c302c302e362922202f3e70782220723d22347078222066696c6c3d22776869746522202f3e3c636972636c652063783d2231312e333437384c32342031324c31342e343334312031322e363532324c32322e333932332031384c31332e373831392031332e373831394c31382032322e333932334c31322e363532322031342e343334314c31322032344c31312e333437382031342e343334314c362032322e33393c726563742066696c6c3d226e6f6e652220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f20786d6c6e733a786c696e6b3d27687474703a2f2f7777772e77332e6f72672f313939392f786c696e6b273e3c6c696e6561724772616469656e742069643d22677261642d73796d626f6c223e3c73746f70206f66667365743d22302e37222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e3c73746f70206f66667365743d222e3935222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e207374796c653d227472616e73666f726d3a7472616e736c61746528373270782c313839707829223e3c7265637420783d222d313670782220793d222d31367078222077696474683d22313830707822206865696768743d223138307078222066696c6c3d226e6f6e6522202f3e3c7061746820643d22207374796c653d227472616e73666f726d3a7472616e736c61746528373270782c313839707829223e70782220723d2232347078222066696c6c3d226e6f6e6522207374726f6b653d22776869746522202f3e3c7265637420783d222d313670782220793d222d31367078222077696474683d22313830707822206865696768743d223138307078222066696c6c3d226e6f6e6522202f3e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f773c673e3c70617468207374796c653d227472616e73666f726d3a7472616e736c617465283670782c367078292220643d224d313220304c31322e3635323220392e35363538374c313820312e363037374c31332e373831392031302e323138314c32322e3339323320364c31342e34333431203c70617468207374726f6b652d6c696e656361703d22726f756e642220643d224d38203943382e30303030342032322e393439342031362e32303939203238203237203238222066696c6c3d226e6f6e6522207374726f6b653d22776869746522202f3e20726570656174436f756e743d22696e646566696e69746522202f3e3c2f74657874506174683e3c74657874506174682073746172744f66667365743d222d353025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c6d61736b2069643d22666164652d646f776e22206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d2275726c2823677261642d646f776e2922202f3e3c2f6d61736b3e22207374726f6b653d2272676261283235352c3235352c3235352c3129222066696c6c3d226e6f6e6522207374726f6b652d6c696e656361703d22726f756e6422202f3e3c2f673e696e3d22626c656e644f75742220737464446576696174696f6e3d22343222202f3e3c2f66696c7465723e203c636c6970506174682069643d22636f726e657273223e3c726563742077696474683d2232393022206865696768743d22353030222072783d223432222072793d22343222202f3e3c2f636c6970506174683e203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20333834707829223e3c6c696e6561724772616469656e742069643d22677261642d7570222078313d2231222078323d2230222079313d2231222079323d2230223e3c73746f70206f66667365743d22302e30222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e32334c31302e323138312031332e373831394c312e363037372031384c392e35363538372031322e363532324c302031324c392e35363538372031312e333437384c312e3630373720364c31302e323138312031302e323138314c3620312e363037374c31312e3334373820392e35363538374c313220305a222066696c6c3d22776869746522202f3e3c67207374796c653d227472616e73666f726d3a7472616e736c6174652832323670782c20333932707829223e3c726563742077696474683d223336707822206865696768743d2233367078222072783d22387078222072793d22387078222066696c6c3d226e6f6e6522207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c74657874506174682073746172744f66667365743d22353025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e4d6178205469636b3a203c2f747370616e3e3c616e696d6174655472616e73666f726d206174747269627574654e616d653d227472616e73666f726d2220747970653d22726f74617465222066726f6d3d22302031382031382220746f3d2233363020313820313822206475723d223130732220726570656174436f756e743d22696e646566696e697465222f3e3c2f673e3c2f673e3c706174682069643d22746578742d706174682d612220643d224d34302031322048323530204132382032382030203020312032373820343020563436302041323820323820302030203120323530203438382048343020413238203238203020302031203132203436302056343020413238203238203020302031203430203132207a22202f3e222f3e3c6665496d61676520726573756c743d2270312220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c6d61736b2069643d22666164652d73796d626f6c22206d61736b436f6e74656e74556e6974733d227573657253706163654f6e557365223e3c726563742077696474683d22323930707822206865696768743d223230307078222066696c6c3d2275726c2823677261642d73796d626f6c2922202f3e3c2f6d61736b3e3c2f646566733e3c7265637420783d22302220793d2230222077696474683d2232393022206865696768743d22353030222072783d223432222072793d223432222066696c6c3d227267626128302c302c302c302922207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c2f673e3c66696c7465722069643d22746f702d726567696f6e2d626c7572223e3c6665476175737369616e426c757220696e3d22536f75726365477261706869632220737464446576696174696f6e3d22323422202f3e3c2f66696c7465723e3c2f74657874506174683e203c74657874506174682073746172744f66667365743d223025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c7465787420746578742d72656e646572696e673d226f7074696d697a655370656564223e5369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f773c7265637420783d2231362220793d223136222077696474683d2232353822206865696768743d22343638222072783d223236222072793d223236222066696c6c3d227267626128302c302c302c302922207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e49443a203c2f747370616e3e3c726563742077696474683d223336707822206865696768743d2233367078222072783d22387078222072793d22387078222066696c6c3d226e6f6e6522207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c2f746578743e3c7465787420793d2231313570782220783d2233327078222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d7765696768743d223230302220666f6e742d73697a653d2233367078223e3c2f746578743e3c2f673e3c67207374796c653d227472616e73666f726d3a7472616e736c6174652832323670782c20343333707829223e203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20343134707829223ea164736f6c6343000706000a"; + +export class NFTDescriptor__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): NFTDescriptor { + return super.attach(address) as NFTDescriptor; + } + connect(signer: Signer): NFTDescriptor__factory { + return super.connect(signer) as NFTDescriptor__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): NFTDescriptorInterface { + return new utils.Interface(_abi) as NFTDescriptorInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): NFTDescriptor { + return new Contract(address, _abi, signerOrProvider) as NFTDescriptor; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/NonfungiblePositionManager__factory.ts b/src/contrib/smart-order-router/types/v3/factories/NonfungiblePositionManager__factory.ts new file mode 100644 index 0000000..1135d67 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/NonfungiblePositionManager__factory.ts @@ -0,0 +1,1297 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + NonfungiblePositionManager, + NonfungiblePositionManagerInterface, +} from "../NonfungiblePositionManager"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factory", + type: "address", + }, + { + internalType: "address", + name: "_WETH9", + type: "address", + }, + { + internalType: "address", + name: "_tokenDescriptor_", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "approved", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "operator", + type: "address", + }, + { + indexed: false, + internalType: "bool", + name: "approved", + type: "bool", + }, + ], + name: "ApprovalForAll", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + indexed: false, + internalType: "address", + name: "recipient", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "Collect", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + indexed: false, + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "DecreaseLiquidity", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + indexed: false, + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "IncreaseLiquidity", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [], + name: "DOMAIN_SEPARATOR", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "PERMIT_TYPEHASH", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "approve", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "burn", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint128", + name: "amount0Max", + type: "uint128", + }, + { + internalType: "uint128", + name: "amount1Max", + type: "uint128", + }, + ], + internalType: "struct INonfungiblePositionManager.CollectParams", + name: "params", + type: "tuple", + }, + ], + name: "collect", + outputs: [ + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + ], + name: "createAndInitializePoolIfNecessary", + outputs: [ + { + internalType: "address", + name: "pool", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + internalType: + "struct INonfungiblePositionManager.DecreaseLiquidityParams", + name: "params", + type: "tuple", + }, + ], + name: "decreaseLiquidity", + outputs: [ + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "getApproved", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount0Desired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Desired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + internalType: + "struct INonfungiblePositionManager.IncreaseLiquidityParams", + name: "params", + type: "tuple", + }, + ], + name: "increaseLiquidity", + outputs: [ + { + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + name: "isApprovedForAll", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint256", + name: "amount0Desired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Desired", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + ], + internalType: "struct INonfungiblePositionManager.MintParams", + name: "params", + type: "tuple", + }, + ], + name: "mint", + outputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "data", + type: "bytes[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "bytes[]", + name: "results", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "ownerOf", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "permit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "positions", + outputs: [ + { + internalType: "uint96", + name: "nonce", + type: "uint96", + }, + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + internalType: "uint256", + name: "feeGrowthInside0LastX128", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeGrowthInside1LastX128", + type: "uint256", + }, + { + internalType: "uint128", + name: "tokensOwed0", + type: "uint128", + }, + { + internalType: "uint128", + name: "tokensOwed1", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "refundETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "bytes", + name: "_data", + type: "bytes", + }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitAllowed", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitAllowedIfNecessary", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitIfNecessary", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "bool", + name: "approved", + type: "bool", + }, + ], + name: "setApprovalForAll", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "index", + type: "uint256", + }, + ], + name: "tokenByIndex", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "uint256", + name: "index", + type: "uint256", + }, + ], + name: "tokenOfOwnerByIndex", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "tokenURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amount0Owed", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Owed", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV3MintCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +]; + +const _bytecode = + "0x610120604052600d80546001600160b01b0319166001176001600160b01b0316600160b01b1790553480156200003457600080fd5b50604051620062e9380380620062e98339810160408190526200005791620002db565b82826040518060400160405280601b81526020017f556e697377617020563320506f736974696f6e73204e46542d563100000000008152506040518060400160405280600a815260200169554e492d56332d504f5360b01b815250604051806040016040528060018152602001603160f81b8152508282620000e66301ffc9a760e01b6200018d60201b60201c565b8151620000fb90600690602085019062000212565b5080516200011190600790602084019062000212565b50620001246380ac58cd60e01b6200018d565b62000136635b5e139f60e01b6200018d565b6200014863780e9d6360e01b6200018d565b50508251602093840120608052805192019190912060a052506001600160601b0319606092831b811660c05290821b811660e05291901b166101005250620003249050565b6001600160e01b03198082161415620001ed576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200024a576000855562000295565b82601f106200026557805160ff191683800117855562000295565b8280016001018555821562000295579182015b828111156200029557825182559160200191906001019062000278565b50620002a3929150620002a7565b5090565b5b80821115620002a35760008155600101620002a8565b80516001600160a01b0381168114620002d657600080fd5b919050565b600080600060608486031215620002f0578283fd5b620002fb84620002be565b92506200030b60208501620002be565b91506200031b60408501620002be565b90509250925092565b60805160a05160c05160601c60e05160601c6101005160601c615f40620003a960003980612a835250806102995280611718528061180e52806118965280613e5d5280613ea35280613f17525080610aa75280610dde5280610ea55280612a1d5280612b235280612e4452806136e15250806114ff5250806114de5250615f406000f3fe6080604052600436106102895760003560e01c80636352211e11610153578063ac9650d8116100cb578063d34879971161007f578063e985e9c511610064578063e985e9c5146106f5578063f3995c6714610715578063fc6f7865146107285761030d565b8063d3487997146106c2578063df2ab5bb146106e25761030d565b8063c2e3140a116100b0578063c2e3140a1461067a578063c45a01551461068d578063c87b56dd146106a25761030d565b8063ac9650d81461063a578063b88d4fde1461065a5761030d565b8063883164561161012257806399fbab881161010757806399fbab88146105cf578063a22cb46514610607578063a4a78f0c146106275761030d565b8063883164561461059757806395d89b41146105ba5761030d565b80636352211e1461052f5780636c0360eb1461054f57806370a08231146105645780637ac2ff7b146105845761030d565b806323b872dd1161020157806342966c68116101b557806349404b7c1161019a57806349404b7c146104e75780634aa4a4fc146104fa5780634f6ccce71461050f5761030d565b806342966c68146104c15780634659a494146104d45761030d565b806330adf81f116101e657806330adf81f146104775780633644e5151461048c57806342842e0e146104a15761030d565b806323b872dd146104375780632f745c59146104575761030d565b80630c49ccbe1161025857806313ead5621161023d57806313ead562146103e057806318160ddd146103f3578063219f5d17146104155761030d565b80630c49ccbe146103b757806312210e8a146103d85761030d565b806301ffc9a71461031257806306fdde0314610348578063081812fc1461036a578063095ea7b3146103975761030d565b3661030d57336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461030b576040805162461bcd60e51b815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b34801561031e57600080fd5b5061033261032d3660046153a6565b61073b565b60405161033f919061591e565b60405180910390f35b34801561035457600080fd5b5061035d610776565b60405161033f9190615971565b34801561037657600080fd5b5061038a6103853660046156b8565b61080c565b60405161033f91906157e2565b3480156103a357600080fd5b5061030b6103b2366004615270565b610868565b6103ca6103c5366004615483565b61093e565b60405161033f929190615b42565b61030b610daa565b61038a6103ee366004615103565b610dbc565b3480156103ff57600080fd5b506104086110c9565b60405161033f9190615929565b610428610423366004615494565b6110da565b60405161033f93929190615afd565b34801561044357600080fd5b5061030b61045236600461515c565b611413565b34801561046357600080fd5b50610408610472366004615270565b61146a565b34801561048357600080fd5b50610408611495565b34801561049857600080fd5b506104086114b9565b3480156104ad57600080fd5b5061030b6104bc36600461515c565b611577565b61030b6104cf3660046156b8565b611592565b61030b6104e23660046152dc565b611661565b61030b6104f53660046156d0565b611714565b34801561050657600080fd5b5061038a611894565b34801561051b57600080fd5b5061040861052a3660046156b8565b6118b8565b34801561053b57600080fd5b5061038a61054a3660046156b8565b6118ce565b34801561055b57600080fd5b5061035d6118f6565b34801561057057600080fd5b5061040861057f3660046150af565b6118fb565b61030b6105923660046152dc565b611963565b6105aa6105a5366004615550565b611e0f565b60405161033f9493929190615b1e565b3480156105c657600080fd5b5061035d612370565b3480156105db57600080fd5b506105ef6105ea3660046156b8565b6123d1565b60405161033f9c9b9a99989796959493929190615b50565b34801561061357600080fd5b5061030b610622366004615243565b612600565b61030b6106353660046152dc565b612723565b61064d610648366004615337565b6127d5565b60405161033f91906158a0565b34801561066657600080fd5b5061030b61067536600461519c565b612915565b61030b6106883660046152dc565b612973565b34801561069957600080fd5b5061038a612a1b565b3480156106ae57600080fd5b5061035d6106bd3660046156b8565b612a3f565b3480156106ce57600080fd5b5061030b6106dd366004615717565b612b0e565b61030b6106f036600461529b565b612b8c565b34801561070157600080fd5b506103326107103660046150cb565b612c6f565b61030b6107233660046152dc565b612c9d565b6103ca61073636600461546c565b612d28565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526020819052604090205460ff165b919050565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108025780601f106107d757610100808354040283529160200191610802565b820191906000526020600020905b8154815290600101906020018083116107e557829003601f168201915b5050505050905090565b600061081782613246565b61083c5760405162461bcd60e51b8152600401610833906159bb565b60405180910390fd5b506000908152600c60205260409020546c0100000000000000000000000090046001600160a01b031690565b6000610873826118ce565b9050806001600160a01b0316836001600160a01b031614156108c65760405162461bcd60e51b8152600401808060200182810382526021815260200180615ee26021913960400191505060405180910390fd5b806001600160a01b03166108d8613253565b6001600160a01b031614806108f457506108f481610710613253565b61092f5760405162461bcd60e51b8152600401808060200182810382526038815260200180615e0c6038913960400191505060405180910390fd5b6109398383613257565b505050565b600080823561094d33826132db565b6109695760405162461bcd60e51b815260040161083390615984565b836080013580610977613377565b11156109ca576040805162461bcd60e51b815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b60006109dc6040870160208801615562565b6001600160801b0316116109ef57600080fd5b84356000908152600c602090815260409182902060018101549092600160801b9091046001600160801b031691610a2a918901908901615562565b6001600160801b0316816001600160801b03161015610a4857600080fd5b60018281015469ffffffffffffffffffff166000908152600b60209081526040808320815160608101835281546001600160a01b039081168252919095015490811692850192909252600160a01b90910462ffffff1690830152610acc7f00000000000000000000000000000000000000000000000000000000000000008361337b565b60018501549091506001600160a01b0382169063a34123a7906a01000000000000000000008104600290810b91600160681b9004900b610b1260408e0160208f01615562565b6040518463ffffffff1660e01b8152600401610b309392919061594b565b6040805180830381600087803b158015610b4957600080fd5b505af1158015610b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8191906156f4565b909850965060408901358810801590610b9e575088606001358710155b610bba5760405162461bcd60e51b815260040161083390615a18565b6001840154600090610bea9030906a01000000000000000000008104600290810b91600160681b9004900b613477565b9050600080836001600160a01b031663514ea4bf846040518263ffffffff1660e01b8152600401610c1b9190615929565b60a06040518083038186803b158015610c3357600080fd5b505afa158015610c47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6b91906155ac565b50509250925050610c9087600201548303876001600160801b0316600160801b6134d1565b6004880180546fffffffffffffffffffffffffffffffff198116928e016001600160801b039182160181169290921790556003880154610cda91908303908816600160801b6134d1565b6004880180546001600160801b03808216938e01600160801b9283900482160116029190911790556002870182905560038701819055610d2060408d0160208e01615562565b86038760010160106101000a8154816001600160801b0302191690836001600160801b031602179055508b600001357f26f6a048ee9138f2c0ce266f322cb99228e8d619ae2bff30c67f8dcf9d2377b48d6020016020810190610d839190615562565b8d8d604051610d9493929190615afd565b60405180910390a2505050505050505050915091565b4715610dba57610dba3347613580565b565b6000836001600160a01b0316856001600160a01b031610610ddc57600080fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631698ee828686866040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018262ffffff168152602001935050505060206040518083038186803b158015610e6757600080fd5b505afa158015610e7b573d6000803e3d6000fd5b505050506040513d6020811015610e9157600080fd5b505190506001600160a01b038116610fe0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a16712958686866040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b031681526020018262ffffff1681526020019350505050602060405180830381600087803b158015610f3057600080fd5b505af1158015610f44573d6000803e3d6000fd5b505050506040513d6020811015610f5a57600080fd5b5051604080517ff637731d0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015291519293509083169163f637731d9160248082019260009290919082900301818387803b158015610fc357600080fd5b505af1158015610fd7573d6000803e3d6000fd5b505050506110c1565b6000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561101b57600080fd5b505afa15801561102f573d6000803e3d6000fd5b505050506040513d60e081101561104557600080fd5b505190506001600160a01b0381166110bf57816001600160a01b031663f637731d846040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156110a657600080fd5b505af11580156110ba573d6000803e3d6000fd5b505050505b505b949350505050565b60006110d56002613689565b905090565b60008060008360a00135806110ed613377565b1115611140576040805162461bcd60e51b815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b84356000908152600c6020908152604080832060018082015469ffffffffffffffffffff81168652600b855283862084516060808201875282546001600160a01b039081168352929094015480831682890190815262ffffff600160a01b9092048216838901908152885161014081018a528451861681529151909416818a01529251168287015230828501526a01000000000000000000008304600290810b810b608080850191909152600160681b909404810b900b60a0830152958c013560c0820152938b013560e0850152908a0135610100840152890135610120830152929061122c90613694565b6001870154939a50919850965091506000906112669030906a01000000000000000000008104600290810b91600160681b9004900b613477565b9050600080836001600160a01b031663514ea4bf846040518263ffffffff1660e01b81526004016112979190615929565b60a06040518083038186803b1580156112af57600080fd5b505afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e791906155ac565b50509250925050611323866002015483038760010160109054906101000a90046001600160801b03166001600160801b0316600160801b6134d1565b6004870180546001600160801b0380821690930183166fffffffffffffffffffffffffffffffff19909116179055600387015460018801546113739291840391600160801b9182900416906134d1565b6004870180546001600160801b03600160801b80830482169094018116840291811691909117909155600288018490556003880183905560018801805483810483168e018316909302929091169190911790556040518b35907f3067048beee31b25b2f1681f88dac838c8bba36af25bfb2b7cf7473a5847e35f906113fd908d908d908d90615afd565b60405180910390a2505050505050509193909250565b61142461141e613253565b826132db565b61145f5760405162461bcd60e51b8152600401808060200182810382526031815260200180615f036031913960400191505060405180910390fd5b6109398383836138cf565b6001600160a01b038216600090815260016020526040812061148c9083613a1b565b90505b92915050565b7f49ecf333e5b8c95c40fdafc95c1ad136e8914a8fb55e9dc8bb01eaa83a2df9ad81565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611526613a27565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b031681526020019550505050505060405160208183030381529060405280519060200120905090565b61093983838360405180602001604052806000815250612915565b8061159d33826132db565b6115b95760405162461bcd60e51b815260040161083390615984565b6000828152600c602052604090206001810154600160801b90046001600160801b03161580156115f4575060048101546001600160801b0316155b801561161257506004810154600160801b90046001600160801b0316155b61162e5760405162461bcd60e51b815260040161083390615a86565b6000838152600c602052604081208181556001810182905560028101829055600381018290556004015561093983613a2b565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e4810183905290516001600160a01b03881691638fcbaf0c9161010480830192600092919082900301818387803b1580156116f457600080fd5b505af1158015611708573d6000803e3d6000fd5b50505050505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561178357600080fd5b505afa158015611797573d6000803e3d6000fd5b505050506040513d60208110156117ad57600080fd5b5051905082811015611806576040805162461bcd60e51b815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b8015610939577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561187257600080fd5b505af1158015611886573d6000803e3d6000fd5b505050506109398282613580565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806118c6600284613af8565b509392505050565b600061148f82604051806060016040528060298152602001615e6e6029913960029190613b16565b606090565b60006001600160a01b0382166119425760405162461bcd60e51b815260040180806020018281038252602a815260200180615e44602a913960400191505060405180910390fd5b6001600160a01b038216600090815260016020526040902061148f90613689565b8361196c613377565b11156119bf576040805162461bcd60e51b815260206004820152600e60248201527f5065726d69742065787069726564000000000000000000000000000000000000604482015290519081900360640190fd5b60006119c96114b9565b7f49ecf333e5b8c95c40fdafc95c1ad136e8914a8fb55e9dc8bb01eaa83a2df9ad88886119f581613b23565b604080516020808201969096526001600160a01b03909416848201526060840192909252608083015260a08083018a90528151808403909101815260c0830182528051908401207f190100000000000000000000000000000000000000000000000000000000000060e084015260e283019490945261010280830194909452805180830390940184526101229091019052815191012090506000611a98876118ce565b9050806001600160a01b0316886001600160a01b03161415611aeb5760405162461bcd60e51b8152600401808060200182810382526027815260200180615d6f6027913960400191505060405180910390fd5b611af481613b62565b15611ccf576040805160208082018790528183018690527fff0000000000000000000000000000000000000000000000000000000000000060f889901b16606083015282516041818403018152606183018085527f1626ba7e0000000000000000000000000000000000000000000000000000000090526065830186815260858401948552815160a585015281516001600160a01b03871695631626ba7e958995919260c59091019185019080838360005b83811015611bbe578181015183820152602001611ba6565b50505050905090810190601f168015611beb5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015611c0957600080fd5b505afa158015611c1d573d6000803e3d6000fd5b505050506040513d6020811015611c3357600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014611cca576040805162461bcd60e51b815260206004820152600c60248201527f556e617574686f72697a65640000000000000000000000000000000000000000604482015290519081900360640190fd5b611dfb565b600060018387878760405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611d2b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611d93576040805162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b816001600160a01b0316816001600160a01b031614611df9576040805162461bcd60e51b815260206004820152600c60248201527f556e617574686f72697a65640000000000000000000000000000000000000000604482015290519081900360640190fd5b505b611e058888613257565b5050505050505050565b60008060008084610140013580611e24613377565b1115611e77576040805162461bcd60e51b815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b604080516101408101909152600090611f439080611e9860208b018b6150af565b6001600160a01b03168152602001896020016020810190611eb991906150af565b6001600160a01b03168152602001611ed760608b0160408c0161569e565b62ffffff168152306020820152604001611ef760808b0160608c016153e6565b60020b8152602001611f0f60a08b0160808c016153e6565b60020b81526020018960a0013581526020018960c0013581526020018960e001358152602001896101000135815250613694565b92975090955093509050611fb7611f6261014089016101208a016150af565b600d80547fffffffffffffffffffff000000000000000000000000000000000000000000008116600175ffffffffffffffffffffffffffffffffffffffffffff92831690810190921617909155975087613b68565b6000611fe230611fcd60808b0160608c016153e6565b611fdd60a08c0160808d016153e6565b613477565b9050600080836001600160a01b031663514ea4bf846040518263ffffffff1660e01b81526004016120139190615929565b60a06040518083038186803b15801561202b57600080fd5b505afa15801561203f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206391906155ac565b5050925092505060006120dc8560405180606001604052808e600001602081019061208e91906150af565b6001600160a01b031681526020018e60200160208101906120af91906150af565b6001600160a01b031681526020018e60400160208101906120d0919061569e565b62ffffff169052613c96565b905060405180610140016040528060006bffffffffffffffffffffffff16815260200160006001600160a01b031681526020018269ffffffffffffffffffff1681526020018c606001602081019061213491906153e6565b60020b815260200161214c60a08e0160808f016153e6565b60020b81526020018a6001600160801b0316815260200184815260200183815260200160006001600160801b0316815260200160006001600160801b0316815250600c60008c815260200190815260200160002060008201518160000160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550602082015181600001600c6101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160006101000a81548169ffffffffffffffffffff021916908369ffffffffffffffffffff160217905550606082015181600101600a6101000a81548162ffffff021916908360020b62ffffff160217905550608082015181600101600d6101000a81548162ffffff021916908360020b62ffffff16021790555060a08201518160010160106101000a8154816001600160801b0302191690836001600160801b0316021790555060c0820151816002015560e082015181600301556101008201518160040160006101000a8154816001600160801b0302191690836001600160801b031602179055506101208201518160040160106101000a8154816001600160801b0302191690836001600160801b03160217905550905050897f3067048beee31b25b2f1681f88dac838c8bba36af25bfb2b7cf7473a5847e35f8a8a8a60405161235b93929190615afd565b60405180910390a25050505050509193509193565b60078054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108025780601f106107d757610100808354040283529160200191610802565b6000818152600c6020908152604080832081516101408101835281546bffffffffffffffffffffffff811682526001600160a01b036c010000000000000000000000009091041693810193909352600181015469ffffffffffffffffffff81169284018390526a01000000000000000000008104600290810b810b810b6060860152600160681b8204810b810b810b60808601526001600160801b03600160801b92839004811660a08701529083015460c0860152600383015460e0860152600490920154808316610100860152041661012083015282918291829182918291829182918291829182918291906124da5760405162461bcd60e51b815260040161083390615a4f565b6000600b6000836040015169ffffffffffffffffffff1669ffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016001820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016001820160149054906101000a900462ffffff1662ffffff1662ffffff1681525050905081600001518260200151826000015183602001518460400151866060015187608001518860a001518960c001518a60e001518b61010001518c61012001519d509d509d509d509d509d509d509d509d509d509d509d50505091939597999b5091939597999b565b612608613253565b6001600160a01b0316826001600160a01b0316141561266e576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b806005600061267b613253565b6001600160a01b0390811682526020808301939093526040918201600090812091871680825291909352912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016921515929092179091556126dd613253565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600019916001600160a01b0389169163dd62ed3e91604480820192602092909190829003018186803b15801561278d57600080fd5b505afa1580156127a1573d6000803e3d6000fd5b505050506040513d60208110156127b757600080fd5b505110156127cd576127cd868686868686611661565b505050505050565b60608167ffffffffffffffff811180156127ee57600080fd5b5060405190808252806020026020018201604052801561282257816020015b606081526020019060019003908161280d5790505b50905060005b8281101561290e576000803086868581811061284057fe5b90506020028101906128529190615bef565b6040516128609291906157d2565b600060405180830381855af49150503d806000811461289b576040519150601f19603f3d011682016040523d82523d6000602084013e6128a0565b606091505b5091509150816128ec576044815110156128b957600080fd5b600481019050808060200190518101906128d39190615402565b60405162461bcd60e51b81526004016108339190615971565b808484815181106128f957fe5b60209081029190910101525050600101612828565b5092915050565b612926612920613253565b836132db565b6129615760405162461bcd60e51b8152600401808060200182810382526031815260200180615f036031913960400191505060405180910390fd5b61296d84848484613de6565b50505050565b604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152336004820152306024820152905186916001600160a01b0389169163dd62ed3e91604480820192602092909190829003018186803b1580156129db57600080fd5b505afa1580156129ef573d6000803e3d6000fd5b505050506040513d6020811015612a0557600080fd5b505110156127cd576127cd868686868686612c9d565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060612a4a82613246565b612a5357600080fd5b6040517fe9dc63750000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e9dc637590612aba9030908690600401615932565b60006040518083038186803b158015612ad257600080fd5b505afa158015612ae6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261148f9190810190615402565b6000612b1c828401846154a5565b9050612b4c7f00000000000000000000000000000000000000000000000000000000000000008260000151613e38565b508415612b67578051516020820151612b6791903388613e5b565b8315612b8557612b8581600001516020015182602001513387613e5b565b5050505050565b6000836001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015612bdb57600080fd5b505afa158015612bef573d6000803e3d6000fd5b505050506040513d6020811015612c0557600080fd5b5051905082811015612c5e576040805162461bcd60e51b815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b801561296d5761296d848383613feb565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c4810183905290516001600160a01b0388169163d505accf9160e480830192600092919082900301818387803b1580156116f457600080fd5b6000808235612d3733826132db565b612d535760405162461bcd60e51b815260040161083390615984565b6000612d656060860160408701615562565b6001600160801b03161180612d9257506000612d876080860160608701615562565b6001600160801b0316115b612d9b57600080fd5b600080612dae60408701602088016150af565b6001600160a01b031614612dd157612dcc60408601602087016150af565b612dd3565b305b85356000908152600c6020908152604080832060018082015469ffffffffffffffffffff168552600b8452828520835160608101855281546001600160a01b039081168252919092015490811694820194909452600160a01b90930462ffffff169183019190915292935090612e697f00000000000000000000000000000000000000000000000000000000000000008361337b565b600484015460018501549192506001600160801b0380821692600160801b92839004821692900416156130865760018501546040517fa34123a70000000000000000000000000000000000000000000000000000000081526001600160a01b0385169163a34123a791612f00916a01000000000000000000008104600290810b92600160681b909204900b9060009060040161594b565b6040805180830381600087803b158015612f1957600080fd5b505af1158015612f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5191906156f4565b5050600185015460009081906001600160a01b0386169063514ea4bf90612f969030906a01000000000000000000008104600290810b91600160681b9004900b613477565b6040518263ffffffff1660e01b8152600401612fb29190615929565b60a06040518083038186803b158015612fca57600080fd5b505afa158015612fde573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061300291906155ac565b5050925092505061303e876002015483038860010160109054906101000a90046001600160801b03166001600160801b0316600160801b6134d1565b84019350613077876003015482038860010160109054906101000a90046001600160801b03166001600160801b0316600160801b6134d1565b60028801929092556003870155015b6000806001600160801b0384166130a360608e0160408f01615562565b6001600160801b0316116130c6576130c160608d0160408e01615562565b6130c8565b835b836001600160801b03168d60600160208101906130e59190615562565b6001600160801b0316116131085761310360808e0160608f01615562565b61310a565b835b60018901546040517f4f1eb3d80000000000000000000000000000000000000000000000000000000081529294509092506001600160a01b03871691634f1eb3d89161317d918c916a01000000000000000000008104600290810b92600160681b909204900b9088908890600401615839565b6040805180830381600087803b15801561319657600080fd5b505af11580156131aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ce919061557e565b6004890180546fffffffffffffffffffffffffffffffff196001600160801b03918216600160801b878a0384160217168689038216179091556040519281169d50169a508c35907f40d0efd1a53d60ecbf40971b9daf7dc90178c3aadc7aab1765632738fa8b8f0190610d94908b9086908690615876565b600061148f60028361417b565b3390565b6000818152600c6020526040902080546bffffffffffffffffffffffff166c010000000000000000000000006001600160a01b0385169081029190911790915581906132a2826118ce565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006132e682613246565b6133215760405162461bcd60e51b815260040180806020018281038252602c815260200180615de0602c913960400191505060405180910390fd5b600061332c836118ce565b9050806001600160a01b0316846001600160a01b031614806133675750836001600160a01b031661335c8461080c565b6001600160a01b0316145b806110c157506110c18185612c6f565b4290565b600081602001516001600160a01b031682600001516001600160a01b0316106133a357600080fd5b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b6bffffffffffffffffffffffff191660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b604080516bffffffffffffffffffffffff19606086901b16602080830191909152600285810b60e890811b60348501529085900b901b60378301528251601a818403018152603a90920190925280519101205b9392505050565b600080806000198587098686029250828110908390030390508061350757600084116134fc57600080fd5b5082900490506134ca565b80841161351357600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106135cc5780518252601f1990920191602091820191016135ad565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461362e576040519150601f19603f3d011682016040523d82523d6000602084013e613633565b606091505b5050905080610939576040805162461bcd60e51b815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600061148f82614187565b6000806000806000604051806060016040528087600001516001600160a01b0316815260200187602001516001600160a01b03168152602001876040015162ffffff1681525090506137067f00000000000000000000000000000000000000000000000000000000000000008261337b565b91506000826001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561374357600080fd5b505afa158015613757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061377b919061560d565b50505050505090506000613792886080015161418b565b905060006137a38960a0015161418b565b90506137ba8383838c60c001518d60e001516144d9565b9750505050816001600160a01b0316633c8a7d8d876060015188608001518960a00151896040518060400160405280888152602001336001600160a01b031681525060405160200161380c9190615abd565b6040516020818303038152906040526040518663ffffffff1660e01b815260040161383b9594939291906157f6565b6040805180830381600087803b15801561385457600080fd5b505af1158015613868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061388c91906156f4565b610100880151919550935084108015906138ab57508561012001518310155b6138c75760405162461bcd60e51b815260040161083390615a18565b509193509193565b826001600160a01b03166138e2826118ce565b6001600160a01b0316146139275760405162461bcd60e51b8152600401808060200182810382526029815260200180615eb96029913960400191505060405180910390fd5b6001600160a01b03821661396c5760405162461bcd60e51b8152600401808060200182810382526024815260200180615d966024913960400191505060405180910390fd5b613977838383610939565b613982600082613257565b6001600160a01b03831660009081526001602052604090206139a4908261459d565b506001600160a01b03821660009081526001602052604090206139c790826145a9565b506139d4600282846145b5565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600061148c83836145cb565b4690565b6000613a36826118ce565b9050613a4481600084610939565b613a4f600083613257565b6000828152600860205260409020546002600019610100600184161502019091160415613a8d576000828152600860205260408120613a8d9161501f565b6001600160a01b0381166000908152600160205260409020613aaf908361459d565b50613abb60028361462f565b5060405182906000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000808080613b07868661463b565b909450925050505b9250929050565b60006110c18484846146b6565b6000908152600c6020526040902080546bffffffffffffffffffffffff19811660016bffffffffffffffffffffffff9283169081019092161790915590565b3b151590565b6001600160a01b038216613bc3576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b613bcc81613246565b15613c1e576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b613c2a60008383610939565b6001600160a01b0382166000908152600160205260409020613c4c90826145a9565b50613c59600282846145b5565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160a01b0382166000908152600a602052604090205469ffffffffffffffffffff168061148f5750600d8054600169ffffffffffffffffffff76010000000000000000000000000000000000000000000080840482168381019092160275ffffffffffffffffffffffffffffffffffffffffffff909316929092179092556001600160a01b038085166000908152600a6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffff000000000000000000001686179055848352600b825291829020865181549085167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617825591870151950180549287015162ffffff16600160a01b027fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff969094169290911691909117939093161790915592915050565b613df18484846138cf565b613dfd84848484614780565b61296d5760405162461bcd60e51b8152600401808060200182810382526032815260200180615d3d6032913960400191505060405180910390fd5b6000613e44838361337b565b9050336001600160a01b0382161461148f57600080fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316148015613e9c5750804710155b15613fbe577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015613efc57600080fd5b505af1158015613f10573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015613f8c57600080fd5b505af1158015613fa0573d6000803e3d6000fd5b505050506040513d6020811015613fb657600080fd5b5061296d9050565b6001600160a01b038316301415613fdf57613fda848383613feb565b61296d565b61296d8484848461495c565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b602083106140955780518252601f199092019160209182019101614076565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146140f7576040519150601f19603f3d011682016040523d82523d6000602084013e6140fc565b606091505b509150915081801561412a57508051158061412a575080806020019051602081101561412757600080fd5b50515b612b85576040805162461bcd60e51b815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600061148c8383614af4565b5490565b60008060008360020b126141a2578260020b6141aa565b8260020b6000035b9050620d89e8811115614204576040805162461bcd60e51b815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006001821661421857600160801b61422a565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561425e576ffff97272373d413259a46990580e213a0260801c5b600482161561427d576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561429c576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156142bb576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156142da576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156142f9576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615614318576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615614338576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615614358576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615614378576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615614398576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156143b8576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156143d8576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156143f8576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615614418576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615614439576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615614459576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615614478576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615614495576b048a170391f7dc42444e8fa20260801c5b60008460020b13156144b05780600019816144ac57fe5b0490505b6401000000008106156144c45760016144c7565b60005b60ff16602082901c0192505050919050565b6000836001600160a01b0316856001600160a01b031611156144f9579293925b846001600160a01b0316866001600160a01b0316116145245761451d858585614b0c565b9050614594565b836001600160a01b0316866001600160a01b0316101561458657600061454b878686614b0c565b9050600061455a878986614b78565b9050806001600160801b0316826001600160801b03161061457b578061457d565b815b92505050614594565b614591858584614b78565b90505b95945050505050565b600061148c8383614bbe565b600061148c8383614c84565b60006110c184846001600160a01b038516614cce565b8154600090821061460d5760405162461bcd60e51b8152600401808060200182810382526022815260200180615d1b6022913960400191505060405180910390fd5b82600001828154811061461c57fe5b9060005260206000200154905092915050565b600061148c8383614d65565b81546000908190831061467f5760405162461bcd60e51b8152600401808060200182810382526022815260200180615e976022913960400191505060405180910390fd5b600084600001848154811061469057fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600082815260018401602052604081205482816147515760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156147165781810151838201526020016146fe565b50505050905090810190601f1680156147435780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061476457fe5b9060005260206000209060020201600101549150509392505050565b6000614794846001600160a01b0316613b62565b6147a0575060016110c1565b60006148f17f150b7a02000000000000000000000000000000000000000000000000000000006147ce613253565b88878760405160240180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561483557818101518382015260200161481d565b50505050905090810190601f1680156148625780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001615d3d603291396001600160a01b0388169190614e39565b9050600081806020019051602081101561490a57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001492505050949350505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b60208310614a0e5780518252601f1990920191602091820191016149ef565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614a70576040519150601f19603f3d011682016040523d82523d6000602084013e614a75565b606091505b5091509150818015614aa3575080511580614aa35750808060200190516020811015614aa057600080fd5b50515b6127cd576040805162461bcd60e51b815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60009081526001919091016020526040902054151590565b6000826001600160a01b0316846001600160a01b03161115614b2c579192915b6000614b58856001600160a01b0316856001600160a01b03166c010000000000000000000000006134d1565b9050614594614b7384838888036001600160a01b03166134d1565b614e48565b6000826001600160a01b0316846001600160a01b03161115614b98579192915b6110c1614b73836c010000000000000000000000008787036001600160a01b03166134d1565b60008181526001830160205260408120548015614c7a5783546000198083019190810190600090879083908110614bf157fe5b9060005260206000200154905080876000018481548110614c0e57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080614c3e57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061148f565b600091505061148f565b6000614c908383614af4565b614cc65750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561148f565b50600061148f565b600082815260018401602052604081205480614d335750506040805180820182528381526020808201848152865460018181018955600089815284812095516002909302909501918255915190820155865486845281880190925292909120556134ca565b82856000016001830381548110614d4657fe5b90600052602060002090600202016001018190555060009150506134ca565b60008181526001830160205260408120548015614c7a5783546000198083019190810190600090879083908110614d9857fe5b9060005260206000209060020201905080876000018481548110614db857fe5b600091825260208083208454600290930201918255600193840154918401919091558354825289830190526040902090840190558654879080614df757fe5b600082815260208082206002600019909401938402018281556001908101839055929093558881528982019092526040822091909155945061148f9350505050565b60606110c18484600085614e5e565b806001600160801b038116811461077157600080fd5b606082471015614e9f5760405162461bcd60e51b8152600401808060200182810382526026815260200180615dba6026913960400191505060405180910390fd5b614ea885613b62565b614ef9576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310614f375780518252601f199092019160209182019101614f18565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614f99576040519150601f19603f3d011682016040523d82523d6000602084013e614f9e565b606091505b5091509150614fae828286614fb9565b979650505050505050565b60608315614fc85750816134ca565b825115614fd85782518084602001fd5b60405162461bcd60e51b81526020600482018181528451602484015284518593919283926044019190850190808383600083156147165781810151838201526020016146fe565b50805460018160011615610100020316600290046000825580601f106150455750615063565b601f0160209004906000526020600020908101906150639190615066565b50565b5b8082111561507b5760008155600101615067565b5090565b803561077181615cc4565b805161ffff8116811461077157600080fd5b803562ffffff8116811461077157600080fd5b6000602082840312156150c0578081fd5b81356134ca81615cc4565b600080604083850312156150dd578081fd5b82356150e881615cc4565b915060208301356150f881615cc4565b809150509250929050565b60008060008060808587031215615118578182fd5b843561512381615cc4565b9350602085013561513381615cc4565b92506151416040860161509c565b9150606085013561515181615cc4565b939692955090935050565b600080600060608486031215615170578081fd5b833561517b81615cc4565b9250602084013561518b81615cc4565b929592945050506040919091013590565b600080600080608085870312156151b1578182fd5b84356151bc81615cc4565b935060208501356151cc81615cc4565b925060408501359150606085013567ffffffffffffffff8111156151ee578182fd5b8501601f810187136151fe578182fd5b803561521161520c82615c76565b615c52565b818152886020838501011115615225578384fd5b81602084016020830137908101602001929092525092959194509250565b60008060408385031215615255578182fd5b823561526081615cc4565b915060208301356150f881615cd9565b60008060408385031215615282578182fd5b823561528d81615cc4565b946020939093013593505050565b6000806000606084860312156152af578081fd5b83356152ba81615cc4565b92506020840135915060408401356152d181615cc4565b809150509250925092565b60008060008060008060c087890312156152f4578384fd5b86356152ff81615cc4565b95506020870135945060408701359350606087013561531d81615d0b565b9598949750929560808101359460a0909101359350915050565b60008060208385031215615349578182fd5b823567ffffffffffffffff80821115615360578384fd5b818501915085601f830112615373578384fd5b813581811115615381578485fd5b8660208083028501011115615394578485fd5b60209290920196919550909350505050565b6000602082840312156153b7578081fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146134ca578182fd5b6000602082840312156153f7578081fd5b81356134ca81615ce7565b600060208284031215615413578081fd5b815167ffffffffffffffff811115615429578182fd5b8201601f81018413615439578182fd5b805161544761520c82615c76565b81815285602083850101111561545b578384fd5b614594826020830160208601615c98565b60006080828403121561547d578081fd5b50919050565b600060a0828403121561547d578081fd5b600060c0828403121561547d578081fd5b600081830360808112156154b7578182fd5b6040516040810167ffffffffffffffff82821081831117156154d557fe5b8160405260608412156154e6578485fd5b60a08301935081841081851117156154fa57fe5b50826040528435925061550c83615cc4565b91825260208401359161551e83615cc4565b8260608301526155306040860161509c565b608083015281526155436060850161507f565b6020820152949350505050565b6000610160828403121561547d578081fd5b600060208284031215615573578081fd5b81356134ca81615cf6565b60008060408385031215615590578182fd5b825161559b81615cf6565b60208401519092506150f881615cf6565b600080600080600060a086880312156155c3578283fd5b85516155ce81615cf6565b80955050602086015193506040860151925060608601516155ee81615cf6565b60808701519092506155ff81615cf6565b809150509295509295909350565b600080600080600080600060e0888a031215615627578485fd5b875161563281615cc4565b602089015190975061564381615ce7565b95506156516040890161508a565b945061565f6060890161508a565b935061566d6080890161508a565b925060a088015161567d81615d0b565b60c089015190925061568e81615cd9565b8091505092959891949750929550565b6000602082840312156156af578081fd5b61148c8261509c565b6000602082840312156156c9578081fd5b5035919050565b600080604083850312156156e2578182fd5b8235915060208301356150f881615cc4565b60008060408385031215615706578182fd5b505080516020909101519092909150565b6000806000806060858703121561572c578182fd5b8435935060208501359250604085013567ffffffffffffffff80821115615751578384fd5b818701915087601f830112615764578384fd5b813581811115615772578485fd5b886020828501011115615783578485fd5b95989497505060200194505050565b600081518084526157aa816020860160208601615c98565b601f01601f19169290920160200192915050565b60020b9052565b6001600160801b03169052565b6000828483379101908152919050565b6001600160a01b0391909116815260200190565b60006001600160a01b03871682528560020b60208301528460020b60408301526001600160801b038416606083015260a06080830152614fae60a0830184615792565b6001600160a01b03959095168552600293840b60208601529190920b60408401526001600160801b03918216606084015216608082015260a00190565b6001600160a01b039390931683526001600160801b03918216602084015216604082015260600190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015615911577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526158ff858351615792565b945092850192908501906001016158c5565b5092979650505050505050565b901515815260200190565b90815260200190565b6001600160a01b03929092168252602082015260400190565b600293840b81529190920b60208201526001600160801b03909116604082015260600190565b60006020825261148c6020830184615792565b6020808252600c908201527f4e6f7420617070726f7665640000000000000000000000000000000000000000604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201527f697374656e7420746f6b656e0000000000000000000000000000000000000000606082015260800190565b60208082526014908201527f507269636520736c69707061676520636865636b000000000000000000000000604082015260600190565b60208082526010908201527f496e76616c696420746f6b656e20494400000000000000000000000000000000604082015260600190565b6020808252600b908201527f4e6f7420636c6561726564000000000000000000000000000000000000000000604082015260600190565b815180516001600160a01b03908116835260208083015182168185015260409283015162ffffff1692840192909252920151909116606082015260800190565b6001600160801b039390931683526020830191909152604082015260600190565b9384526001600160801b039290921660208401526040830152606082015260800190565b918252602082015260400190565b6bffffffffffffffffffffffff8d1681526001600160a01b038c811660208301528b811660408301528a16606082015262ffffff89166080820152600288900b60a08201526101808101615ba760c08301896157be565b615bb460e08301886157c5565b8561010083015284610120830152615bd06101408301856157c5565b615bde6101608301846157c5565b9d9c50505050505050505050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615c23578283fd5b83018035915067ffffffffffffffff821115615c3d578283fd5b602001915036819003821315613b0f57600080fd5b60405181810167ffffffffffffffff81118282101715615c6e57fe5b604052919050565b600067ffffffffffffffff821115615c8a57fe5b50601f01601f191660200190565b60005b83811015615cb3578181015183820152602001615c9b565b8381111561296d5750506000910152565b6001600160a01b038116811461506357600080fd5b801515811461506357600080fd5b8060020b811461506357600080fd5b6001600160801b038116811461506357600080fd5b60ff8116811461506357600080fdfe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732315065726d69743a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a164736f6c6343000706000a"; + +export class NonfungiblePositionManager__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _factory: string, + _WETH9: string, + _tokenDescriptor_: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _factory, + _WETH9, + _tokenDescriptor_, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _factory: string, + _WETH9: string, + _tokenDescriptor_: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _factory, + _WETH9, + _tokenDescriptor_, + overrides || {} + ); + } + attach(address: string): NonfungiblePositionManager { + return super.attach(address) as NonfungiblePositionManager; + } + connect(signer: Signer): NonfungiblePositionManager__factory { + return super.connect(signer) as NonfungiblePositionManager__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): NonfungiblePositionManagerInterface { + return new utils.Interface(_abi) as NonfungiblePositionManagerInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): NonfungiblePositionManager { + return new Contract( + address, + _abi, + signerOrProvider + ) as NonfungiblePositionManager; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/NonfungibleTokenPositionDescriptor__factory.ts b/src/contrib/smart-order-router/types/v3/factories/NonfungibleTokenPositionDescriptor__factory.ts new file mode 100644 index 0000000..15b9afc --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/NonfungibleTokenPositionDescriptor__factory.ts @@ -0,0 +1,256 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + Signer, + utils, + BytesLike, + Contract, + ContractFactory, + Overrides, +} from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + NonfungibleTokenPositionDescriptor, + NonfungibleTokenPositionDescriptorInterface, +} from "../NonfungibleTokenPositionDescriptor"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_WETH9", + type: "address", + }, + { + internalType: "bytes32", + name: "_nativeCurrencyLabelBytes", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + name: "flipRatio", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "nativeCurrencyLabel", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "nativeCurrencyLabelBytes", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + ], + name: "tokenRatioPriority", + outputs: [ + { + internalType: "int256", + name: "", + type: "int256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "contract INonfungiblePositionManager", + name: "positionManager", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "tokenURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60c060405234801561001057600080fd5b5060405161158038038061158083398101604081905261002f9161004a565b60609190911b6001600160601b03191660805260a052610082565b6000806040838503121561005c578182fd5b82516001600160a01b0381168114610072578283fd5b6020939093015192949293505050565b60805160601c60a0516114bf6100c16000398061028f52806102c35280610377525080610107528061014c528061061a528061066e52506114bf6000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063a18246e211610050578063a18246e2146100d5578063b7af3cdc146100dd578063e9dc6375146100f257610072565b80634aa4a4fc146100775780637e5af771146100955780639d7b0ea8146100b5575b600080fd5b61007f610105565b60405161008c9190611311565b60405180910390f35b6100a86100a3366004611017565b610129565b60405161008c9190611325565b6100c86100c3366004611057565b610148565b60405161008c9190611330565b6100c861028d565b6100e56102b1565b60405161008c9190611339565b6100e5610100366004611057565b6103d7565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006101358383610148565b61013f8584610148565b13949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141561018d5750606319610287565b8160011415610283576001600160a01b03831673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4814156101c4575061012c610287565b6001600160a01b03831673dac17f958d2ee523a2206206994597c13d831ec714156101f1575060c8610287565b6001600160a01b038316736b175474e89094c44da98b954eedeac495271d0f141561021e57506064610287565b6001600160a01b038316738daebade922df735c38c80c7ebd708af50815faa141561024c575060c719610287565b6001600160a01b038316732260fac5e5542a773aa44fbcfedf7c193bc2c599141561027b575061012b19610287565b506000610287565b5060005b92915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060005b60208110801561031657507f000000000000000000000000000000000000000000000000000000000000000081602081106102ed57fe5b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b15610323576001016102b6565b60008167ffffffffffffffff8111801561033c57600080fd5b506040519080825280601f01601f191660200182016040528015610367576020820181803683370190505b50905060005b828110156103d0577f000000000000000000000000000000000000000000000000000000000000000081602081106103a157fe5b1a60f81b8282815181106103b157fe5b60200101906001600160f81b031916908160001a90535060010161036d565b5091505090565b60606000806000806000876001600160a01b03166399fbab88886040518263ffffffff1660e01b815260040161040d9190611330565b6101806040518083038186803b15801561042657600080fd5b505afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e91906111dc565b5050505050965096509650965096505050600061051c896001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156104ad57600080fd5b505afa1580156104c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e59190610ff4565b6040518060600160405280896001600160a01b03168152602001886001600160a01b031681526020018762ffffff168152506108e7565b9050600061052d87876100a36109e3565b90506000811561053d578761053f565b865b90506000821561054f5787610551565b885b90506000846001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561058e57600080fd5b505afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c69190611133565b505050505091505073__$cea9be979eee3d87fb124d6cbb244bb0b5$__63c49917d7604051806101c001604052808f8152602001866001600160a01b03168152602001856001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b03161461065f5761065a876109e7565b610667565b6106676102b1565b81526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316146106b3576106ae866109e7565b6106bb565b6106bb6102b1565b8152602001866001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156106f957600080fd5b505afa15801561070d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073191906111c2565b60ff168152602001856001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561077257600080fd5b505afa158015610786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107aa91906111c2565b60ff16815260200187151581526020018a60020b81526020018960020b81526020018460020b8152602001886001600160a01b031663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561080e57600080fd5b505afa158015610822573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108469190611082565b60020b81526020018b62ffffff168152602001886001600160a01b03168152506040518263ffffffff1660e01b8152600401610882919061134c565b60006040518083038186803b15801561089a57600080fd5b505af41580156108ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108d6919081019061109c565b9d9c50505050505050505050505050565b600081602001516001600160a01b031682600001516001600160a01b03161061090f57600080fd5b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b6bffffffffffffffffffffffff191660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b4690565b60606000610a15837f95d89b4100000000000000000000000000000000000000000000000000000000610a3a565b9050805160001415610a3257610a2a83610c8f565b915050610a35565b90505b919050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000085161781529151815160609360009384936001600160a01b03891693919290918291908083835b60208310610ad35780518252601f199092019160209182019101610ab4565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610b33576040519150601f19603f3d011682016040523d82523d6000602084013e610b38565b606091505b5091509150811580610b4957508051155b15610b67576040518060200160405280600081525092505050610287565b805160201415610b9f576000818060200190516020811015610b8857600080fd5b50519050610b9581610c9c565b9350505050610287565b604081511115610c7757808060200190516020811015610bbe57600080fd5b8101908080516040519392919084640100000000821115610bde57600080fd5b908301906020820185811115610bf357600080fd5b8251640100000000811182820188101715610c0d57600080fd5b82525081516020918201929091019080838360005b83811015610c3a578181015183820152602001610c22565b50505050905090810190601f168015610c675780820380516001836020036101000a031916815260200191505b5060405250505092505050610287565b50506040805160208101909152600081529392505050565b6060610a32826006610ddc565b604080516020808252818301909252606091600091906020820181803683370190505090506000805b6020811015610d3e576000858260208110610cdc57fe5b1a60f81b90507fff00000000000000000000000000000000000000000000000000000000000000811615610d355780848481518110610d1757fe5b60200101906001600160f81b031916908160001a9053506001909201915b50600101610cc5565b5060008167ffffffffffffffff81118015610d5857600080fd5b506040519080825280601f01601f191660200182016040528015610d83576020820181803683370190505b50905060005b82811015610dd357838181518110610d9d57fe5b602001015160f81c60f81b828281518110610db457fe5b60200101906001600160f81b031916908160001a905350600101610d89565b50949350505050565b606060028206158015610def5750600082115b8015610dfc575060288211155b610e6757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f41646472657373537472696e675574696c3a20494e56414c49445f4c454e0000604482015290519081900360640190fd5b60008267ffffffffffffffff81118015610e8057600080fd5b506040519080825280601f01601f191660200182016040528015610eab576020820181803683370190505b5090506001600160a01b03841660005b60028504811015610f4f57600860138290030282901c600f600482901c1660f082168203610ee882610f59565b868560020281518110610ef757fe5b60200101906001600160f81b031916908160001a905350610f1781610f59565b868560020260010181518110610f2957fe5b60200101906001600160f81b031916908160001a9053505060019092019150610ebb9050565b5090949350505050565b6000600a8260ff161015610f7457506030810160f81b610a35565b506037810160f81b610a35565b8051610a358161149a565b8051600281900b8114610a3557600080fd5b80516fffffffffffffffffffffffffffffffff81168114610a3557600080fd5b805161ffff81168114610a3557600080fd5b805162ffffff81168114610a3557600080fd5b805160ff81168114610a3557600080fd5b600060208284031215611005578081fd5b81516110108161149a565b9392505050565b60008060006060848603121561102b578182fd5b83356110368161149a565b925060208401356110468161149a565b929592945050506040919091013590565b60008060408385031215611069578182fd5b82356110748161149a565b946020939093013593505050565b600060208284031215611093578081fd5b61101082610f8c565b6000602082840312156110ad578081fd5b815167ffffffffffffffff808211156110c4578283fd5b818401915084601f8301126110d7578283fd5b8151818111156110e357fe5b604051601f8201601f19168101602001838111828210171561110157fe5b604052818152838201602001871015611118578485fd5b61112982602083016020870161146a565b9695505050505050565b600080600080600080600060e0888a03121561114d578283fd5b87516111588161149a565b965061116660208901610f8c565b955061117460408901610fbe565b945061118260608901610fbe565b935061119060808901610fbe565b925061119e60a08901610fe3565b915060c088015180151581146111b2578182fd5b8091505092959891949750929550565b6000602082840312156111d3578081fd5b61101082610fe3565b6000806000806000806000806000806000806101808d8f0312156111fe578485fd5b8c516bffffffffffffffffffffffff81168114611219578586fd5b9b5061122760208e01610f81565b9a5061123560408e01610f81565b995061124360608e01610f81565b985061125160808e01610fd0565b975061125f60a08e01610f8c565b965061126d60c08e01610f8c565b955061127b60e08e01610f9e565b94506101008d015193506101208d0151925061129a6101408e01610f9e565b91506112a96101608e01610f9e565b90509295989b509295989b509295989b565b6001600160a01b03169052565b15159052565b60020b9052565b600081518084526112ed81602086016020860161146a565b601f01601f19169290920160200192915050565b62ffffff169052565b60ff169052565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b60006020825261101060208301846112d5565b60006020825282516020830152602083015161136b60408401826112bb565b50604083015161137e60608401826112bb565b5060608301516101c080608085015261139b6101e08501836112d5565b91506080850151601f198584030160a08601526113b883826112d5565b92505060a08501516113cd60c086018261130a565b5060c08501516113e060e086018261130a565b5060e08501516101006113f5818701836112c8565b8601519050610120611409868201836112ce565b860151905061014061141d868201836112ce565b8601519050610160611431868201836112ce565b8601519050610180611445868201836112ce565b86015190506101a061145986820183611301565b8601519050610f4f858301826112bb565b60005b8381101561148557818101518382015260200161146d565b83811115611494576000848401525b50505050565b6001600160a01b03811681146114af57600080fd5b5056fea164736f6c6343000706000a"; + +type NonfungibleTokenPositionDescriptorConstructorParams = + | [ + linkLibraryAddresses: NonfungibleTokenPositionDescriptorLibraryAddresses, + signer?: Signer + ] + | ConstructorParameters; + +const isSuperArgs = ( + xs: NonfungibleTokenPositionDescriptorConstructorParams +): xs is ConstructorParameters => { + return ( + typeof xs[0] === "string" || + (Array.isArray as (arg: any) => arg is readonly any[])(xs[0]) || + "_isInterface" in xs[0] + ); +}; + +export class NonfungibleTokenPositionDescriptor__factory extends ContractFactory { + constructor(...args: NonfungibleTokenPositionDescriptorConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + const [linkLibraryAddresses, signer] = args; + super( + _abi, + NonfungibleTokenPositionDescriptor__factory.linkBytecode( + linkLibraryAddresses + ), + signer + ); + } + } + + static linkBytecode( + linkLibraryAddresses: NonfungibleTokenPositionDescriptorLibraryAddresses + ): string { + let linkedBytecode = _bytecode; + + linkedBytecode = linkedBytecode.replace( + new RegExp("__\\$cea9be979eee3d87fb124d6cbb244bb0b5\\$__", "g"), + linkLibraryAddresses[ + "contracts/libraries/NFTDescriptor.sol:NFTDescriptor" + ] + .replace(/^0x/, "") + .toLowerCase() + ); + + return linkedBytecode; + } + + deploy( + _WETH9: string, + _nativeCurrencyLabelBytes: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _WETH9, + _nativeCurrencyLabelBytes, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _WETH9: string, + _nativeCurrencyLabelBytes: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _WETH9, + _nativeCurrencyLabelBytes, + overrides || {} + ); + } + attach(address: string): NonfungibleTokenPositionDescriptor { + return super.attach(address) as NonfungibleTokenPositionDescriptor; + } + connect(signer: Signer): NonfungibleTokenPositionDescriptor__factory { + return super.connect(signer) as NonfungibleTokenPositionDescriptor__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): NonfungibleTokenPositionDescriptorInterface { + return new utils.Interface( + _abi + ) as NonfungibleTokenPositionDescriptorInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): NonfungibleTokenPositionDescriptor { + return new Contract( + address, + _abi, + signerOrProvider + ) as NonfungibleTokenPositionDescriptor; + } +} + +export interface NonfungibleTokenPositionDescriptorLibraryAddresses { + ["contracts/libraries/NFTDescriptor.sol:NFTDescriptor"]: string; +} diff --git a/src/contrib/smart-order-router/types/v3/factories/PairFlash__factory.ts b/src/contrib/smart-order-router/types/v3/factories/PairFlash__factory.ts new file mode 100644 index 0000000..8ea039c --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/PairFlash__factory.ts @@ -0,0 +1,254 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { PairFlash, PairFlashInterface } from "../PairFlash"; + +const _abi = [ + { + inputs: [ + { + internalType: "contract ISwapRouter", + name: "_swapRouter", + type: "address", + }, + { + internalType: "address", + name: "_factory", + type: "address", + }, + { + internalType: "address", + name: "_WETH9", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee1", + type: "uint24", + }, + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + { + internalType: "uint24", + name: "fee2", + type: "uint24", + }, + { + internalType: "uint24", + name: "fee3", + type: "uint24", + }, + ], + internalType: "struct PairFlash.FlashParams", + name: "params", + type: "tuple", + }, + ], + name: "initFlash", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "refundETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "swapRouter", + outputs: [ + { + internalType: "contract ISwapRouter", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "fee0", + type: "uint256", + }, + { + internalType: "uint256", + name: "fee1", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "uniswapV3FlashCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +]; + +const _bytecode = + "0x60e06040523480156200001157600080fd5b5060405162001a9338038062001a9383398101604081905262000034916200005c565b6001600160601b0319606092831b811660805290821b811660a05291901b1660c052620000c8565b60008060006060848603121562000071578283fd5b83516200007e81620000af565b60208501519093506200009181620000af565b6040850151909250620000a481620000af565b809150509250925092565b6001600160a01b0381168114620000c557600080fd5b50565b60805160601c60a05160601c60c05160601c61195a6200013960003980610573528061074b528061077852806108c85280610976525080609c528061038b52806104b5528061054f52806110f0528061115052806111d1525080610267528061059752806106eb525061195a6000f3fe60806040526004361061007f5760003560e01c8063c31c9c071161004e578063c31c9c0714610195578063c45a0155146101aa578063df2ab5bb146101bf578063e9cbafb0146101d25761012a565b806312210e8a1461012f5780632384463b1461013757806349404b7c146101575780634aa4a4fc1461016a5761012a565b3661012a573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461012857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b6101286101f2565b34801561014357600080fd5b5061012861015236600461161f565b610204565b6101286101653660046116d2565b610387565b34801561017657600080fd5b5061017f61054d565b60405161018c9190611781565b60405180910390f35b3480156101a157600080fd5b5061017f610571565b3480156101b657600080fd5b5061017f610595565b6101286101cd3660046114e8565b6105b9565b3480156101de57600080fd5b506101286101ed3660046116fd565b6106d6565b4715610202576102023347610a73565b565b60006040518060600160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015162ffffff168152509050600061028c7f000000000000000000000000000000000000000000000000000000000000000083610bc1565b90508073ffffffffffffffffffffffffffffffffffffffff1663490e6cbc30856060015186608001516040518060c0016040528089606001518152602001896080015181526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018960a0015162ffffff1681526020018960c0015162ffffff1681525060405160200161032291906118bb565b6040516020818303038152906040526040518563ffffffff1660e01b815260040161035094939291906117a2565b600060405180830381600087803b15801561036a57600080fd5b505af115801561037e573d6000803e3d6000fd5b50505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561041057600080fd5b505afa158015610424573d6000803e3d6000fd5b505050506040513d602081101561043a57600080fd5b50519050828110156104ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b8015610548577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561052657600080fd5b505af115801561053a573d6000803e3d6000fd5b505050506105488282610a73565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561062257600080fd5b505afa158015610636573d6000803e3d6000fd5b505050506040513d602081101561064c57600080fd5b50519050828110156106bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b80156106d0576106d0848383610cf7565b50505050565b60006106e482840184611523565b90506107147f00000000000000000000000000000000000000000000000000000000000000008260600151610ed3565b506060810151805160209091015182516000906107319089610f09565b90506000610743856020015189610f09565b9050610774837f00000000000000000000000000000000000000000000000000000000000000008760200151610f19565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663414bf3896040518061010001604052808773ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff168152602001896080015162ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff16815260200142815260200189602001518152602001868152602001600073ffffffffffffffffffffffffffffffffffffffff168152506040518263ffffffff1660e01b815260040161086e919061183f565b602060405180830381600087803b15801561088857600080fd5b505af115801561089c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c091906116ba565b90506108f1857f00000000000000000000000000000000000000000000000000000000000000008860000151610f19565b604080516101008101825273ffffffffffffffffffffffffffffffffffffffff8781168252868116602083015260a08981015162ffffff168385015230606084015242608084015289519083015260c08201859052600060e0830181905292517f414bf3890000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000009091169163414bf389916109ac919060040161183f565b602060405180830381600087803b1580156109c657600080fd5b505af11580156109da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fe91906116ba565b90508315610a1257610a12863033876110ee565b8215610a2457610a24853033866110ee565b83821115610a455760008483039050610a4387308a60400151846110ee565b505b82811115610a665760008382039050610a6486308a60400151846110ee565b505b5050505050505050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310610aea57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610aad565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610b4c576040519150601f19603f3d011682016040523d82523d6000602084013e610b51565b606091505b505090508061054857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610610c0357600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b60208310610dcc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d8f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610e2e576040519150601f19603f3d011682016040523d82523d6000602084013e610e33565b606091505b5091509150818015610e61575080511580610e615750808060200190516020811015610e5e57600080fd5b50515b610ecc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5050505050565b6000610edf8383610bc1565b90503373ffffffffffffffffffffffffffffffffffffffff821614610f0357600080fd5b92915050565b80820182811015610f0357600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b60208310610fee57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fb1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611050576040519150601f19603f3d011682016040523d82523d6000602084013e611055565b606091505b5091509150818015611083575080511580611083575080806020019051602081101561108057600080fd5b50515b610ecc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5341000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156111495750804710155b15611292577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156111b657600080fd5b505af11580156111ca573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561126057600080fd5b505af1158015611274573d6000803e3d6000fd5b505050506040513d602081101561128a57600080fd5b506106d09050565b73ffffffffffffffffffffffffffffffffffffffff83163014156112c0576112bb848383610cf7565b6106d0565b6106d0848484846040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b602083106113a457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611367565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611406576040519150601f19603f3d011682016040523d82523d6000602084013e61140b565b606091505b5091509150818015611439575080511580611439575080806020019051602081101561143657600080fd5b50515b6114a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146114d057600080fd5b919050565b803562ffffff811681146114d057600080fd5b6000806000606084860312156114fc578283fd5b611505846114ac565b92506020840135915061151a604085016114ac565b90509250925092565b6000818303610100811215611536578182fd5b6040805160c0810167ffffffffffffffff828210818311171561155557fe5b81845286358352602087013560208401526115718488016114ac565b8484015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0860112156115a4578586fd5b8351945060608501915084821081831117156115bc57fe5b5082526115cb606086016114ac565b83526115d9608086016114ac565b60208401526115ea60a086016114d5565b8284015282606082015261160060c086016114d5565b608082015261161160e086016114d5565b60a082015295945050505050565b600060e08284031215611630578081fd5b60405160e0810181811067ffffffffffffffff8211171561164d57fe5b604052611659836114ac565b8152611667602084016114ac565b6020820152611678604084016114d5565b6040820152606083013560608201526080830135608082015261169d60a084016114d5565b60a08201526116ae60c084016114d5565b60c08201529392505050565b6000602082840312156116cb578081fd5b5051919050565b600080604083850312156116e4578182fd5b823591506116f4602084016114ac565b90509250929050565b60008060008060608587031215611712578081fd5b8435935060208501359250604085013567ffffffffffffffff80821115611737578283fd5b818701915087601f83011261174a578283fd5b813581811115611758578384fd5b886020828501011115611769578384fd5b95989497505060200194505050565b62ffffff169052565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8616825260208581840152846040840152608060608401528351806080850152825b818110156117f75785810183015185820160a0015282016117db565b81811115611808578360a083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160a0019695505050505050565b60006101008201905073ffffffffffffffffffffffffffffffffffffffff80845116835280602085015116602084015262ffffff60408501511660408401528060608501511660608401526080840151608084015260a084015160a084015260c084015160c08401528060e08501511660e08401525092915050565b6000610100820190508251825260208301516020830152604083015173ffffffffffffffffffffffffffffffffffffffff8082166040850152606085015191508082511660608501528060208301511660808501525062ffffff60408201511660a084015250608083015161193360c0840182611778565b5060a083015161194660e0840182611778565b509291505056fea164736f6c6343000706000a"; + +export class PairFlash__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _swapRouter: string, + _factory: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _swapRouter, + _factory, + _WETH9, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _swapRouter: string, + _factory: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _swapRouter, + _factory, + _WETH9, + overrides || {} + ); + } + attach(address: string): PairFlash { + return super.attach(address) as PairFlash; + } + connect(signer: Signer): PairFlash__factory { + return super.connect(signer) as PairFlash__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): PairFlashInterface { + return new utils.Interface(_abi) as PairFlashInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): PairFlash { + return new Contract(address, _abi, signerOrProvider) as PairFlash; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/QuoterV2__factory.ts b/src/contrib/smart-order-router/types/v3/factories/QuoterV2__factory.ts new file mode 100644 index 0000000..9caf38b --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/QuoterV2__factory.ts @@ -0,0 +1,322 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { QuoterV2, QuoterV2Interface } from "../QuoterV2"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factory", + type: "address", + }, + { + internalType: "address", + name: "_WETH9", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + name: "quoteExactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160[]", + name: "sqrtPriceX96AfterList", + type: "uint160[]", + }, + { + internalType: "uint32[]", + name: "initializedTicksCrossedList", + type: "uint32[]", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IQuoterV2.QuoteExactInputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "quoteExactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceX96After", + type: "uint160", + }, + { + internalType: "uint32", + name: "initializedTicksCrossed", + type: "uint32", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + name: "quoteExactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint160[]", + name: "sqrtPriceX96AfterList", + type: "uint160[]", + }, + { + internalType: "uint32[]", + name: "initializedTicksCrossedList", + type: "uint32[]", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct IQuoterV2.QuoteExactOutputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "quoteExactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceX96After", + type: "uint160", + }, + { + internalType: "uint32", + name: "initializedTicksCrossed", + type: "uint32", + }, + { + internalType: "uint256", + name: "gasEstimate", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60c06040523480156200001157600080fd5b506040516200212c3803806200212c833981016040819052620000349162000070565b6001600160601b0319606092831b8116608052911b1660a052620000a7565b80516001600160a01b03811681146200006b57600080fd5b919050565b6000806040838503121562000083578182fd5b6200008e8362000053565b91506200009e6020840162000053565b90509250929050565b60805160601c60a05160601c612051620000db60003980610321525080610577528061095d5280610b9252506120516000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063c45a01551161005b578063c45a0155146100e6578063c6a5026a146100ee578063cdca175314610101578063fa461e33146101145761007d565b80632f80bb1d146100825780634aa4a4fc146100ae578063bd21704a146100c3575b600080fd5b610095610090366004611b2b565b610129565b6040516100a59493929190611eac565b60405180910390f35b6100b661031f565b6040516100a59190611def565b6100d66100d1366004611c49565b610343565b6040516100a59493929190611f54565b6100b6610575565b6100d66100fc366004611c49565b610599565b61009561010f366004611b2b565b610754565b610127610122366004611b91565b61092c565b005b6000606080600061013986610ae8565b67ffffffffffffffff8111801561014f57600080fd5b50604051908082528060200260200182016040528015610179578160200160208202803683370190505b50925061018586610ae8565b67ffffffffffffffff8111801561019b57600080fd5b506040519080825280602002602001820160405280156101c5578160200160208202803683370190505b50915060005b60008060006101d98a610b17565b92509250925060008060008061025c6040518060a001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018f81526020018762ffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815250610343565b9350935093509350828b898151811061027157fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818a89815181106102b857fe5b63ffffffff90921660209283029190910190910152929b50968201966001909601958b926102e58e610b48565b156102fa576102f38e610b50565b9d5061030a565b8c9b505050505050505050610316565b505050505050506101cb565b92959194509250565b7f000000000000000000000000000000000000000000000000000000000000000081565b60208101518151606083015160009283928392839273ffffffffffffffffffffffffffffffffffffffff808216908416109284926103819290610b8b565b9050866080015173ffffffffffffffffffffffffffffffffffffffff16600014156103af5760408701516000555b60005a90508173ffffffffffffffffffffffffffffffffffffffff1663128acb0830856103df8c60400151610bc9565b6000038c6080015173ffffffffffffffffffffffffffffffffffffffff1660001461040e578c60800151610434565b8761042d5773fffd8963efd1fc6a506488495d951d5263988d25610434565b6401000276a45b8d602001518e606001518f6000015160405160200161045593929190611d89565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401610484959493929190611e10565b6040805180830381600087803b15801561049d57600080fd5b505af19250505080156104eb575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526104e891810190611b6e565b60015b610568573d808015610519576040519150601f19603f3d011682016040523d82523d6000602084013e61051e565b606091505b505a82039450886080015173ffffffffffffffffffffffffffffffffffffffff166000141561054c57600080555b610557818487610bfb565b97509750975097505050505061056e565b50505050505b9193509193565b7f000000000000000000000000000000000000000000000000000000000000000081565b60208101518151606083015160009283928392839273ffffffffffffffffffffffffffffffffffffffff808216908416109284926105d79290610b8b565b905060005a90508173ffffffffffffffffffffffffffffffffffffffff1663128acb0830856106098c60400151610bc9565b60808d015173ffffffffffffffffffffffffffffffffffffffff1615610633578c60800151610659565b876106525773fffd8963efd1fc6a506488495d951d5263988d25610659565b6401000276a45b8d600001518e606001518f6020015160405160200161067a93929190611d89565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016106a9959493929190611e10565b6040805180830381600087803b1580156106c257600080fd5b505af1925050508015610710575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261070d91810190611b6e565b60015b610568573d80801561073e576040519150601f19603f3d011682016040523d82523d6000602084013e610743565b606091505b505a82039450610557818487610bfb565b6000606080600061076486610ae8565b67ffffffffffffffff8111801561077a57600080fd5b506040519080825280602002602001820160405280156107a4578160200160208202803683370190505b5092506107b086610ae8565b67ffffffffffffffff811180156107c657600080fd5b506040519080825280602002602001820160405280156107f0578160200160208202803683370190505b50915060005b60008060006108048a610b17565b9250925092506000806000806108876040518060a001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018f81526020018762ffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815250610599565b9350935093509350828b898151811061089c57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818a89815181106108e357fe5b63ffffffff90921660209283029190910190910152929b50968201966001909601958b926109108e610b48565b156102fa5761091e8e610b50565b9d50505050505050506107f6565b600083138061093b5750600082135b61094457600080fd5b600080600061095284610b17565b9250925092506109847f0000000000000000000000000000000000000000000000000000000000000000848484610ccf565b5060008060008089136109ca578573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610888a6000036109ff565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161089896000035b9250925092506000610a12878787610b8b565b90506000808273ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015610a5d57600080fd5b505afa158015610a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a959190611c6b565b5050505050915091508515610abb57604051848152826020820152816040820152606081fd5b60005415610ad1576000548414610ad157600080fd5b604051858152826020820152816040820152606081fd5b805160177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec909101045b919050565b60008080610b258482610cee565b9250610b32846014610dee565b9050610b3f846017610cee565b91509193909250565b516042111590565b8051606090610b859083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901610ede565b92915050565b6000610bc17f0000000000000000000000000000000000000000000000000000000000000000610bbc8686866110c5565b611142565b949350505050565b60007f80000000000000000000000000000000000000000000000000000000000000008210610bf757600080fd5b5090565b6000806000806000808773ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015610c4a57600080fd5b505afa158015610c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c829190611c6b565b50939650610c9794508d935061127892505050565b91975095509050610cbf73ffffffffffffffffffffffffffffffffffffffff89168383611339565b9350869250505093509350935093565b6000610ce585610ce08686866110c5565b611991565b95945050505050565b600081826014011015610d6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b8160140183511015610dd557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b600081826003011015610e6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b8160030183511015610ed557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b60608182601f011015610f5257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b828284011015610fc357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b8183018451101561103557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b60608215801561105457604051915060008252602082016040526110bc565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561108d578051835260209283019201611075565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6110cd6119fa565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115611105579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161061118457600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b60008060008351606014611318576044845110156112cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c290611e75565b60405180910390fd5b600484019350838060200190518101906112e59190611bdf565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c29190611e62565b8380602001905181019061132c9190611d02565b9250925092509193909250565b60008060008060008060008060088b73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561138d57600080fd5b505afa1580156113a1573d6000803e3d6000fd5b505050506040513d60208110156113b757600080fd5b5051600290810b908c900b816113c957fe5b0560020b901d905060006101008c73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561141c57600080fd5b505afa158015611430573d6000803e3d6000fd5b505050506040513d602081101561144657600080fd5b5051600290810b908d900b8161145857fe5b0560020b8161146357fe5b079050600060088d73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156114b057600080fd5b505afa1580156114c4573d6000803e3d6000fd5b505050506040513d60208110156114da57600080fd5b5051600290810b908d900b816114ec57fe5b0560020b901d905060006101008e73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561153f57600080fd5b505afa158015611553573d6000803e3d6000fd5b505050506040513d602081101561156957600080fd5b5051600290810b908e900b8161157b57fe5b0560020b8161158657fe5b07905060008160ff166001901b8f73ffffffffffffffffffffffffffffffffffffffff16635339c296856040518263ffffffff1660e01b8152600401808260010b815260200191505060206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b5051161180156116a457508d73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561166257600080fd5b505afa158015611676573d6000803e3d6000fd5b505050506040513d602081101561168c57600080fd5b5051600290810b908d900b8161169e57fe5b0760020b155b80156116b557508b60020b8d60020b135b945060008360ff166001901b8f73ffffffffffffffffffffffffffffffffffffffff16635339c296876040518263ffffffff1660e01b8152600401808260010b815260200191505060206040518083038186803b15801561171557600080fd5b505afa158015611729573d6000803e3d6000fd5b505050506040513d602081101561173f57600080fd5b5051161180156117d257508d73ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d60208110156117ba57600080fd5b5051600290810b908e900b816117cc57fe5b0760020b155b80156117e357508b60020b8d60020b125b95508160010b8460010b128061180f57508160010b8460010b14801561180f57508060ff168360ff1611155b1561182557839950829750819850809650611832565b8199508097508398508296505b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff87161b9150505b8560010b8760010b13611969578560010b8760010b14156118a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff858103161c165b6000818c73ffffffffffffffffffffffffffffffffffffffff16635339c2968a6040518263ffffffff1660e01b8152600401808260010b815260200191505060206040518083038186803b1580156118fa57600080fd5b505afa15801561190e573d6000803e3d6000fd5b505050506040513d602081101561192457600080fd5b5051169050611932816119c1565b61ffff16989098019750506001909501947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61185e565b8115611976576001880397505b8215611983576001880397505b505050505050509392505050565b600061199d8383611142565b90503373ffffffffffffffffffffffffffffffffffffffff821614610b8557600080fd5b6000805b8215610b85577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8301909216916001016119c5565b604080516060810182526000808252602082018190529181019190915290565b600082601f830112611a2a578081fd5b8135611a3d611a3882611faf565b611f8b565b818152846020838601011115611a51578283fd5b816020850160208301379081016020019190915292915050565b8051600281900b8114610b1257600080fd5b600060a08284031215611a8e578081fd5b60405160a0810181811067ffffffffffffffff82111715611aab57fe5b6040529050808235611abc8161201f565b81526020830135611acc8161201f565b602082015260408381013590820152606083013562ffffff81168114611af157600080fd5b6060820152611b0260808401611b0e565b60808201525092915050565b8035610b128161201f565b805161ffff81168114610b1257600080fd5b60008060408385031215611b3d578182fd5b823567ffffffffffffffff811115611b53578283fd5b611b5f85828601611a1a565b95602094909401359450505050565b60008060408385031215611b80578182fd5b505080516020909101519092909150565b600080600060608486031215611ba5578081fd5b8335925060208401359150604084013567ffffffffffffffff811115611bc9578182fd5b611bd586828701611a1a565b9150509250925092565b600060208284031215611bf0578081fd5b815167ffffffffffffffff811115611c06578182fd5b8201601f81018413611c16578182fd5b8051611c24611a3882611faf565b818152856020838501011115611c38578384fd5b610ce5826020830160208601611fef565b600060a08284031215611c5a578081fd5b611c648383611a7d565b9392505050565b600080600080600080600060e0888a031215611c85578283fd5b8751611c908161201f565b9650611c9e60208901611a6b565b9550611cac60408901611b19565b9450611cba60608901611b19565b9350611cc860808901611b19565b925060a088015160ff81168114611cdd578283fd5b60c08901519092508015158114611cf2578182fd5b8091505092959891949750929550565b600080600060608486031215611d16578081fd5b835192506020840151611d288161201f565b9150611d3660408501611a6b565b90509250925092565b60008151808452611d57816020860160208601611fef565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a06080830152611e5760a0830184611d3f565b979650505050505050565b600060208252611c646020830184611d3f565b60208082526010908201527f556e6578706563746564206572726f7200000000000000000000000000000000604082015260600190565b600060808201868352602060808185015281875180845260a0860191508289019350845b81811015611f0257845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101611ed0565b505084810360408601528651808252908201925081870190845b81811015611f3e57825163ffffffff1685529383019391830191600101611f1c565b5050505060609290920192909252949350505050565b93845273ffffffffffffffffffffffffffffffffffffffff92909216602084015263ffffffff166040830152606082015260800190565b60405181810167ffffffffffffffff81118282101715611fa757fe5b604052919050565b600067ffffffffffffffff821115611fc357fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b8381101561200a578181015183820152602001611ff2565b83811115612019576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461204157600080fd5b5056fea164736f6c6343000706000a"; + +export class QuoterV2__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _factory: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(_factory, _WETH9, overrides || {}) as Promise; + } + getDeployTransaction( + _factory: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_factory, _WETH9, overrides || {}); + } + attach(address: string): QuoterV2 { + return super.attach(address) as QuoterV2; + } + connect(signer: Signer): QuoterV2__factory { + return super.connect(signer) as QuoterV2__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): QuoterV2Interface { + return new utils.Interface(_abi) as QuoterV2Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): QuoterV2 { + return new Contract(address, _abi, signerOrProvider) as QuoterV2; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/Quoter__factory.ts b/src/contrib/smart-order-router/types/v3/factories/Quoter__factory.ts new file mode 100644 index 0000000..8c59a27 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/Quoter__factory.ts @@ -0,0 +1,245 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { Quoter, QuoterInterface } from "../Quoter"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factory", + type: "address", + }, + { + internalType: "address", + name: "_WETH9", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + name: "quoteExactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + name: "quoteExactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + name: "quoteExactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + name: "quoteExactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60c060405234801561001057600080fd5b506040516112e53803806112e583398101604081905261002f91610069565b6001600160601b0319606092831b8116608052911b1660a05261009b565b80516001600160a01b038116811461006457600080fd5b919050565b6000806040838503121561007b578182fd5b6100848361004d565b91506100926020840161004d565b90509250929050565b60805160601c60a05160601c6112176100ce60003980610342525080610366528061058652806106d552506112176000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063c45a01551161005b578063c45a0155146100d3578063cdca1753146100db578063f7729d43146100ee578063fa461e33146101015761007d565b80632f80bb1d1461008257806330d07f21146100ab5780634aa4a4fc146100be575b600080fd5b610095610090366004610e9e565b610116565b6040516100a29190611148565b60405180910390f35b6100956100b9366004610e30565b61017b565b6100c6610340565b6040516100a29190611084565b6100c6610364565b6100956100e9366004610e9e565b610388565b6100956100fc366004610e30565b6103d6565b61011461010f366004610f04565b610555565b005b60005b600061012484610660565b9050600080600061013487610668565b92509250925061014882848389600061017b565b955083156101605761015987610699565b965061016c565b85945050505050610175565b50505050610119565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff808616878216109083166101a65760008490555b6101b18787876106ce565b73ffffffffffffffffffffffffffffffffffffffff1663128acb0830836101d78861070c565b60000373ffffffffffffffffffffffffffffffffffffffff8816156101fc5787610222565b8561021b5773fffd8963efd1fc6a506488495d951d5263988d25610222565b6401000276a45b8b8b8e6040516020016102379392919061101e565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016102669594939291906110a5565b6040805180830381600087803b15801561027f57600080fd5b505af19250505080156102cd575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526102ca91810190610ee1565b60015b610333573d8080156102fb576040519150601f19603f3d011682016040523d82523d6000602084013e610300565b606091505b5073ffffffffffffffffffffffffffffffffffffffff841661032157600080555b61032a8161073e565b92505050610337565b5050505b95945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005b600061039684610660565b905060008060006103a687610668565b9250925092506103ba8383838960006103d6565b95508315610160576103cb87610699565b96505050505061038b565b600073ffffffffffffffffffffffffffffffffffffffff808616908716106103ff8787876106ce565b73ffffffffffffffffffffffffffffffffffffffff1663128acb0830836104258861070c565b73ffffffffffffffffffffffffffffffffffffffff881615610447578761046d565b856104665773fffd8963efd1fc6a506488495d951d5263988d2561046d565b6401000276a45b8c8b8d6040516020016104829392919061101e565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016104b19594939291906110a5565b6040805180830381600087803b1580156104ca57600080fd5b505af1925050508015610518575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261051591810190610ee1565b60015b610333573d808015610546576040519150601f19603f3d011682016040523d82523d6000602084013e61054b565b606091505b5061032a8161073e565b60008313806105645750600082135b61056d57600080fd5b600080600061057b84610668565b9250925092506105ad7f00000000000000000000000000000000000000000000000000000000000000008484846107ef565b5060008060008089136105f3578573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610888a600003610628565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161089896000035b925092509250821561063f57604051818152602081fd5b6000541561065557600054811461065557600080fd5b604051828152602081fd5b516042111590565b600080806106768482610805565b9250610683846014610905565b9050610690846017610805565b91509193909250565b80516060906101759083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9016109f5565b60006107047f00000000000000000000000000000000000000000000000000000000000000006106ff868686610bdc565b610c59565b949350505050565b60007f8000000000000000000000000000000000000000000000000000000000000000821061073a57600080fd5b5090565b600081516020146107db5760448251101561078e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078590611111565b60405180910390fd5b600482019150818060200190518101906107a89190610f52565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078591906110f7565b818060200190518101906101759190610fbc565b600061033785610800868686610bdc565b610d8f565b60008182601401101561087957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b81601401835110156108ec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b60008182600301101561097957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b81600301835110156109ec57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b60608182601f011015610a6957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b828284011015610ada57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b81830184511015610b4c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b606082158015610b6b5760405191506000825260208201604052610bd3565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610ba4578051835260209283019201610b8c565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b610be4610dbf565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115610c1c579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610610c9b57600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b6000610d9b8383610c59565b90503373ffffffffffffffffffffffffffffffffffffffff82161461017557600080fd5b604080516060810182526000808252602082018190529181019190915290565b600082601f830112610def578081fd5b8135610e02610dfd82611175565b611151565b818152846020838601011115610e16578283fd5b816020850160208301379081016020019190915292915050565b600080600080600060a08688031215610e47578081fd5b8535610e52816111e5565b94506020860135610e62816111e5565b9350604086013562ffffff81168114610e79578182fd5b9250606086013591506080860135610e90816111e5565b809150509295509295909350565b60008060408385031215610eb0578182fd5b823567ffffffffffffffff811115610ec6578283fd5b610ed285828601610ddf565b95602094909401359450505050565b60008060408385031215610ef3578182fd5b505080516020909101519092909150565b600080600060608486031215610f18578283fd5b8335925060208401359150604084013567ffffffffffffffff811115610f3c578182fd5b610f4886828701610ddf565b9150509250925092565b600060208284031215610f63578081fd5b815167ffffffffffffffff811115610f79578182fd5b8201601f81018413610f89578182fd5b8051610f97610dfd82611175565b818152856020838501011115610fab578384fd5b6103378260208301602086016111b5565b600060208284031215610fcd578081fd5b5051919050565b60008151808452610fec8160208601602086016111b5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a060808301526110ec60a0830184610fd4565b979650505050505050565b60006020825261110a6020830184610fd4565b9392505050565b60208082526010908201527f556e6578706563746564206572726f7200000000000000000000000000000000604082015260600190565b90815260200190565b60405181810167ffffffffffffffff8111828210171561116d57fe5b604052919050565b600067ffffffffffffffff82111561118957fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b838110156111d05781810151838201526020016111b8565b838111156111df576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461120757600080fd5b5056fea164736f6c6343000706000a"; + +export class Quoter__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _factory: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(_factory, _WETH9, overrides || {}) as Promise; + } + getDeployTransaction( + _factory: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_factory, _WETH9, overrides || {}); + } + attach(address: string): Quoter { + return super.attach(address) as Quoter; + } + connect(signer: Signer): Quoter__factory { + return super.connect(signer) as Quoter__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): QuoterInterface { + return new utils.Interface(_abi) as QuoterInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): Quoter { + return new Contract(address, _abi, signerOrProvider) as Quoter; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/SwapRouter__factory.ts b/src/contrib/smart-order-router/types/v3/factories/SwapRouter__factory.ts new file mode 100644 index 0000000..1884bd1 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/SwapRouter__factory.ts @@ -0,0 +1,624 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { SwapRouter, SwapRouterInterface } from "../SwapRouter"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factory", + type: "address", + }, + { + internalType: "address", + name: "_WETH9", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + ], + internalType: "struct ISwapRouter.ExactInputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInput", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOutMinimum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct ISwapRouter.ExactInputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactInputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "bytes", + name: "path", + type: "bytes", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + ], + internalType: "struct ISwapRouter.ExactOutputParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutput", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "tokenIn", + type: "address", + }, + { + internalType: "address", + name: "tokenOut", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountOut", + type: "uint256", + }, + { + internalType: "uint256", + name: "amountInMaximum", + type: "uint256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + ], + internalType: "struct ISwapRouter.ExactOutputSingleParams", + name: "params", + type: "tuple", + }, + ], + name: "exactOutputSingle", + outputs: [ + { + internalType: "uint256", + name: "amountIn", + type: "uint256", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "data", + type: "bytes[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "bytes[]", + name: "results", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "refundETH", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitAllowed", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitAllowedIfNecessary", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitIfNecessary", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "sweepToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "sweepTokenWithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "int256", + name: "amount0Delta", + type: "int256", + }, + { + internalType: "int256", + name: "amount1Delta", + type: "int256", + }, + { + internalType: "bytes", + name: "_data", + type: "bytes", + }, + ], + name: "uniswapV3SwapCallback", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + ], + name: "unwrapWETH9", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "amountMinimum", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "feeBips", + type: "uint256", + }, + { + internalType: "address", + name: "feeRecipient", + type: "address", + }, + ], + name: "unwrapWETH9WithFee", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +]; + +const _bytecode = + "0x60c06040526000196000553480156200001757600080fd5b506040516200302f3803806200302f8339810160408190526200003a9162000076565b6001600160601b0319606092831b8116608052911b1660a052620000ad565b80516001600160a01b03811681146200007157600080fd5b919050565b6000806040838503121562000089578182fd5b620000948362000059565b9150620000a46020840162000059565b90509250929050565b60805160601c60a05160601c612f26620001096000398061012f528061058352806106ad5280610747528061078752806108b15280611c435280611ca35280611d24525080610dc6528061140c5280611e265250612f266000f3fe6080604052600436106101125760003560e01c8063c04b8d59116100a5578063df2ab5bb11610074578063f28c049811610059578063f28c0498146102f5578063f3995c6714610308578063fa461e331461031b576101bd565b8063df2ab5bb146102cf578063e0e189a0146102e2576101bd565b8063c04b8d5914610281578063c2e3140a14610294578063c45a0155146102a7578063db3e2198146102bc576101bd565b80634aa4a4fc116100e15780634aa4a4fc146102195780639b2c0a371461023b578063a4a78f0c1461024e578063ac9650d814610261576101bd565b806312210e8a146101c2578063414bf389146101ca5780634659a494146101f357806349404b7c14610206576101bd565b366101bd573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146101bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b6101bb61033b565b6101dd6101d83660046129f8565b61034d565b6040516101ea9190612df1565b60405180910390f35b6101bb610201366004612776565b6104bf565b6101bb610214366004612aff565b61057f565b34801561022557600080fd5b5061022e610745565b6040516101ea9190612c37565b6101bb610249366004612b2e565b610769565b6101bb61025c366004612776565b610981565b61027461026f3660046127d6565b610a56565b6040516101ea9190612caa565b6101dd61028f36600461294d565b610bb0565b6101bb6102a2366004612776565b610d0f565b3480156102b357600080fd5b5061022e610dc4565b6101dd6102ca3660046129f8565b610de8565b6101bb6102dd3660046126d7565b610f78565b6101bb6102f0366004612718565b611095565b6101dd610303366004612a14565b6111fb565b6101bb610316366004612776565b61132f565b34801561032757600080fd5b506101bb610336366004612868565b6113c7565b471561034b5761034b334761150e565b565b600081608001358061035d61165c565b11156103ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b61047060a08401356103e260808601606087016126b4565b6103f3610100870160e088016126b4565b604080518082019091528061040b60208a018a6126b4565b61041b60608b0160408c01612adc565b61042b60408c0160208d016126b4565b60405160200161043d93929190612bc1565b60405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff16815250611660565b91508260c001358210156104b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b090612d72565b60405180910390fd5b50919050565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e48101839052905173ffffffffffffffffffffffffffffffffffffffff881691638fcbaf0c9161010480830192600092919082900301818387803b15801561055f57600080fd5b505af1158015610573573d6000803e3d6000fd5b50505050505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561060857600080fd5b505afa15801561061c573d6000803e3d6000fd5b505050506040513d602081101561063257600080fd5b50519050828110156106a557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b8015610740577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561071e57600080fd5b505af1158015610732573d6000803e3d6000fd5b50505050610740828261150e565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008211801561077a575060648211155b61078357600080fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561080c57600080fd5b505afa158015610820573d6000803e3d6000fd5b505050506040513d602081101561083657600080fd5b50519050848110156108a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b801561097a577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561092257600080fd5b505af1158015610936573d6000803e3d6000fd5b50505050600061271061095285846117e690919063ffffffff16565b8161095957fe5b049050801561096c5761096c838261150e565b6109788582840361150e565b505b5050505050565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015610a1657600080fd5b505afa158015610a2a573d6000803e3d6000fd5b505050506040513d6020811015610a4057600080fd5b50511015610978576109788686868686866104bf565b60608167ffffffffffffffff81118015610a6f57600080fd5b50604051908082528060200260200182016040528015610aa357816020015b6060815260200190600190039081610a8e5790505b50905060005b82811015610ba95760008030868685818110610ac157fe5b9050602002810190610ad39190612dfa565b604051610ae1929190612c27565b600060405180830381855af49150503d8060008114610b1c576040519150601f19603f3d011682016040523d82523d6000602084013e610b21565b606091505b509150915081610b8757604481511015610b3a57600080fd5b60048101905080806020019051810190610b5491906128e3565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b09190612d28565b80848481518110610b9457fe5b60209081029190910101525050600101610aa9565b5092915050565b6000816040015180610bc061165c565b1115610c2d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b335b6000610c3e8560000151611810565b9050610c97856060015182610c57578660200151610c59565b305b60006040518060400160405280610c738b6000015161181c565b81526020018773ffffffffffffffffffffffffffffffffffffffff16815250611660565b60608601528015610cb7578451309250610cb09061182b565b8552610cc4565b8460600151935050610cca565b50610c2f565b8360800151831015610d08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b090612d72565b5050919050565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051869173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015610d8457600080fd5b505afa158015610d98573d6000803e3d6000fd5b505050506040513d6020811015610dae57600080fd5b505110156109785761097886868686868661132f565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000816080013580610df861165c565b1115610e6557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b610f0e60a0840135610e7d60808601606087016126b4565b610e8e610100870160e088016126b4565b6040518060400160405280886020016020810190610eac91906126b4565b610ebc60608b0160408c01612adc565b610ec960208c018c6126b4565b604051602001610edb93929190612bc1565b60405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff16815250611860565b91508260c00135821115610f4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b090612d3b565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600055919050565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610fe157600080fd5b505afa158015610ff5573d6000803e3d6000fd5b505050506040513d602081101561100b57600080fd5b505190508281101561107e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b801561108f5761108f848383611a1c565b50505050565b6000821180156110a6575060648211155b6110af57600080fd5b60008573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561111857600080fd5b505afa15801561112c573d6000803e3d6000fd5b505050506040513d602081101561114257600080fd5b50519050848110156111b557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b80156109785760006127106111ca83866117e6565b816111d157fe5b04905080156111e5576111e5878483611a1c565b6111f28786838503611a1c565b50505050505050565b600081604001358061120b61165c565b111561127857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b6112eb606084013561129060408601602087016126b4565b60408051808201909152600090806112a88980612dfa565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525033602090910152611860565b5060005491508260800135821115610f4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b090612d3b565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c48101839052905173ffffffffffffffffffffffffffffffffffffffff88169163d505accf9160e480830192600092919082900301818387803b15801561055f57600080fd5b60008413806113d65750600083135b6113df57600080fd5b60006113ed82840184612a4c565b905060008060006114018460000151611bf1565b9250925092506114337f0000000000000000000000000000000000000000000000000000000000000000848484611c22565b5060008060008a13611474578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610896114a5565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16108a5b9150915081156114c4576114bf8587602001513384611c41565b610573565b85516114cf90611810565b156114f45785516114df9061182b565b86526114ee8133600089611860565b50610573565b806000819055508394506105738587602001513384611c41565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b6020831061158557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611548565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146115e7576040519150601f19603f3d011682016040523d82523d6000602084013e6115ec565b606091505b505090508061074057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b4290565b600073ffffffffffffffffffffffffffffffffffffffff8416611681573093505b60008060006116938560000151611bf1565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808316908416106000806116c4868686611e1f565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b856116ea8f611e5d565b73ffffffffffffffffffffffffffffffffffffffff8e161561170c578d611732565b8761172b5773fffd8963efd1fc6a506488495d951d5263988d25611732565b6401000276a45b8d6040516020016117439190612da9565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401611772959493929190612c58565b6040805180830381600087803b15801561178b57600080fd5b505af115801561179f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c39190612845565b91509150826117d257816117d4565b805b6000039b9a5050505050505050505050565b6000821580611801575050818102818382816117fe57fe5b04145b61180a57600080fd5b92915050565b8051604211155b919050565b606061180a826000602b611e8f565b805160609061180a9083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901611e8f565b600073ffffffffffffffffffffffffffffffffffffffff8416611881573093505b60008060006118938560000151611bf1565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808416908316106000806118c4858786611e1f565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b856118ea8f611e5d565b60000373ffffffffffffffffffffffffffffffffffffffff8e161561190f578d611935565b8761192e5773fffd8963efd1fc6a506488495d951d5263988d25611935565b6401000276a45b8d6040516020016119469190612da9565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401611975959493929190612c58565b6040805180830381600087803b15801561198e57600080fd5b505af11580156119a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c69190612845565b915091506000836119db5781836000036119e1565b82826000035b909850905073ffffffffffffffffffffffffffffffffffffffff8a16611a0d578b8114611a0d57600080fd5b50505050505050949350505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b60208310611af157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611ab4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611b53576040519150601f19603f3d011682016040523d82523d6000602084013e611b58565b606091505b5091509150818015611b86575080511580611b865750808060200190516020811015611b8357600080fd5b50515b61097a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008080611bff8482612076565b9250611c0c846014612176565b9050611c19846017612076565b91509193909250565b6000611c3885611c33868686612266565b6122e3565b95945050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c9c5750804710155b15611de5577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d0957600080fd5b505af1158015611d1d573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611db357600080fd5b505af1158015611dc7573d6000803e3d6000fd5b505050506040513d6020811015611ddd57600080fd5b5061108f9050565b73ffffffffffffffffffffffffffffffffffffffff8316301415611e1357611e0e848383611a1c565b61108f565b61108f84848484612313565b6000611e557f0000000000000000000000000000000000000000000000000000000000000000611e50868686612266565b6124f0565b949350505050565b60007f80000000000000000000000000000000000000000000000000000000000000008210611e8b57600080fd5b5090565b60608182601f011015611f0357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b828284011015611f7457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b81830184511015611fe657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b606082158015612005576040519150600082526020820160405261206d565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561203e578051835260209283019201612026565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6000818260140110156120ea57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b816014018351101561215d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b6000818260030110156121ea57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b816003018351101561225d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b61226e612626565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156122a6579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b60006122ef83836124f0565b90503373ffffffffffffffffffffffffffffffffffffffff82161461180a57600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b602083106123f057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016123b3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612452576040519150601f19603f3d011682016040523d82523d6000602084013e612457565b606091505b5091509150818015612485575080511580612485575080806020019051602081101561248257600080fd5b50515b61097857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161061253257600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b604080516060810182526000808252602082018190529181019190915290565b803561181781612ef4565b600082601f830112612661578081fd5b813561267461266f82612e88565b612e64565b818152846020838601011115612688578283fd5b816020850160208301379081016020019190915292915050565b600061010082840312156104b9578081fd5b6000602082840312156126c5578081fd5b81356126d081612ef4565b9392505050565b6000806000606084860312156126eb578182fd5b83356126f681612ef4565b925060208401359150604084013561270d81612ef4565b809150509250925092565b600080600080600060a0868803121561272f578081fd5b853561273a81612ef4565b945060208601359350604086013561275181612ef4565b925060608601359150608086013561276881612ef4565b809150509295509295909350565b60008060008060008060c0878903121561278e578081fd5b863561279981612ef4565b95506020870135945060408701359350606087013560ff811681146127bc578182fd5b9598949750929560808101359460a0909101359350915050565b600080602083850312156127e8578182fd5b823567ffffffffffffffff808211156127ff578384fd5b818501915085601f830112612812578384fd5b813581811115612820578485fd5b8660208083028501011115612833578485fd5b60209290920196919550909350505050565b60008060408385031215612857578182fd5b505080516020909101519092909150565b6000806000806060858703121561287d578182fd5b8435935060208501359250604085013567ffffffffffffffff808211156128a2578384fd5b818701915087601f8301126128b5578384fd5b8135818111156128c3578485fd5b8860208285010111156128d4578485fd5b95989497505060200194505050565b6000602082840312156128f4578081fd5b815167ffffffffffffffff81111561290a578182fd5b8201601f8101841361291a578182fd5b805161292861266f82612e88565b81815285602083850101111561293c578384fd5b611c38826020830160208601612ec8565b60006020828403121561295e578081fd5b813567ffffffffffffffff80821115612975578283fd5b9083019060a08286031215612988578283fd5b60405160a08101818110838211171561299d57fe5b6040528235828111156129ae578485fd5b6129ba87828601612651565b8252506129c960208401612646565b602082015260408301356040820152606083013560608201526080830135608082015280935050505092915050565b60006101008284031215612a0a578081fd5b6126d083836126a2565b600060208284031215612a25578081fd5b813567ffffffffffffffff811115612a3b578182fd5b820160a081850312156126d0578182fd5b600060208284031215612a5d578081fd5b813567ffffffffffffffff80821115612a74578283fd5b9083019060408286031215612a87578283fd5b604051604081018181108382111715612a9c57fe5b604052823582811115612aad578485fd5b612ab987828601612651565b82525060208301359250612acc83612ef4565b6020810192909252509392505050565b600060208284031215612aed578081fd5b813562ffffff811681146126d0578182fd5b60008060408385031215612b11578182fd5b823591506020830135612b2381612ef4565b809150509250929050565b60008060008060808587031215612b43578182fd5b843593506020850135612b5581612ef4565b9250604085013591506060850135612b6c81612ef4565b939692955090935050565b60008151808452612b8f816020860160208601612ec8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b6000828483379101908152919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a06080830152612c9f60a0830184612b77565b979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015612d1b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452612d09858351612b77565b94509285019290850190600101612ccf565b5092979650505050505050565b6000602082526126d06020830184612b77565b60208082526012908201527f546f6f206d756368207265717565737465640000000000000000000000000000604082015260600190565b60208082526013908201527f546f6f206c6974746c6520726563656976656400000000000000000000000000604082015260600190565b600060208252825160406020840152612dc56060840182612b77565b905073ffffffffffffffffffffffffffffffffffffffff60208501511660408401528091505092915050565b90815260200190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612e2e578283fd5b83018035915067ffffffffffffffff821115612e48578283fd5b602001915036819003821315612e5d57600080fd5b9250929050565b60405181810167ffffffffffffffff81118282101715612e8057fe5b604052919050565b600067ffffffffffffffff821115612e9c57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015612ee3578181015183820152602001612ecb565b8381111561108f5750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114612f1657600080fd5b5056fea164736f6c6343000706000a"; + +export class SwapRouter__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _factory: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _factory, + _WETH9, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _factory: string, + _WETH9: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_factory, _WETH9, overrides || {}); + } + attach(address: string): SwapRouter { + return super.attach(address) as SwapRouter; + } + connect(signer: Signer): SwapRouter__factory { + return super.connect(signer) as SwapRouter__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): SwapRouterInterface { + return new utils.Interface(_abi) as SwapRouterInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): SwapRouter { + return new Contract(address, _abi, signerOrProvider) as SwapRouter; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/TickLens__factory.ts b/src/contrib/smart-order-router/types/v3/factories/TickLens__factory.ts new file mode 100644 index 0000000..711f7cc --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/TickLens__factory.ts @@ -0,0 +1,94 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { TickLens, TickLensInterface } from "../TickLens"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "pool", + type: "address", + }, + { + internalType: "int16", + name: "tickBitmapIndex", + type: "int16", + }, + ], + name: "getPopulatedTicksInWord", + outputs: [ + { + components: [ + { + internalType: "int24", + name: "tick", + type: "int24", + }, + { + internalType: "int128", + name: "liquidityNet", + type: "int128", + }, + { + internalType: "uint128", + name: "liquidityGross", + type: "uint128", + }, + ], + internalType: "struct ITickLens.PopulatedTick[]", + name: "populatedTicks", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610569806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063351fb47814610030575b600080fd5b61004361003e36600461037c565b610059565b60405161005091906104aa565b60405180910390f35b606060008373ffffffffffffffffffffffffffffffffffffffff16635339c296846040518263ffffffff1660e01b8152600401610096919061051b565b60206040518083038186803b1580156100ae57600080fd5b505afa1580156100c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e69190610492565b90506000805b610100811015610110576001811b831615610108576001909101905b6001016100ec565b5060008573ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561015957600080fd5b505afa15801561016d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019191906103ba565b90508167ffffffffffffffff811180156101aa57600080fd5b506040519080825280602002602001820160405280156101e457816020015b6101d1610328565b8152602001906001900390816101c95790505b50935060005b61010081101561031e576001811b841615610316576040517ff30dba93000000000000000000000000000000000000000000000000000000008152600187900b60020b60081b8201830290600090819073ffffffffffffffffffffffffffffffffffffffff8b169063f30dba9390610266908690600401610529565b6101006040518083038186803b15801561027f57600080fd5b505afa158015610293573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b791906103e2565b5050505050509150915060405180606001604052808460020b815260200182600f0b8152602001836fffffffffffffffffffffffffffffffff168152508887600190039750878151811061030757fe5b60200260200101819052505050505b6001016101ea565b5050505092915050565b604080516060810182526000808252602082018190529181019190915290565b8051801515811461035857600080fd5b919050565b805161035881610537565b805163ffffffff8116811461035857600080fd5b6000806040838503121561038e578182fd5b823561039981610537565b91506020830135600181900b81146103af578182fd5b809150509250929050565b6000602082840312156103cb578081fd5b81518060020b81146103db578182fd5b9392505050565b600080600080600080600080610100898b0312156103fe578384fd5b88516fffffffffffffffffffffffffffffffff8116811461041d578485fd5b80985050602089015180600f0b8114610434578485fd5b80975050604089015195506060890151945060808901518060060b8114610459578485fd5b935061046760a08a0161035d565b925061047560c08a01610368565b915061048360e08a01610348565b90509295985092959890939650565b6000602082840312156104a3578081fd5b5051919050565b602080825282518282018190526000919060409081850190868401855b8281101561050e578151805160020b855286810151600f0b878601528501516fffffffffffffffffffffffffffffffff1685850152606090930192908501906001016104c7565b5091979650505050505050565b60019190910b815260200190565b60029190910b815260200190565b73ffffffffffffffffffffffffffffffffffffffff8116811461055957600080fd5b5056fea164736f6c6343000706000a"; + +export class TickLens__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): TickLens { + return super.attach(address) as TickLens; + } + connect(signer: Signer): TickLens__factory { + return super.connect(signer) as TickLens__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TickLensInterface { + return new utils.Interface(_abi) as TickLensInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): TickLens { + return new Contract(address, _abi, signerOrProvider) as TickLens; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/UniswapInterfaceMulticall__factory.ts b/src/contrib/smart-order-router/types/v3/factories/UniswapInterfaceMulticall__factory.ts new file mode 100644 index 0000000..ed52ff6 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/UniswapInterfaceMulticall__factory.ts @@ -0,0 +1,150 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + UniswapInterfaceMulticall, + UniswapInterfaceMulticallInterface, +} from "../UniswapInterfaceMulticall"; + +const _abi = [ + { + inputs: [], + name: "getCurrentBlockTimestamp", + outputs: [ + { + internalType: "uint256", + name: "timestamp", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + ], + name: "getEthBalance", + outputs: [ + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "uint256", + name: "gasLimit", + type: "uint256", + }, + { + internalType: "bytes", + name: "callData", + type: "bytes", + }, + ], + internalType: "struct UniswapInterfaceMulticall.Call[]", + name: "calls", + type: "tuple[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "uint256", + name: "blockNumber", + type: "uint256", + }, + { + components: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "uint256", + name: "gasUsed", + type: "uint256", + }, + { + internalType: "bytes", + name: "returnData", + type: "bytes", + }, + ], + internalType: "struct UniswapInterfaceMulticall.Result[]", + name: "returnData", + type: "tuple[]", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610567806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630f28c97d146100465780631749e1e3146100645780634d2301cc14610085575b600080fd5b61004e610098565b60405161005b919061041f565b60405180910390f35b6100776100723660046102a7565b61009c565b60405161005b929190610428565b61004e610093366004610286565b610220565b4290565b8051439060609067ffffffffffffffff811180156100b957600080fd5b506040519080825280602002602001820160405280156100f357816020015b6100e061023a565b8152602001906001900390816100d85790505b50905060005b835181101561021a57600080600086848151811061011357fe5b60200260200101516000015187858151811061012b57fe5b60200260200101516020015188868151811061014357fe5b60200260200101516040015192509250925060005a90506000808573ffffffffffffffffffffffffffffffffffffffff1685856040516101839190610403565b60006040518083038160008787f1925050503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b509150915060005a8403905060405180606001604052808415158152602001828152602001838152508989815181106101fb57fe5b60200260200101819052505050505050505080806001019150506100f9565b50915091565b73ffffffffffffffffffffffffffffffffffffffff163190565b604051806060016040528060001515815260200160008152602001606081525090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461028157600080fd5b919050565b600060208284031215610297578081fd5b6102a08261025d565b9392505050565b600060208083850312156102b9578182fd5b823567ffffffffffffffff808211156102d0578384fd5b818501915085601f8301126102e3578384fd5b8135818111156102ef57fe5b6102fc8485830201610506565b81815284810190848601875b848110156103f457813587017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0606081838f03011215610346578a8bfd5b60408051606081018181108b8211171561035c57fe5b8252610369848d0161025d565b8152818401358c82015260608401358a811115610384578d8efd5b8085019450508e603f850112610398578c8dfd5b8b8401358a8111156103a657fe5b6103b68d85601f84011601610506565b93508084528f838287010111156103cb578d8efd5b808386018e86013783018c018d9052908101919091528552509287019290870190600101610308565b50909998505050505050505050565b6000825161041581846020870161052a565b9190910192915050565b90815260200190565b600060408083018584526020828186015281865180845260609350838701915083838202880101838901875b838110156104f6578983037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa001855281518051151584528681015187850152880151888401889052805188850181905260806104b582828801858c0161052a565b96880196601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01694909401909301925090850190600101610454565b50909a9950505050505050505050565b60405181810167ffffffffffffffff8111828210171561052257fe5b604052919050565b60005b8381101561054557818101518382015260200161052d565b83811115610554576000848401525b5050505056fea164736f6c6343000706000a"; + +export class UniswapInterfaceMulticall__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): UniswapInterfaceMulticall { + return super.attach(address) as UniswapInterfaceMulticall; + } + connect(signer: Signer): UniswapInterfaceMulticall__factory { + return super.connect(signer) as UniswapInterfaceMulticall__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapInterfaceMulticallInterface { + return new utils.Interface(_abi) as UniswapInterfaceMulticallInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UniswapInterfaceMulticall { + return new Contract( + address, + _abi, + signerOrProvider + ) as UniswapInterfaceMulticall; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/UniswapV3Factory__factory.ts b/src/contrib/smart-order-router/types/v3/factories/UniswapV3Factory__factory.ts new file mode 100644 index 0000000..33761fd --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/UniswapV3Factory__factory.ts @@ -0,0 +1,290 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { + UniswapV3Factory, + UniswapV3FactoryInterface, +} from "../UniswapV3Factory"; + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + indexed: true, + internalType: "int24", + name: "tickSpacing", + type: "int24", + }, + ], + name: "FeeAmountEnabled", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "oldOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnerChanged", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "token0", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "token1", + type: "address", + }, + { + indexed: true, + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + indexed: false, + internalType: "int24", + name: "tickSpacing", + type: "int24", + }, + { + indexed: false, + internalType: "address", + name: "pool", + type: "address", + }, + ], + name: "PoolCreated", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "tokenA", + type: "address", + }, + { + internalType: "address", + name: "tokenB", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + ], + name: "createPool", + outputs: [ + { + internalType: "address", + name: "pool", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickSpacing", + type: "int24", + }, + ], + name: "enableFeeAmount", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint24", + name: "", + type: "uint24", + }, + ], + name: "feeAmountTickSpacing", + outputs: [ + { + internalType: "int24", + name: "", + type: "int24", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "address", + name: "", + type: "address", + }, + { + internalType: "uint24", + name: "", + type: "uint24", + }, + ], + name: "getPool", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "parameters", + outputs: [ + { + internalType: "address", + name: "factory", + type: "address", + }, + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickSpacing", + type: "int24", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address", + }, + ], + name: "setOwner", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; + +const _bytecode = + "0x60a060405234801561001057600080fd5b503060601b608052600380546001600160a01b031916339081179091556040516000907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c908290a36101f4600081815260046020527ffb8cf1d12598d1a039dd1d106665851a96aadf67d0d9ed76fceea282119208b7805462ffffff1916600a90811790915560405190929160008051602061614b83398151915291a3610bb8600081815260046020527f72dffa9b822156d9cf4b0090fa0b656bcb9cc2b2c60eb6acfc20a34f54b31743805462ffffff1916603c90811790915560405190929160008051602061614b83398151915291a3612710600081815260046020527f8cc740d51daa94ff54f33bd779c2d20149f524c340519b49181be5a08615f829805462ffffff191660c890811790915560405190929160008051602061614b83398151915291a360805160601c615fd7610174600039806105515250615fd76000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063890357301161005b578063890357301461013b5780638a7c195f146101855780638da5cb5b146101b0578063a1671295146101b85761007d565b806313af4035146100825780631698ee82146100aa57806322afcccb14610102575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b03166101f4565b005b6100e6600480360360608110156100c057600080fd5b5080356001600160a01b03908116916020810135909116906040013562ffffff16610267565b604080516001600160a01b039092168252519081900360200190f35b6101246004803603602081101561011857600080fd5b503562ffffff16610293565b6040805160029290920b8252519081900360200190f35b6101436102a8565b604080516001600160a01b0396871681529486166020860152929094168383015262ffffff16606083015260029290920b608082015290519081900360a00190f35b6100a86004803603604081101561019b57600080fd5b5062ffffff813516906020013560020b6102de565b6100e66103a1565b6100e6600480360360608110156101ce57600080fd5b5080356001600160a01b03908116916020810135909116906040013562ffffff166103b0565b6003546001600160a01b0316331461020b57600080fd5b6003546040516001600160a01b038084169216907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b60056020908152600093845260408085208252928452828420905282529020546001600160a01b031681565b60046020526000908152604090205460020b81565b600054600154600280546001600160a01b03938416939283169281169162ffffff600160a01b83041691600160b81b9004900b85565b6003546001600160a01b031633146102f557600080fd5b620f42408262ffffff161061030957600080fd5b60008160020b13801561032057506140008160020b125b61032957600080fd5b62ffffff8216600090815260046020526040902054600290810b900b1561034f57600080fd5b62ffffff828116600081815260046020526040808220805462ffffff1916600287900b958616179055517fc66a3fdf07232cdd185febcc6579d408c241b47ae2f9907d84be655141eeaecc9190a35050565b6003546001600160a01b031681565b60006103ba610546565b826001600160a01b0316846001600160a01b031614156103d957600080fd5b600080846001600160a01b0316866001600160a01b0316106103fc5784866103ff565b85855b90925090506001600160a01b03821661041757600080fd5b62ffffff8416600090815260046020526040902054600290810b9081900b61043e57600080fd5b6001600160a01b0383811660009081526005602090815260408083208685168452825280832062ffffff8a168452909152902054161561047d57600080fd5b61048a308484888561057d565b6001600160a01b03808516600081815260056020818152604080842089871680865290835281852062ffffff8e168087529084528286208054988a166001600160a01b0319998a1681179091558287529484528286208787528452828620818752845294829020805490971684179096558051600289900b815291820192909252815195995091947f783cca1c0412dd0d695e784568c96da2e9c22ff989357a2e8b1d9b2b4e6b71189281900390910190a45050509392505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461057b57600080fd5b565b6040805160a0810182526001600160a01b03878116808352878216602080850182905292881684860181905262ffffff888116606080880182905260028a810b6080998a01819052600080546001600160a01b03199081169099178155600180548a1689179055825490981686177fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff16600160a01b8502177fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff16600160b81b91830b9095160293909317909255875180870194909452838801929092528281019190915285518083039091018152930193849052825192909101919091209091610686906106f5565b8190604051809103906000f59050801580156106a6573d6000803e3d6000fd5b50600080546001600160a01b0319908116909155600180549091169055600280547fffffffffffff00000000000000000000000000000000000000000000000000001690559695505050505050565b6158c8806107038339019056fe6101606040523480156200001257600080fd5b503060601b60805260408051630890357360e41b81529051600091339163890357309160048082019260a092909190829003018186803b1580156200005657600080fd5b505afa1580156200006b573d6000803e3d6000fd5b505050506040513d60a08110156200008257600080fd5b508051602080830151604084015160608086015160809096015160e896871b6001600160e81b0319166101005291811b6001600160601b031990811660e05292811b831660c0529390931b1660a052600282810b900b90921b610120529150620000f79082906200010f811b62002b8417901c565b60801b6001600160801b03191661014052506200017d565b60008082600281900b620d89e719816200012557fe5b05029050600083600281900b620d89e8816200013d57fe5b0502905060008460020b83830360020b816200015557fe5b0560010190508062ffffff166001600160801b038016816200017357fe5b0495945050505050565b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160e81c6101405160801c61567e6200024a60003980611fee5280614b5f5280614b96525080610c0052806128fd5280614bca5280614bfc525080610cef52806119cb5280611a0252806129455250806111c75280611a855280611ef4528061244452806129215280613e6b5250806108d252806112f55280611a545280611e8e52806123be5280613d2252508061207b528061227d52806128d9525080612bfb525061567e6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000008f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000000061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f00000000000000000000000000000000000000000000000000000000000000008d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f00000000000000000000000000000000000000000000000000000000000000008d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f00000000000000000000000000000000000000000000000000000000000000008b8b613b86565b8715611aab57611aab7f00000000000000000000000000000000000000000000000000000000000000008b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f0000000000000000000000000000000000000000000000000000000000000000908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f0000000000000000000000000000000000000000000000000000000000000000908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f00000000000000000000000000000000000000000000000000000000000000009087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f00000000000000000000000000000000000000000000000000000000000000009087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f000000000000000000000000000000000000000000000000000000000000000061513b565b9450614bba60058c8b8d8b8b87898b60017f000000000000000000000000000000000000000000000000000000000000000061513b565b93508415614bee57614bee60068d7f0000000000000000000000000000000000000000000000000000000000000000615325565b8315614c2057614c2060068c7f0000000000000000000000000000000000000000000000000000000000000000615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000aa164736f6c6343000706000ac66a3fdf07232cdd185febcc6579d408c241b47ae2f9907d84be655141eeaecc"; + +export class UniswapV3Factory__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): UniswapV3Factory { + return super.attach(address) as UniswapV3Factory; + } + connect(signer: Signer): UniswapV3Factory__factory { + return super.connect(signer) as UniswapV3Factory__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV3FactoryInterface { + return new utils.Interface(_abi) as UniswapV3FactoryInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UniswapV3Factory { + return new Contract(address, _abi, signerOrProvider) as UniswapV3Factory; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/UniswapV3Pool__factory.ts b/src/contrib/smart-order-router/types/v3/factories/UniswapV3Pool__factory.ts new file mode 100644 index 0000000..46f5f28 --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/UniswapV3Pool__factory.ts @@ -0,0 +1,1039 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { UniswapV3Pool, UniswapV3PoolInterface } from "../UniswapV3Pool"; + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + indexed: true, + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + indexed: false, + internalType: "uint128", + name: "amount", + type: "uint128", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "Burn", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "recipient", + type: "address", + }, + { + indexed: true, + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + indexed: true, + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + indexed: false, + internalType: "uint128", + name: "amount0", + type: "uint128", + }, + { + indexed: false, + internalType: "uint128", + name: "amount1", + type: "uint128", + }, + ], + name: "Collect", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "recipient", + type: "address", + }, + { + indexed: false, + internalType: "uint128", + name: "amount0", + type: "uint128", + }, + { + indexed: false, + internalType: "uint128", + name: "amount1", + type: "uint128", + }, + ], + name: "CollectProtocol", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "recipient", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "paid0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "paid1", + type: "uint256", + }, + ], + name: "Flash", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint16", + name: "observationCardinalityNextOld", + type: "uint16", + }, + { + indexed: false, + internalType: "uint16", + name: "observationCardinalityNextNew", + type: "uint16", + }, + ], + name: "IncreaseObservationCardinalityNext", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + { + indexed: false, + internalType: "int24", + name: "tick", + type: "int24", + }, + ], + name: "Initialize", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + indexed: true, + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + indexed: false, + internalType: "uint128", + name: "amount", + type: "uint128", + }, + { + indexed: false, + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + name: "Mint", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint8", + name: "feeProtocol0Old", + type: "uint8", + }, + { + indexed: false, + internalType: "uint8", + name: "feeProtocol1Old", + type: "uint8", + }, + { + indexed: false, + internalType: "uint8", + name: "feeProtocol0New", + type: "uint8", + }, + { + indexed: false, + internalType: "uint8", + name: "feeProtocol1New", + type: "uint8", + }, + ], + name: "SetFeeProtocol", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "recipient", + type: "address", + }, + { + indexed: false, + internalType: "int256", + name: "amount0", + type: "int256", + }, + { + indexed: false, + internalType: "int256", + name: "amount1", + type: "int256", + }, + { + indexed: false, + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + { + indexed: false, + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + indexed: false, + internalType: "int24", + name: "tick", + type: "int24", + }, + ], + name: "Swap", + type: "event", + }, + { + inputs: [ + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint128", + name: "amount", + type: "uint128", + }, + ], + name: "burn", + outputs: [ + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint128", + name: "amount0Requested", + type: "uint128", + }, + { + internalType: "uint128", + name: "amount1Requested", + type: "uint128", + }, + ], + name: "collect", + outputs: [ + { + internalType: "uint128", + name: "amount0", + type: "uint128", + }, + { + internalType: "uint128", + name: "amount1", + type: "uint128", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint128", + name: "amount0Requested", + type: "uint128", + }, + { + internalType: "uint128", + name: "amount1Requested", + type: "uint128", + }, + ], + name: "collectProtocol", + outputs: [ + { + internalType: "uint128", + name: "amount0", + type: "uint128", + }, + { + internalType: "uint128", + name: "amount1", + type: "uint128", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "fee", + outputs: [ + { + internalType: "uint24", + name: "", + type: "uint24", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "feeGrowthGlobal0X128", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "feeGrowthGlobal1X128", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "flash", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint16", + name: "observationCardinalityNext", + type: "uint16", + }, + ], + name: "increaseObservationCardinalityNext", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "liquidity", + outputs: [ + { + internalType: "uint128", + name: "", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "maxLiquidityPerTick", + outputs: [ + { + internalType: "uint128", + name: "", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint128", + name: "amount", + type: "uint128", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "mint", + outputs: [ + { + internalType: "uint256", + name: "amount0", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "observations", + outputs: [ + { + internalType: "uint32", + name: "blockTimestamp", + type: "uint32", + }, + { + internalType: "int56", + name: "tickCumulative", + type: "int56", + }, + { + internalType: "uint160", + name: "secondsPerLiquidityCumulativeX128", + type: "uint160", + }, + { + internalType: "bool", + name: "initialized", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint32[]", + name: "secondsAgos", + type: "uint32[]", + }, + ], + name: "observe", + outputs: [ + { + internalType: "int56[]", + name: "tickCumulatives", + type: "int56[]", + }, + { + internalType: "uint160[]", + name: "secondsPerLiquidityCumulativeX128s", + type: "uint160[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + name: "positions", + outputs: [ + { + internalType: "uint128", + name: "liquidity", + type: "uint128", + }, + { + internalType: "uint256", + name: "feeGrowthInside0LastX128", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeGrowthInside1LastX128", + type: "uint256", + }, + { + internalType: "uint128", + name: "tokensOwed0", + type: "uint128", + }, + { + internalType: "uint128", + name: "tokensOwed1", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "protocolFees", + outputs: [ + { + internalType: "uint128", + name: "token0", + type: "uint128", + }, + { + internalType: "uint128", + name: "token1", + type: "uint128", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint8", + name: "feeProtocol0", + type: "uint8", + }, + { + internalType: "uint8", + name: "feeProtocol1", + type: "uint8", + }, + ], + name: "setFeeProtocol", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "slot0", + outputs: [ + { + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + { + internalType: "int24", + name: "tick", + type: "int24", + }, + { + internalType: "uint16", + name: "observationIndex", + type: "uint16", + }, + { + internalType: "uint16", + name: "observationCardinality", + type: "uint16", + }, + { + internalType: "uint16", + name: "observationCardinalityNext", + type: "uint16", + }, + { + internalType: "uint8", + name: "feeProtocol", + type: "uint8", + }, + { + internalType: "bool", + name: "unlocked", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + ], + name: "snapshotCumulativesInside", + outputs: [ + { + internalType: "int56", + name: "tickCumulativeInside", + type: "int56", + }, + { + internalType: "uint160", + name: "secondsPerLiquidityInsideX128", + type: "uint160", + }, + { + internalType: "uint32", + name: "secondsInside", + type: "uint32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "bool", + name: "zeroForOne", + type: "bool", + }, + { + internalType: "int256", + name: "amountSpecified", + type: "int256", + }, + { + internalType: "uint160", + name: "sqrtPriceLimitX96", + type: "uint160", + }, + { + internalType: "bytes", + name: "data", + type: "bytes", + }, + ], + name: "swap", + outputs: [ + { + internalType: "int256", + name: "amount0", + type: "int256", + }, + { + internalType: "int256", + name: "amount1", + type: "int256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "int16", + name: "", + type: "int16", + }, + ], + name: "tickBitmap", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "tickSpacing", + outputs: [ + { + internalType: "int24", + name: "", + type: "int24", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "int24", + name: "", + type: "int24", + }, + ], + name: "ticks", + outputs: [ + { + internalType: "uint128", + name: "liquidityGross", + type: "uint128", + }, + { + internalType: "int128", + name: "liquidityNet", + type: "int128", + }, + { + internalType: "uint256", + name: "feeGrowthOutside0X128", + type: "uint256", + }, + { + internalType: "uint256", + name: "feeGrowthOutside1X128", + type: "uint256", + }, + { + internalType: "int56", + name: "tickCumulativeOutside", + type: "int56", + }, + { + internalType: "uint160", + name: "secondsPerLiquidityOutsideX128", + type: "uint160", + }, + { + internalType: "uint32", + name: "secondsOutside", + type: "uint32", + }, + { + internalType: "bool", + name: "initialized", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "token0", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "token1", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x6101606040523480156200001257600080fd5b503060601b60805260408051630890357360e41b81529051600091339163890357309160048082019260a092909190829003018186803b1580156200005657600080fd5b505afa1580156200006b573d6000803e3d6000fd5b505050506040513d60a08110156200008257600080fd5b508051602080830151604084015160608086015160809096015160e896871b6001600160e81b0319166101005291811b6001600160601b031990811660e05292811b831660c0529390931b1660a052600282810b900b90921b610120529150620000f79082906200010f811b62002b8417901c565b60801b6001600160801b03191661014052506200017d565b60008082600281900b620d89e719816200012557fe5b05029050600083600281900b620d89e8816200013d57fe5b0502905060008460020b83830360020b816200015557fe5b0560010190508062ffffff166001600160801b038016816200017357fe5b0495945050505050565b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160e81c6101405160801c61567e6200024a60003980611fee5280614b5f5280614b96525080610c0052806128fd5280614bca5280614bfc525080610cef52806119cb5280611a0252806129455250806111c75280611a855280611ef4528061244452806129215280613e6b5250806108d252806112f55280611a545280611e8e52806123be5280613d2252508061207b528061227d52806128d9525080612bfb525061567e6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000008f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000000061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f00000000000000000000000000000000000000000000000000000000000000008d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f00000000000000000000000000000000000000000000000000000000000000008d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f00000000000000000000000000000000000000000000000000000000000000008b8b613b86565b8715611aab57611aab7f00000000000000000000000000000000000000000000000000000000000000008b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f0000000000000000000000000000000000000000000000000000000000000000908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f0000000000000000000000000000000000000000000000000000000000000000908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f00000000000000000000000000000000000000000000000000000000000000009087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f00000000000000000000000000000000000000000000000000000000000000009087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f000000000000000000000000000000000000000000000000000000000000000061513b565b9450614bba60058c8b8d8b8b87898b60017f000000000000000000000000000000000000000000000000000000000000000061513b565b93508415614bee57614bee60068d7f0000000000000000000000000000000000000000000000000000000000000000615325565b8315614c2057614c2060068c7f0000000000000000000000000000000000000000000000000000000000000000615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a"; + +export class UniswapV3Pool__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): UniswapV3Pool { + return super.attach(address) as UniswapV3Pool; + } + connect(signer: Signer): UniswapV3Pool__factory { + return super.connect(signer) as UniswapV3Pool__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): UniswapV3PoolInterface { + return new utils.Interface(_abi) as UniswapV3PoolInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): UniswapV3Pool { + return new Contract(address, _abi, signerOrProvider) as UniswapV3Pool; + } +} diff --git a/src/contrib/smart-order-router/types/v3/factories/V3Migrator__factory.ts b/src/contrib/smart-order-router/types/v3/factories/V3Migrator__factory.ts new file mode 100644 index 0000000..f84c15f --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/factories/V3Migrator__factory.ts @@ -0,0 +1,418 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { V3Migrator, V3MigratorInterface } from "../V3Migrator"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "_factory", + type: "address", + }, + { + internalType: "address", + name: "_WETH9", + type: "address", + }, + { + internalType: "address", + name: "_nonfungiblePositionManager", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "WETH9", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "uint160", + name: "sqrtPriceX96", + type: "uint160", + }, + ], + name: "createAndInitializePoolIfNecessary", + outputs: [ + { + internalType: "address", + name: "pool", + type: "address", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "factory", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "address", + name: "pair", + type: "address", + }, + { + internalType: "uint256", + name: "liquidityToMigrate", + type: "uint256", + }, + { + internalType: "uint8", + name: "percentageToMigrate", + type: "uint8", + }, + { + internalType: "address", + name: "token0", + type: "address", + }, + { + internalType: "address", + name: "token1", + type: "address", + }, + { + internalType: "uint24", + name: "fee", + type: "uint24", + }, + { + internalType: "int24", + name: "tickLower", + type: "int24", + }, + { + internalType: "int24", + name: "tickUpper", + type: "int24", + }, + { + internalType: "uint256", + name: "amount0Min", + type: "uint256", + }, + { + internalType: "uint256", + name: "amount1Min", + type: "uint256", + }, + { + internalType: "address", + name: "recipient", + type: "address", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "bool", + name: "refundAsETH", + type: "bool", + }, + ], + internalType: "struct IV3Migrator.MigrateParams", + name: "params", + type: "tuple", + }, + ], + name: "migrate", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes[]", + name: "data", + type: "bytes[]", + }, + ], + name: "multicall", + outputs: [ + { + internalType: "bytes[]", + name: "results", + type: "bytes[]", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [], + name: "nonfungiblePositionManager", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitAllowed", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "uint256", + name: "expiry", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitAllowedIfNecessary", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "deadline", + type: "uint256", + }, + { + internalType: "uint8", + name: "v", + type: "uint8", + }, + { + internalType: "bytes32", + name: "r", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "selfPermitIfNecessary", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + stateMutability: "payable", + type: "receive", + }, +]; + +const _bytecode = + "0x60e06040523480156200001157600080fd5b5060405162001f4238038062001f42833981016040819052620000349162000079565b6001600160601b0319606093841b811660805291831b821660a05290911b1660c052620000c2565b80516001600160a01b03811681146200007457600080fd5b919050565b6000806000606084860312156200008e578283fd5b62000099846200005c565b9250620000a9602085016200005c565b9150620000b9604085016200005c565b90509250925092565b60805160601c60a05160601c60c05160601c611e146200012e6000398061090d5280610c4c5280610c865280610cb05280610e8d52508060d252806106b25280610ee65280610f70528061105852806110e2525080610269528061036452806109e65250611e146000f3fe6080604052600436106100b55760003560e01c8063b44a272211610069578063c45a01551161004e578063c45a0155146101e5578063d44f2bf2146101fa578063f3995c671461021a57610134565b8063b44a2722146101bd578063c2e3140a146101d257610134565b80634aa4a4fc1161009a5780634aa4a4fc14610175578063a4a78f0c1461018a578063ac9650d81461019d57610134565b806313ead562146101395780634659a4941461016257610134565b36610134573373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012990611c15565b60405180910390fd5b005b600080fd5b61014c610147366004611788565b61022d565b6040516101599190611afb565b60405180910390f35b6101326101703660046117e1565b6105f0565b34801561018157600080fd5b5061014c6106b0565b6101326101983660046117e1565b6106d4565b6101b06101ab36600461183a565b6107b1565b6040516101599190611b4d565b3480156101c957600080fd5b5061014c61090b565b6101326101e03660046117e1565b61092f565b3480156101f157600080fd5b5061014c6109e4565b34801561020657600080fd5b506101326102153660046119b7565b610a08565b6101326102283660046117e1565b611176565b60008373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161061026757600080fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631698ee828686866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018262ffffff168152602001935050505060206040518083038186803b15801561031957600080fd5b505afa15801561032d573d6000803e3d6000fd5b505050506040513d602081101561034357600080fd5b5051905073ffffffffffffffffffffffffffffffffffffffff81166104d3577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a16712958686866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018262ffffff1681526020019350505050602060405180830381600087803b15801561041657600080fd5b505af115801561042a573d6000803e3d6000fd5b505050506040513d602081101561044057600080fd5b5051604080517ff637731d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015291519293509083169163f637731d9160248082019260009290919082900301818387803b1580156104b657600080fd5b505af11580156104ca573d6000803e3d6000fd5b505050506105e8565b60008173ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561051b57600080fd5b505afa15801561052f573d6000803e3d6000fd5b505050506040513d60e081101561054557600080fd5b5051905073ffffffffffffffffffffffffffffffffffffffff81166105e6578173ffffffffffffffffffffffffffffffffffffffff1663f637731d846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156105cd57600080fd5b505af11580156105e1573d6000803e3d6000fd5b505050505b505b949350505050565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e48101839052905173ffffffffffffffffffffffffffffffffffffffff881691638fcbaf0c9161010480830192600092919082900301818387803b15801561069057600080fd5b505af11580156106a4573d6000803e3d6000fd5b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b15801561076957600080fd5b505afa15801561077d573d6000803e3d6000fd5b505050506040513d602081101561079357600080fd5b505110156107a9576107a98686868686866105f0565b505050505050565b60608167ffffffffffffffff811180156107ca57600080fd5b506040519080825280602002602001820160405280156107fe57816020015b60608152602001906001900390816107e95790505b50905060005b82811015610904576000803086868581811061081c57fe5b905060200281019061082e9190611d3a565b60405161083c929190611aeb565b600060405180830381855af49150503d8060008114610877576040519150601f19603f3d011682016040523d82523d6000602084013e61087c565b606091505b5091509150816108e25760448151101561089557600080fd5b600481019050808060200190518101906108af9190611902565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101299190611bcb565b808484815181106108ef57fe5b60209081029190910101525050600101610804565b5092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051869173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b1580156109a457600080fd5b505afa1580156109b8573d6000803e3d6000fd5b505050506040513d60208110156109ce57600080fd5b505110156107a9576107a9868686868686611176565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610a1a6060830160408401611a5d565b60ff1611610a54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012990611bde565b6064610a666060830160408401611a5d565b60ff161115610aa1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012990611c4c565b610aae6020820182611765565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33610ad76020850185611765565b84602001356040518463ffffffff1660e01b8152600401610afa93929190611b1c565b602060405180830381600087803b158015610b1457600080fd5b505af1158015610b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4c91906118c5565b50600080610b5d6020840184611765565b73ffffffffffffffffffffffffffffffffffffffff166389afcb44306040518263ffffffff1660e01b8152600401610b959190611afb565b6040805180830381600087803b158015610bae57600080fd5b505af1158015610bc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be69190611a3a565b909250905060006064610c0c610c026060870160408801611a5d565b859060ff1661120e565b81610c1357fe5b04905060006064610c2d610c026060880160408901611a5d565b81610c3457fe5b049050610c71610c4a6080870160608801611765565b7f000000000000000000000000000000000000000000000000000000000000000084611238565b610cab610c8460a0870160808801611765565b7f000000000000000000000000000000000000000000000000000000000000000083611238565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663883164566040518061016001604052808a6060016020810190610d099190611765565b73ffffffffffffffffffffffffffffffffffffffff168152602001610d3460a08c0160808d01611765565b73ffffffffffffffffffffffffffffffffffffffff168152602001610d5f60c08c0160a08d016119cf565b62ffffff168152602001610d7960e08c0160c08d016118e1565b60020b8152602001610d926101008c0160e08d016118e1565b60020b815260208101889052604081018790526101008b013560608201526101208b0135608082015260a001610dd06101608c016101408d01611765565b73ffffffffffffffffffffffffffffffffffffffff1681526020018a61016001358152506040518263ffffffff1660e01b8152600401610e109190611c83565b608060405180830381600087803b158015610e2a57600080fd5b505af1158015610e3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6291906119e9565b935093505050858210156110025783821015610eb357610eb3610e8b6080890160608a01611765565b7f00000000000000000000000000000000000000000000000000000000000000006000611238565b818603610ec86101a089016101808a016118a9565b8015610f2e575073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016610f1660808a0160608b01611765565b73ffffffffffffffffffffffffffffffffffffffff16145b15610fe6576040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d90610fa5908490600401611d31565b600060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b50505050610fe13382611414565b611000565b611000610ff960808a0160608b01611765565b3383611567565b505b8481101561116d578281101561102557611025610e8b60a0890160808a01611765565b80850361103a6101a089016101808a016118a9565b80156110a0575073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661108860a08a0160808b01611765565b73ffffffffffffffffffffffffffffffffffffffff16145b15611158576040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d90611117908490600401611d31565b600060405180830381600087803b15801561113157600080fd5b505af1158015611145573d6000803e3d6000fd5b505050506111533382611414565b61116b565b61116b610ff960a08a0160808b01611765565b505b50505050505050565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c48101839052905173ffffffffffffffffffffffffffffffffffffffff88169163d505accf9160e480830192600092919082900301818387803b15801561069057600080fd5b60008215806112295750508181028183828161122657fe5b04145b61123257600080fd5b92915050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b6020831061130d57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016112d0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461136f576040519150601f19603f3d011682016040523d82523d6000602084013e611374565b606091505b50915091508180156113a25750805115806113a2575080806020019051602081101561139f57600080fd5b50515b61140d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5341000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b6020831061148b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161144e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146114ed576040519150601f19603f3d011682016040523d82523d6000602084013e6114f2565b606091505b505090508061156257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b6020831061163c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016115ff565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461169e576040519150601f19603f3d011682016040523d82523d6000602084013e6116a3565b606091505b50915091508180156116d15750805115806116d157508080602001905160208110156116ce57600080fd5b50515b61140d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b803562ffffff8116811461174f57600080fd5b919050565b803560ff8116811461174f57600080fd5b600060208284031215611776578081fd5b813561178181611dd4565b9392505050565b6000806000806080858703121561179d578283fd5b84356117a881611dd4565b935060208501356117b881611dd4565b92506117c66040860161173c565b915060608501356117d681611dd4565b939692955090935050565b60008060008060008060c087890312156117f9578182fd5b863561180481611dd4565b9550602087013594506040870135935061182060608801611754565b92506080870135915060a087013590509295509295509295565b6000806020838503121561184c578182fd5b823567ffffffffffffffff80821115611863578384fd5b818501915085601f830112611876578384fd5b813581811115611884578485fd5b8660208083028501011115611897578485fd5b60209290920196919550909350505050565b6000602082840312156118ba578081fd5b813561178181611df9565b6000602082840312156118d6578081fd5b815161178181611df9565b6000602082840312156118f2578081fd5b81358060020b8114611781578182fd5b600060208284031215611913578081fd5b815167ffffffffffffffff8082111561192a578283fd5b818401915084601f83011261193d578283fd5b81518181111561194957fe5b60405160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116820101818110848211171561198557fe5b60405281815283820160200187101561199c578485fd5b6119ad826020830160208701611da4565b9695505050505050565b60006101a082840312156119c9578081fd5b50919050565b6000602082840312156119e0578081fd5b6117818261173c565b600080600080608085870312156119fe578384fd5b8451935060208501516fffffffffffffffffffffffffffffffff81168114611a24578384fd5b6040860151606090960151949790965092505050565b60008060408385031215611a4c578182fd5b505080516020909101519092909150565b600060208284031215611a6e578081fd5b61178182611754565b73ffffffffffffffffffffffffffffffffffffffff169052565b60008151808452611aa9816020860160208601611da4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60020b9052565b62ffffff169052565b6000828483379101908152919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611bbe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452611bac858351611a91565b94509285019290850190600101611b72565b5092979650505050505050565b6000602082526117816020830184611a91565b60208082526014908201527f50657263656e7461676520746f6f20736d616c6c000000000000000000000000604082015260600190565b60208082526009908201527f4e6f742057455448390000000000000000000000000000000000000000000000604082015260600190565b60208082526014908201527f50657263656e7461676520746f6f206c61726765000000000000000000000000604082015260600190565b600061016082019050611c97828451611a77565b6020830151611ca96020840182611a77565b506040830151611cbc6040840182611ae2565b506060830151611ccf6060840182611adb565b506080830151611ce26080840182611adb565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151611d2082850182611a77565b505061014092830151919092015290565b90815260200190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611d6e578283fd5b83018035915067ffffffffffffffff821115611d88578283fd5b602001915036819003821315611d9d57600080fd5b9250929050565b60005b83811015611dbf578181015183820152602001611da7565b83811115611dce576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff81168114611df657600080fd5b50565b8015158114611df657600080fdfea164736f6c6343000706000a"; + +export class V3Migrator__factory extends ContractFactory { + constructor( + ...args: [signer: Signer] | ConstructorParameters + ) { + if (args.length === 1) { + super(_abi, _bytecode, args[0]); + } else { + super(...args); + } + } + + deploy( + _factory: string, + _WETH9: string, + _nonfungiblePositionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _factory, + _WETH9, + _nonfungiblePositionManager, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _factory: string, + _WETH9: string, + _nonfungiblePositionManager: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction( + _factory, + _WETH9, + _nonfungiblePositionManager, + overrides || {} + ); + } + attach(address: string): V3Migrator { + return super.attach(address) as V3Migrator; + } + connect(signer: Signer): V3Migrator__factory { + return super.connect(signer) as V3Migrator__factory; + } + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): V3MigratorInterface { + return new utils.Interface(_abi) as V3MigratorInterface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): V3Migrator { + return new Contract(address, _abi, signerOrProvider) as V3Migrator; + } +} diff --git a/src/contrib/smart-order-router/types/v3/index.ts b/src/contrib/smart-order-router/types/v3/index.ts new file mode 100644 index 0000000..035c21b --- /dev/null +++ b/src/contrib/smart-order-router/types/v3/index.ts @@ -0,0 +1,90 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IUniswapV3FlashCallback } from "./IUniswapV3FlashCallback"; +export type { IUniswapV3MintCallback } from "./IUniswapV3MintCallback"; +export type { IUniswapV3SwapCallback } from "./IUniswapV3SwapCallback"; +export type { IERC20Minimal } from "./IERC20Minimal"; +export type { IUniswapV3Factory } from "./IUniswapV3Factory"; +export type { IUniswapV3Pool } from "./IUniswapV3Pool"; +export type { IUniswapV3PoolDeployer } from "./IUniswapV3PoolDeployer"; +export type { IUniswapV3PoolActions } from "./IUniswapV3PoolActions"; +export type { IUniswapV3PoolDerivedState } from "./IUniswapV3PoolDerivedState"; +export type { IUniswapV3PoolEvents } from "./IUniswapV3PoolEvents"; +export type { IUniswapV3PoolImmutables } from "./IUniswapV3PoolImmutables"; +export type { IUniswapV3PoolOwnerActions } from "./IUniswapV3PoolOwnerActions"; +export type { IUniswapV3PoolState } from "./IUniswapV3PoolState"; +export type { UniswapV3Factory } from "./UniswapV3Factory"; +export type { UniswapV3Pool } from "./UniswapV3Pool"; +export type { PairFlash } from "./PairFlash"; +export type { IERC1271 } from "./IERC1271"; +export type { IERC20PermitAllowed } from "./IERC20PermitAllowed"; +export type { IWETH9 } from "./IWETH9"; +export type { IERC20Metadata } from "./IERC20Metadata"; +export type { IERC721Permit } from "./IERC721Permit"; +export type { IMulticall } from "./IMulticall"; +export type { INonfungiblePositionManager } from "./INonfungiblePositionManager"; +export type { INonfungibleTokenPositionDescriptor } from "./INonfungibleTokenPositionDescriptor"; +export type { IPeripheryImmutableState } from "./IPeripheryImmutableState"; +export type { IPeripheryPayments } from "./IPeripheryPayments"; +export type { IPeripheryPaymentsWithFee } from "./IPeripheryPaymentsWithFee"; +export type { IPoolInitializer } from "./IPoolInitializer"; +export type { IQuoter } from "./IQuoter"; +export type { IQuoterV2 } from "./IQuoterV2"; +export type { ISelfPermit } from "./ISelfPermit"; +export type { ISwapRouter } from "./ISwapRouter"; +export type { ITickLens } from "./ITickLens"; +export type { IV3Migrator } from "./IV3Migrator"; +export type { Quoter } from "./Quoter"; +export type { QuoterV2 } from "./QuoterV2"; +export type { TickLens } from "./TickLens"; +export type { UniswapInterfaceMulticall } from "./UniswapInterfaceMulticall"; +export type { NFTDescriptor } from "./NFTDescriptor"; +export type { NonfungiblePositionManager } from "./NonfungiblePositionManager"; +export type { NonfungibleTokenPositionDescriptor } from "./NonfungibleTokenPositionDescriptor"; +export type { SwapRouter } from "./SwapRouter"; +export type { V3Migrator } from "./V3Migrator"; + +export { IUniswapV3FlashCallback__factory } from "./factories/IUniswapV3FlashCallback__factory"; +export { IUniswapV3MintCallback__factory } from "./factories/IUniswapV3MintCallback__factory"; +export { IUniswapV3SwapCallback__factory } from "./factories/IUniswapV3SwapCallback__factory"; +export { IERC20Minimal__factory } from "./factories/IERC20Minimal__factory"; +export { IUniswapV3Factory__factory } from "./factories/IUniswapV3Factory__factory"; +export { IUniswapV3Pool__factory } from "./factories/IUniswapV3Pool__factory"; +export { IUniswapV3PoolDeployer__factory } from "./factories/IUniswapV3PoolDeployer__factory"; +export { IUniswapV3PoolActions__factory } from "./factories/IUniswapV3PoolActions__factory"; +export { IUniswapV3PoolDerivedState__factory } from "./factories/IUniswapV3PoolDerivedState__factory"; +export { IUniswapV3PoolEvents__factory } from "./factories/IUniswapV3PoolEvents__factory"; +export { IUniswapV3PoolImmutables__factory } from "./factories/IUniswapV3PoolImmutables__factory"; +export { IUniswapV3PoolOwnerActions__factory } from "./factories/IUniswapV3PoolOwnerActions__factory"; +export { IUniswapV3PoolState__factory } from "./factories/IUniswapV3PoolState__factory"; +export { UniswapV3Factory__factory } from "./factories/UniswapV3Factory__factory"; +export { UniswapV3Pool__factory } from "./factories/UniswapV3Pool__factory"; +export { PairFlash__factory } from "./factories/PairFlash__factory"; +export { IERC1271__factory } from "./factories/IERC1271__factory"; +export { IERC20PermitAllowed__factory } from "./factories/IERC20PermitAllowed__factory"; +export { IWETH9__factory } from "./factories/IWETH9__factory"; +export { IERC20Metadata__factory } from "./factories/IERC20Metadata__factory"; +export { IERC721Permit__factory } from "./factories/IERC721Permit__factory"; +export { IMulticall__factory } from "./factories/IMulticall__factory"; +export { INonfungiblePositionManager__factory } from "./factories/INonfungiblePositionManager__factory"; +export { INonfungibleTokenPositionDescriptor__factory } from "./factories/INonfungibleTokenPositionDescriptor__factory"; +export { IPeripheryImmutableState__factory } from "./factories/IPeripheryImmutableState__factory"; +export { IPeripheryPayments__factory } from "./factories/IPeripheryPayments__factory"; +export { IPeripheryPaymentsWithFee__factory } from "./factories/IPeripheryPaymentsWithFee__factory"; +export { IPoolInitializer__factory } from "./factories/IPoolInitializer__factory"; +export { IQuoter__factory } from "./factories/IQuoter__factory"; +export { IQuoterV2__factory } from "./factories/IQuoterV2__factory"; +export { ISelfPermit__factory } from "./factories/ISelfPermit__factory"; +export { ISwapRouter__factory } from "./factories/ISwapRouter__factory"; +export { ITickLens__factory } from "./factories/ITickLens__factory"; +export { IV3Migrator__factory } from "./factories/IV3Migrator__factory"; +export { Quoter__factory } from "./factories/Quoter__factory"; +export { QuoterV2__factory } from "./factories/QuoterV2__factory"; +export { TickLens__factory } from "./factories/TickLens__factory"; +export { UniswapInterfaceMulticall__factory } from "./factories/UniswapInterfaceMulticall__factory"; +export { NFTDescriptor__factory } from "./factories/NFTDescriptor__factory"; +export { NonfungiblePositionManager__factory } from "./factories/NonfungiblePositionManager__factory"; +export { NonfungibleTokenPositionDescriptor__factory } from "./factories/NonfungibleTokenPositionDescriptor__factory"; +export { SwapRouter__factory } from "./factories/SwapRouter__factory"; +export { V3Migrator__factory } from "./factories/V3Migrator__factory";