Skip to content

Commit 2efedd3

Browse files
committed
refactor: create type alias for router route
1 parent 56cd3b7 commit 2efedd3

File tree

6 files changed

+15
-11
lines changed

6 files changed

+15
-11
lines changed

src/services/liquidity/zapHelpers.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Address, encodeFunctionData } from 'viem'
22
import { RouteService } from '../routes'
33
import { ZapParams } from '../../core/types'
44
import { ROUTER_ABI } from '../../core/abis'
5-
import { encodeRoutePath, RouterRoute } from '../../utils/pathEncoder'
5+
import { encodeRoutePath, RouterRoute, ReadonlyRouterRoutes } from '../../utils/pathEncoder'
66

77
// ========== ENCODING FUNCTIONS ==========
88

@@ -21,7 +21,7 @@ export function encodeZapInCall(
2121
return encodeFunctionData({
2222
abi: ROUTER_ABI,
2323
functionName: 'zapIn',
24-
args: [tokenIn, amountInA, amountInB, zapParams as { factory: Address, tokenA: Address, tokenB: Address, amountAMin: bigint, amountBMin: bigint, amountOutMinA: bigint, amountOutMinB: bigint }, routesA as readonly { from: Address, to: Address, factory: Address }[], routesB as readonly { from: Address, to: Address, factory: Address }[], recipient],
24+
args: [tokenIn, amountInA, amountInB, zapParams as { factory: Address, tokenA: Address, tokenB: Address, amountAMin: bigint, amountBMin: bigint, amountOutMinA: bigint, amountOutMinB: bigint }, routesA as ReadonlyRouterRoutes, routesB as ReadonlyRouterRoutes, recipient],
2525
})
2626
}
2727

@@ -38,7 +38,7 @@ export function encodeZapOutCall(
3838
return encodeFunctionData({
3939
abi: ROUTER_ABI,
4040
functionName: 'zapOut',
41-
args: [tokenOut, liquidity, zapParams as { factory: Address, tokenA: Address, tokenB: Address, amountAMin: bigint, amountBMin: bigint, amountOutMinA: bigint, amountOutMinB: bigint }, routesA as readonly { from: Address, to: Address, factory: Address }[], routesB as readonly { from: Address, to: Address, factory: Address }[]],
41+
args: [tokenOut, liquidity, zapParams as { factory: Address, tokenA: Address, tokenB: Address, amountAMin: bigint, amountBMin: bigint, amountOutMinA: bigint, amountOutMinB: bigint }, routesA as ReadonlyRouterRoutes, routesB as ReadonlyRouterRoutes],
4242
})
4343
}
4444

src/services/liquidity/zapIn.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
import { ROUTER_ABI, ERC20_ABI } from '../../core/abis'
1212
import { getContractAddress, ChainId } from '../../core/constants'
1313
import { validateAddress } from '../../utils/validation'
14+
import { ReadonlyRouterRoutes } from '../../utils/pathEncoder'
1415
import { buildApprovalParams, getAllowance, calculateMinAmount, getPoolInfo } from './liquidityHelpers'
1516
import {
1617
encodeZapInCall,
@@ -100,7 +101,7 @@ export async function buildZapInParamsInternal(
100101
address: routerAddress as Address,
101102
abi: ROUTER_ABI,
102103
functionName: 'generateZapInParams',
103-
args: [token0, token1, factoryAddr, amountInA, amountInB, routesA as readonly { from: Address, to: Address, factory: Address }[], routesB as readonly { from: Address, to: Address, factory: Address }[]],
104+
args: [token0, token1, factoryAddr, amountInA, amountInB, routesA as ReadonlyRouterRoutes, routesB as ReadonlyRouterRoutes],
104105
})) as [bigint, bigint, bigint, bigint]
105106

106107
// Apply slippage to all minimum amounts
@@ -181,7 +182,7 @@ export async function quoteZapInInternal(
181182
address: routerAddress as Address,
182183
abi: ROUTER_ABI,
183184
functionName: 'generateZapInParams',
184-
args: [token0, token1, factoryAddr, amountInA, amountInB, routesA as readonly { from: Address, to: Address, factory: Address }[], routesB as readonly { from: Address, to: Address, factory: Address }[]],
185+
args: [token0, token1, factoryAddr, amountInA, amountInB, routesA as ReadonlyRouterRoutes, routesB as ReadonlyRouterRoutes],
185186
})) as [bigint, bigint, bigint, bigint]
186187

