diff --git a/package-lock.json b/package-lock.json index bba9579..ccf76bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@orionprotocol/sdk", - "version": "0.19.48-dev.5-rc0", + "version": "0.19.48-dev.6-rc-0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@orionprotocol/sdk", - "version": "0.19.48-dev.5-rc0", + "version": "0.19.48-dev.6-rc-0", "hasInstallScript": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index 9f3ba4d..b84bfcd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.19.48-dev.6", + "version": "0.19.48-dev.6-rc-1", "description": "Orion Protocol SDK", "main": "./lib/index.cjs", "module": "./lib/index.js", @@ -113,4 +113,4 @@ "overrides": { "tsconfig-paths": "^4.0.0" } -} \ No newline at end of file +} diff --git a/src/Unit/Exchange/generateSwapCalldata.ts b/src/Unit/Exchange/generateSwapCalldata.ts index 39b14c0..bf18f6e 100644 --- a/src/Unit/Exchange/generateSwapCalldata.ts +++ b/src/Unit/Exchange/generateSwapCalldata.ts @@ -141,8 +141,6 @@ export default async function generateSwapCalldata({ return { swapDescription, calldata } } - - export async function generateUni2Calls( exchangeAddress: string, path: SafeArray @@ -314,4 +312,4 @@ function addCallParams( async function generateCalls(calls: BytesLike[]) { const executorInterface = SwapExecutor__factory.createInterface() return "0x" + executorInterface.encodeFunctionData(EXECUTOR_SWAP_FUNCTION, [ethers.constants.AddressZero, calls]).slice(74) -} \ No newline at end of file +} diff --git a/src/services/Aggregator/ws/index.ts b/src/services/Aggregator/ws/index.ts index 4a7d3b8..00f5ec8 100644 --- a/src/services/Aggregator/ws/index.ts +++ b/src/services/Aggregator/ws/index.ts @@ -503,6 +503,12 @@ class AggregatorWS { minAmountIn: json.ma, path: json.ps, exchanges: json.e, + exchangeContractPath: json.eps.map((path) => ({ + pool: path.p, + assetIn: path.ai, + assetOut: path.ao, + factory: path.f, + })), poolOptimal: json.po, ...(json.oi) && { orderInfo: { diff --git a/src/services/Aggregator/ws/schemas/swapInfoSchema.ts b/src/services/Aggregator/ws/schemas/swapInfoSchema.ts index ef0fc6c..c03ff97 100644 --- a/src/services/Aggregator/ws/schemas/swapInfoSchema.ts +++ b/src/services/Aggregator/ws/schemas/swapInfoSchema.ts @@ -33,6 +33,12 @@ const swapInfoSchemaBase = baseMessageSchema.extend({ }).optional(), as: alternativeSchema.array(), anm: z.record(z.string()).optional(), // address to ERC20 names + eps: z.array(z.object({ + p: z.string(), // pool address + ai: z.string().toUpperCase(), // asset in + ao: z.string().toUpperCase(), // asset out + f: z.string().toUpperCase(), // factory + })) }); const swapInfoSchemaByAmountIn = swapInfoSchemaBase.extend({ diff --git a/src/types.ts b/src/types.ts index 0314e1c..64449e8 100644 --- a/src/types.ts +++ b/src/types.ts @@ -165,6 +165,13 @@ export type SwapInfoAlternative = { availableAmountOut?: number | undefined } +type ExchangeContractPath = { + pool: string + assetIn: string + assetOut: string + factory: string +} + export type SwapInfoBase = { swapRequestId: string assetIn: string @@ -175,6 +182,7 @@ export type SwapInfoBase = { minAmountOut: number path: string[] + exchangeContractPath: ExchangeContractPath[] exchanges?: string[] | undefined poolOptimal: boolean