From eed05bd8303ad15abf5a1d494d020d645253834b Mon Sep 17 00:00:00 2001 From: Mikhail Gladchenko Date: Thu, 23 May 2024 10:42:11 +0100 Subject: [PATCH] feat: updated generateSwapCalldata with custom fee from the path --- package.json | 2 +- src/Unit/Exchange/callGenerators/uniswapV2.ts | 5 +++-- src/Unit/Exchange/generateSwapCalldata.ts | 4 ++-- src/services/Aggregator/ws/schemas/swapInfoSchema.ts | 2 +- src/types.ts | 1 + 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index bc92500..2048146 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.20.76-rc112", + "version": "0.20.76-rc113", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", diff --git a/src/Unit/Exchange/callGenerators/uniswapV2.ts b/src/Unit/Exchange/callGenerators/uniswapV2.ts index 4526fca..9742895 100644 --- a/src/Unit/Exchange/callGenerators/uniswapV2.ts +++ b/src/Unit/Exchange/callGenerators/uniswapV2.ts @@ -19,7 +19,8 @@ export async function generateUni2Calls( currentSwap.pool, currentSwap.assetIn, currentSwap.assetOut, - nextSwap.pool + nextSwap.pool, + nextSwap.fee ) calls.push(call) } @@ -51,4 +52,4 @@ export function generateUni2Call( ethers.AbiCoder.defaultAbiCoder().encode(['uint256'], [concat([toBeHex(fee), recipient])]), ]) return addCallParams(calldata) -} \ No newline at end of file +} diff --git a/src/Unit/Exchange/generateSwapCalldata.ts b/src/Unit/Exchange/generateSwapCalldata.ts index de5e307..a600947 100644 --- a/src/Unit/Exchange/generateSwapCalldata.ts +++ b/src/Unit/Exchange/generateSwapCalldata.ts @@ -311,14 +311,14 @@ async function processMultiFactorySwaps( case 'OrionV2': { let transferCall = generateTransferCall(swap.assetIn, swap.pool, 0); transferCall = pathCallWithBalance(transferCall, swap.assetIn); - const uni2Call = generateUni2Call(swap.pool, swap.assetIn, swap.assetOut, swapExecutorContractAddress); + const uni2Call = generateUni2Call(swap.pool, swap.assetIn, swap.assetOut, swapExecutorContractAddress, swap.fee); calls.push(transferCall, uni2Call); break; } case 'UniswapV2': { let transferCall = generateTransferCall(swap.assetIn, swap.pool, 0); transferCall = pathCallWithBalance(transferCall, swap.assetIn); - const uni2Call = generateUni2Call(swap.pool, swap.assetIn, swap.assetOut, swapExecutorContractAddress); + const uni2Call = generateUni2Call(swap.pool, swap.assetIn, swap.assetOut, swapExecutorContractAddress, swap.fee); calls.push(transferCall, uni2Call); break; } diff --git a/src/services/Aggregator/ws/schemas/swapInfoSchema.ts b/src/services/Aggregator/ws/schemas/swapInfoSchema.ts index efd2cf0..f153a9f 100644 --- a/src/services/Aggregator/ws/schemas/swapInfoSchema.ts +++ b/src/services/Aggregator/ws/schemas/swapInfoSchema.ts @@ -42,7 +42,7 @@ const swapInfoSchemaBase = baseMessageSchema.extend({ f: factorySchema, // factory aai: z.string(), // asset address in aao: z.string(), // asset address out - fee: z.number(), // fee + fee: z.number().optional(), // fee })), usd: z.object({ // USD info of this swap, nullable aa: z.number().optional(), // available amount in, USD diff --git a/src/types.ts b/src/types.ts index 69c5608..e19940f 100644 --- a/src/types.ts +++ b/src/types.ts @@ -181,6 +181,7 @@ export type SingleSwap = { factory: Factory assetAddressIn: string assetAddressOut: string + fee?: number } export type SwapInfoBase = {