187188
const poolDetails = await poolService.getPoolDetails(poolAddress)

src/services/liquidity/zapOut.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
import { ROUTER_ABI } from '../../core/abis'
1212
import { getContractAddress, ChainId } from '../../core/constants'
1313
import { validateAddress } from '../../utils/validation'
14+
import { ReadonlyRouterRoutes } from '../../utils/pathEncoder'
1415
import { buildApprovalParams, getAllowance, calculateMinAmount, getPoolInfo } from './liquidityHelpers'
1516
import { encodeZapOutCall, findZapOutRoutes } from './zapHelpers'
1617

@@ -89,7 +90,7 @@ export async function buildZapOutParamsInternal(
8990
address: routerAddress as Address,
9091
abi: ROUTER_ABI,
9192
functionName: 'generateZapOutParams',
92-
args: [token0, token1, factoryAddr, liquidity, routesA as readonly { from: Address, to: Address, factory: Address }[], routesB as readonly { from: Address, to: Address, factory: Address }[]],
93+
args: [token0, token1, factoryAddr, liquidity, routesA as ReadonlyRouterRoutes, routesB as ReadonlyRouterRoutes],
9394
})) as [bigint, bigint, bigint, bigint]
9495

9596
// Apply slippage to all minimum amounts
@@ -152,7 +153,7 @@ export async function quoteZapOutInternal(
152153
address: routerAddress as Address,
153154
abi: ROUTER_ABI,
154155
functionName: 'generateZapOutParams',
155-
args: [token0, token1, factoryAddr, liquidity, routesA as readonly { from: Address, to: Address, factory: Address }[], routesB as readonly { from: Address, to: Address, factory: Address }[]],
156+
args: [token0, token1, factoryAddr, liquidity, routesA as ReadonlyRouterRoutes, routesB as ReadonlyRouterRoutes],
156157
})) as [bigint, bigint, bigint, bigint]
157158

158159
const finalAmountOutFromA = calculateMinAmount(amountOutMinA, options.slippageTolerance)

src/services/quotes/QuoteService.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { Route } from '../../core/types'
44
import { ROUTER_ABI } from '../../core/abis'
55
import { getContractAddress, ChainId } from '../../core/constants'
66
import { FXMarketClosedError } from '../../core/errors'
7-
import { encodeRoutePath } from '../../utils/pathEncoder'
7+
import { encodeRoutePath, ReadonlyRouterRoutes } from '../../utils/pathEncoder'
88
import { validateAddress } from '../../utils/validation'
99

1010
const FX_MARKET_CLOSED_SIG = '0xa407143a'
@@ -74,7 +74,7 @@ export class QuoteService {
7474
address: routerAddress as `0x${string}`,
7575
abi: ROUTER_ABI,
7676
functionName: 'getAmountsOut',
77-
args: [amountIn, routerRoutes as readonly { from: Address, to: Address, factory: Address }[]],
77+
args: [amountIn, routerRoutes as ReadonlyRouterRoutes],
7878
})) as bigint[]
7979

8080
return amounts[amounts.length - 1]

src/services/swap/SwapService.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { QuoteService } from '../quotes'
44
import { Route, CallParams } from '../../core/types'
55
import { ROUTER_ABI, ERC20_ABI } from '../../core/abis'
66
import { getContractAddress, ChainId } from '../../core/constants'
7-
import { encodeRoutePath, RouterRoute } from '../../utils/pathEncoder'
7+
import { encodeRoutePath, RouterRoute, ReadonlyRouterRoutes } from '../../utils/pathEncoder'
88
import { validateAddress } from '../../utils/validation'
99

1010
/**
@@ -271,7 +271,7 @@ export class SwapService {
271271
return encodeFunctionData({
272272
abi: ROUTER_ABI,
273273
functionName: 'swapExactTokensForTokens',
274-
args: [amountIn, amountOutMin, routes as readonly { from: Address, to: Address, factory: Address }[], recipient, deadline],
274+
args: [amountIn, amountOutMin, routes as ReadonlyRouterRoutes, recipient, deadline],
275275
})
276276
}
277277
}

src/utils/pathEncoder.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ export interface RouterRoute {
1010
factory: Address
1111
}
1212

13+
export type ReadonlyRouterRoutes = readonly { from: Address; to: Address; factory: Address }[]
14+
1315
/**
1416
* Converts a route path to the format expected by the Router contract.
1517
* Used by both QuoteService (getAmountsOut) and SwapService (swapTokensForTokens).

0 commit comments

Comments
 (0)