From 379c6c6ed640b26e9dab520308f61276c13df7b1 Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Thu, 12 Feb 2026 14:20:17 +0200 Subject: [PATCH 01/19] depositNativeAndPreSign --- src/methods/delta/preSignDeltaOrder.ts | 60 ++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/src/methods/delta/preSignDeltaOrder.ts b/src/methods/delta/preSignDeltaOrder.ts index 8109ea9c..bfdd24e9 100644 --- a/src/methods/delta/preSignDeltaOrder.ts +++ b/src/methods/delta/preSignDeltaOrder.ts @@ -29,17 +29,31 @@ export type SetDeltaOrderPreSignature = ( requestParams?: RequestParameters ) => Promise; +export type SetDeltaOrderDepositAndPreSignature = ( + orderHash: string, + overrides?: TxSendOverrides, + requestParams?: RequestParameters +) => Promise; + export type PreSignDeltaOrder = ( signableOrderData: SignableDeltaOrderData, overrides?: TxSendOverrides, requestParams?: RequestParameters ) => Promise; +export type DepositNativeAndPreSignDeltaOrder = ( + signableOrderData: SignableDeltaOrderData, + overrides?: TxSendOverrides, + requestParams?: RequestParameters +) => Promise; + export type PreSignDeltaOrderFunctions = { hashDeltaOrderTypedData: HashDeltaOrderTypedData; hashDeltaOrder: HashDeltaOrder; setDeltaOrderPreSignature: SetDeltaOrderPreSignature; preSignDeltaOrder: PreSignDeltaOrder; + setDeltaOrderDepositAndPreSignature: SetDeltaOrderDepositAndPreSignature; + depositNativeAndPreSignDeltaOrder: DepositNativeAndPreSignDeltaOrder; }; const PreSignatureModuleAbi = [ @@ -61,6 +75,19 @@ const PreSignatureModuleAbi = [ stateMutability: 'nonpayable', type: 'function', }, + { + inputs: [ + { + internalType: 'bytes32', + name: 'orderHash', + type: 'bytes32', + }, + ], + name: 'depositNativeAndPreSign', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, ] as const; type AvailableMethods = ExtractAbiMethodNames; @@ -119,6 +146,25 @@ export const constructPreSignDeltaOrder = ( return res; }; + const setDeltaOrderDepositAndPreSignature: SetDeltaOrderDepositAndPreSignature< + T + > = async (orderHash, overrides = {}, requestParams) => { + const ParaswapDelta = await getDeltaContract(requestParams); + if (!ParaswapDelta) { + throw new Error(`Delta is not available on chain ${options.chainId}`); + } + + const res = await options.contractCaller.transactCall({ + address: ParaswapDelta, + abi: PreSignatureModuleAbi, + contractMethod: 'depositNativeAndPreSign', + args: [orderHash], + overrides, + }); + + return res; + }; + const preSignDeltaOrder: PreSignDeltaOrder = async ( signableOrderData, overrides = {}, @@ -133,11 +179,25 @@ export const constructPreSignDeltaOrder = ( return res; }; + const depositNativeAndPreSignDeltaOrder: DepositNativeAndPreSignDeltaOrder< + T + > = async (signableOrderData, overrides = {}, requestParams) => { + const orderHash = hashDeltaOrderTypedData(signableOrderData); + const res = await setDeltaOrderDepositAndPreSignature( + orderHash, + overrides, + requestParams + ); + return res; + }; + return { hashDeltaOrderTypedData, hashDeltaOrder, setDeltaOrderPreSignature, preSignDeltaOrder, + setDeltaOrderDepositAndPreSignature, + depositNativeAndPreSignDeltaOrder, }; }; From f6a3c5e32d985210a7c6f8bb22550c4966ca10ba Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Mon, 16 Feb 2026 18:50:48 +0200 Subject: [PATCH 02/19] constructPreSignDeltaOrder/better naming --- src/methods/delta/preSignDeltaOrder.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/methods/delta/preSignDeltaOrder.ts b/src/methods/delta/preSignDeltaOrder.ts index bfdd24e9..84587e8b 100644 --- a/src/methods/delta/preSignDeltaOrder.ts +++ b/src/methods/delta/preSignDeltaOrder.ts @@ -29,7 +29,7 @@ export type SetDeltaOrderPreSignature = ( requestParams?: RequestParameters ) => Promise; -export type SetDeltaOrderDepositAndPreSignature = ( +export type DepositNativeAndPreSign = ( orderHash: string, overrides?: TxSendOverrides, requestParams?: RequestParameters @@ -52,7 +52,7 @@ export type PreSignDeltaOrderFunctions = { hashDeltaOrder: HashDeltaOrder; setDeltaOrderPreSignature: SetDeltaOrderPreSignature; preSignDeltaOrder: PreSignDeltaOrder; - setDeltaOrderDepositAndPreSignature: SetDeltaOrderDepositAndPreSignature; + depositNativeAndPreSign: DepositNativeAndPreSign; depositNativeAndPreSignDeltaOrder: DepositNativeAndPreSignDeltaOrder; }; @@ -146,9 +146,11 @@ export const constructPreSignDeltaOrder = ( return res; }; - const setDeltaOrderDepositAndPreSignature: SetDeltaOrderDepositAndPreSignature< - T - > = async (orderHash, overrides = {}, requestParams) => { + const depositNativeAndPreSign: DepositNativeAndPreSign = async ( + orderHash, + overrides = {}, + requestParams + ) => { const ParaswapDelta = await getDeltaContract(requestParams); if (!ParaswapDelta) { throw new Error(`Delta is not available on chain ${options.chainId}`); @@ -183,7 +185,7 @@ export const constructPreSignDeltaOrder = ( T > = async (signableOrderData, overrides = {}, requestParams) => { const orderHash = hashDeltaOrderTypedData(signableOrderData); - const res = await setDeltaOrderDepositAndPreSignature( + const res = await depositNativeAndPreSign( orderHash, overrides, requestParams @@ -196,7 +198,7 @@ export const constructPreSignDeltaOrder = ( hashDeltaOrder, setDeltaOrderPreSignature, preSignDeltaOrder, - setDeltaOrderDepositAndPreSignature, + depositNativeAndPreSign, depositNativeAndPreSignDeltaOrder, }; }; From 067a7d3efbe5bfad0a15408a47ff661bfca5e296 Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Mon, 16 Feb 2026 18:51:02 +0200 Subject: [PATCH 03/19] PreSignatureModuleAbi/correct abi --- src/methods/delta/preSignDeltaOrder.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/methods/delta/preSignDeltaOrder.ts b/src/methods/delta/preSignDeltaOrder.ts index 84587e8b..66c86218 100644 --- a/src/methods/delta/preSignDeltaOrder.ts +++ b/src/methods/delta/preSignDeltaOrder.ts @@ -85,7 +85,7 @@ const PreSignatureModuleAbi = [ ], name: 'depositNativeAndPreSign', outputs: [], - stateMutability: 'nonpayable', + stateMutability: 'payable', type: 'function', }, ] as const; From e52cee2d1453ea31c90b06397025df9862971605 Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Mon, 16 Feb 2026 19:00:09 +0200 Subject: [PATCH 04/19] Release 9.3.3-dev.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index aa28ba1c..19166b29 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@velora-dex/sdk", - "version": "9.3.2", + "version": "9.3.3-dev.1", "main": "dist/index.js", "module": "dist/sdk.esm.js", "typings": "dist/index.d.ts", From 7abd08740def809b57203205ef6c9fe207dbddd2 Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Tue, 17 Feb 2026 15:30:31 +0200 Subject: [PATCH 05/19] deltaTokenModule/create constructDeltaTokenModule with combined DeltaTokenModule ABI Co-Authored-By: Claude Opus 4.6 --- src/methods/delta/deltaTokenModule.ts | 273 ++++++++++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 src/methods/delta/deltaTokenModule.ts diff --git a/src/methods/delta/deltaTokenModule.ts b/src/methods/delta/deltaTokenModule.ts new file mode 100644 index 00000000..fff5c592 --- /dev/null +++ b/src/methods/delta/deltaTokenModule.ts @@ -0,0 +1,273 @@ +import type { + ConstructProviderFetchInput, + RequestParameters, + TxSendOverrides, +} from '../../types'; +import { constructGetDeltaContract } from './getDeltaContract'; +import { sanitizeDeltaOrderData } from './helpers/misc'; +import { SignableDeltaOrderData } from './helpers/buildDeltaOrderData'; +import { produceDeltaOrderHash } from './preSignDeltaOrder'; +import type { ExtractAbiMethodNames } from '../../helpers/misc'; +import type { DeltaAuctionOrder } from './helpers/types'; + +export type CancelAndWithdrawDeltaOrderParams = { + order: DeltaAuctionOrder; + signature: string; + isFillable: boolean; +}; + +export type CancelAndWithdrawDeltaOrder = ( + params: CancelAndWithdrawDeltaOrderParams, + overrides?: TxSendOverrides, + requestParams?: RequestParameters +) => Promise; + +export type WithdrawDeltaNative = ( + amount: string, + overrides?: TxSendOverrides, + requestParams?: RequestParameters +) => Promise; + +export type DepositNativeAndPreSign = ( + orderHash: string, + overrides?: TxSendOverrides, + requestParams?: RequestParameters +) => Promise; + +export type DepositNativeAndPreSignDeltaOrder = ( + signableOrderData: SignableDeltaOrderData, + overrides?: TxSendOverrides, + requestParams?: RequestParameters +) => Promise; + +export type DeltaTokenModuleFunctions = { + /** @description Cancel an order on-chain and withdraw native ETH back to the owner */ + cancelAndWithdrawDeltaOrder: CancelAndWithdrawDeltaOrder; + /** @description Withdraw Delta Wrapped Native tokens as native ETH */ + withdrawDeltaNative: WithdrawDeltaNative; + /** @description Deposit native ETH and pre-sign a Delta order */ + depositNativeAndPreSign: DepositNativeAndPreSign; + /** @description Deposit native ETH and pre-sign a Delta order from signable order data */ + depositNativeAndPreSignDeltaOrder: DepositNativeAndPreSignDeltaOrder; +}; + +const DeltaTokenModuleAbi = [ + { + inputs: [ + { + name: 'orderWithSig', + type: 'tuple', + internalType: 'struct OrderWithSig', + components: [ + { + name: 'order', + type: 'tuple', + internalType: 'struct Order', + components: [ + { name: 'owner', type: 'address', internalType: 'address' }, + { + name: 'beneficiary', + type: 'address', + internalType: 'address', + }, + { name: 'srcToken', type: 'address', internalType: 'address' }, + { name: 'destToken', type: 'address', internalType: 'address' }, + { name: 'srcAmount', type: 'uint256', internalType: 'uint256' }, + { name: 'destAmount', type: 'uint256', internalType: 'uint256' }, + { + name: 'expectedAmount', + type: 'uint256', + internalType: 'uint256', + }, + { name: 'kind', type: 'uint8', internalType: 'enum OrderKind' }, + { name: 'metadata', type: 'bytes32', internalType: 'bytes32' }, + { name: 'deadline', type: 'uint256', internalType: 'uint256' }, + { name: 'nonce', type: 'uint256', internalType: 'uint256' }, + { name: 'permit', type: 'bytes', internalType: 'bytes' }, + { + name: 'partnerAndFee', + type: 'uint256', + internalType: 'uint256', + }, + { + name: 'bridge', + type: 'tuple', + internalType: 'struct Bridge', + components: [ + { + name: 'protocolSelector', + type: 'bytes4', + internalType: 'bytes4', + }, + { + name: 'destinationChainId', + type: 'uint64', + internalType: 'uint64', + }, + { + name: 'outputToken', + type: 'address', + internalType: 'address', + }, + { + name: 'scalingFactor', + type: 'uint32', + internalType: 'uint32', + }, + { + name: 'protocolData', + type: 'bytes', + internalType: 'bytes', + }, + ], + }, + ], + }, + { name: 'signature', type: 'bytes', internalType: 'bytes' }, + ], + }, + { + name: 'isFillable', + type: 'bool', + internalType: 'bool', + }, + ], + name: 'cancelAndWithdraw', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + name: 'amount', + type: 'uint256', + internalType: 'uint256', + }, + ], + name: 'withdrawNative', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bytes32', + name: 'orderHash', + type: 'bytes32', + }, + ], + name: 'depositNativeAndPreSign', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, +] as const; + +type AvailableMethods = ExtractAbiMethodNames; + +// returns whatever `contractCaller` returns +// to allow for better versatility +export const constructDeltaTokenModule = ( + options: Pick< + ConstructProviderFetchInput, + 'contractCaller' | 'fetcher' | 'apiURL' | 'chainId' + > +): DeltaTokenModuleFunctions => { + // cached internally + const { getDeltaContract } = constructGetDeltaContract(options); + + const cancelAndWithdrawDeltaOrder: CancelAndWithdrawDeltaOrder = async ( + { order, signature, isFillable }, + overrides = {}, + requestParams + ) => { + const ParaswapDelta = await getDeltaContract(requestParams); + if (!ParaswapDelta) { + throw new Error(`Delta is not available on chain ${options.chainId}`); + } + + const orderWithSig = { + order, + signature, + }; + + const res = await options.contractCaller.transactCall({ + address: ParaswapDelta, + abi: DeltaTokenModuleAbi, + contractMethod: 'cancelAndWithdraw', + args: [orderWithSig, isFillable], + overrides, + }); + + return res; + }; + + const withdrawDeltaNative: WithdrawDeltaNative = async ( + amount, + overrides = {}, + requestParams + ) => { + const ParaswapDelta = await getDeltaContract(requestParams); + if (!ParaswapDelta) { + throw new Error(`Delta is not available on chain ${options.chainId}`); + } + + const res = await options.contractCaller.transactCall({ + address: ParaswapDelta, + abi: DeltaTokenModuleAbi, + contractMethod: 'withdrawNative', + args: [amount], + overrides, + }); + + return res; + }; + + const depositNativeAndPreSign: DepositNativeAndPreSign = async ( + orderHash, + overrides = {}, + requestParams + ) => { + const ParaswapDelta = await getDeltaContract(requestParams); + if (!ParaswapDelta) { + throw new Error(`Delta is not available on chain ${options.chainId}`); + } + + const res = await options.contractCaller.transactCall({ + address: ParaswapDelta, + abi: DeltaTokenModuleAbi, + contractMethod: 'depositNativeAndPreSign', + args: [orderHash], + overrides, + }); + + return res; + }; + + const depositNativeAndPreSignDeltaOrder: DepositNativeAndPreSignDeltaOrder< + T + > = async (signableOrderData, overrides = {}, requestParams) => { + // types allow to pass OrderData & extra_stuff, but tx will break like that + const typedDataOnly: SignableDeltaOrderData = { + ...signableOrderData, + data: sanitizeDeltaOrderData(signableOrderData.data), + }; + + const orderHash = produceDeltaOrderHash(typedDataOnly); + const res = await depositNativeAndPreSign( + orderHash, + overrides, + requestParams + ); + return res; + }; + + return { + cancelAndWithdrawDeltaOrder, + withdrawDeltaNative, + depositNativeAndPreSign, + depositNativeAndPreSignDeltaOrder, + }; +}; From 229c56f2d53f9f5e7e9d578b43b5f68ac8909a92 Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Tue, 17 Feb 2026 15:30:42 +0200 Subject: [PATCH 06/19] cancelDeltaOrder/revert to non-generic API-only cancel Co-Authored-By: Claude Opus 4.6 --- src/methods/delta/cancelDeltaOrder.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/methods/delta/cancelDeltaOrder.ts b/src/methods/delta/cancelDeltaOrder.ts index b35c215a..faedcc8e 100644 --- a/src/methods/delta/cancelDeltaOrder.ts +++ b/src/methods/delta/cancelDeltaOrder.ts @@ -37,6 +37,8 @@ export type CancelDeltaOrderFunctions = { cancelLimitDeltaOrders: CancelDeltaOrder; }; +// returns whatever `contractCaller` returns +// to allow for better versatility export const constructCancelDeltaOrder = ( options: Pick< ConstructProviderFetchInput, From e54663f210ab746b5020be1df3c061bc633bfae3 Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Tue, 17 Feb 2026 15:30:50 +0200 Subject: [PATCH 07/19] preSignDeltaOrder/remove depositNativeAndPreSign from PreSignatureModule Co-Authored-By: Claude Opus 4.6 --- src/methods/delta/preSignDeltaOrder.ts | 62 -------------------------- 1 file changed, 62 deletions(-) diff --git a/src/methods/delta/preSignDeltaOrder.ts b/src/methods/delta/preSignDeltaOrder.ts index 66c86218..8109ea9c 100644 --- a/src/methods/delta/preSignDeltaOrder.ts +++ b/src/methods/delta/preSignDeltaOrder.ts @@ -29,31 +29,17 @@ export type SetDeltaOrderPreSignature = ( requestParams?: RequestParameters ) => Promise; -export type DepositNativeAndPreSign = ( - orderHash: string, - overrides?: TxSendOverrides, - requestParams?: RequestParameters -) => Promise; - export type PreSignDeltaOrder = ( signableOrderData: SignableDeltaOrderData, overrides?: TxSendOverrides, requestParams?: RequestParameters ) => Promise; -export type DepositNativeAndPreSignDeltaOrder = ( - signableOrderData: SignableDeltaOrderData, - overrides?: TxSendOverrides, - requestParams?: RequestParameters -) => Promise; - export type PreSignDeltaOrderFunctions = { hashDeltaOrderTypedData: HashDeltaOrderTypedData; hashDeltaOrder: HashDeltaOrder; setDeltaOrderPreSignature: SetDeltaOrderPreSignature; preSignDeltaOrder: PreSignDeltaOrder; - depositNativeAndPreSign: DepositNativeAndPreSign; - depositNativeAndPreSignDeltaOrder: DepositNativeAndPreSignDeltaOrder; }; const PreSignatureModuleAbi = [ @@ -75,19 +61,6 @@ const PreSignatureModuleAbi = [ stateMutability: 'nonpayable', type: 'function', }, - { - inputs: [ - { - internalType: 'bytes32', - name: 'orderHash', - type: 'bytes32', - }, - ], - name: 'depositNativeAndPreSign', - outputs: [], - stateMutability: 'payable', - type: 'function', - }, ] as const; type AvailableMethods = ExtractAbiMethodNames; @@ -146,27 +119,6 @@ export const constructPreSignDeltaOrder = ( return res; }; - const depositNativeAndPreSign: DepositNativeAndPreSign = async ( - orderHash, - overrides = {}, - requestParams - ) => { - const ParaswapDelta = await getDeltaContract(requestParams); - if (!ParaswapDelta) { - throw new Error(`Delta is not available on chain ${options.chainId}`); - } - - const res = await options.contractCaller.transactCall({ - address: ParaswapDelta, - abi: PreSignatureModuleAbi, - contractMethod: 'depositNativeAndPreSign', - args: [orderHash], - overrides, - }); - - return res; - }; - const preSignDeltaOrder: PreSignDeltaOrder = async ( signableOrderData, overrides = {}, @@ -181,25 +133,11 @@ export const constructPreSignDeltaOrder = ( return res; }; - const depositNativeAndPreSignDeltaOrder: DepositNativeAndPreSignDeltaOrder< - T - > = async (signableOrderData, overrides = {}, requestParams) => { - const orderHash = hashDeltaOrderTypedData(signableOrderData); - const res = await depositNativeAndPreSign( - orderHash, - overrides, - requestParams - ); - return res; - }; - return { hashDeltaOrderTypedData, hashDeltaOrder, setDeltaOrderPreSignature, preSignDeltaOrder, - depositNativeAndPreSign, - depositNativeAndPreSignDeltaOrder, }; }; From 65441513c2b43354559a1a7d0c6583d47139c983 Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Tue, 17 Feb 2026 15:30:59 +0200 Subject: [PATCH 08/19] delta/wire constructDeltaTokenModule into SDK exports and types Co-Authored-By: Claude Opus 4.6 --- CLAUDE.md | 100 +++++++++++++++++++++++++++++++++++++ src/index.ts | 8 +++ src/methods/delta/index.ts | 10 +++- src/sdk/partial.ts | 4 +- 4 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..21a94ddf --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,100 @@ +# Velora SDK — Architecture Guide + +TypeScript SDK for the Paraswap/Velora Delta protocol (on-chain order-based DEX). + +## Composable Constructor Pattern + +Every feature module exports a `constructXxx(options) => XxxFunctions` factory: +- `options` is `ConstructProviderFetchInput` or a `Pick` of it +- `D` selects required caller methods: `'transactCall'` | `'signTypedDataCall'` | both +- Generic `` = transaction response type (e.g., `TxHash`, `ethers.ContractTransaction`) +- Non-generic constructors use `any` (for API-only flows that don't return tx responses) +- All Delta constructors are combined in `constructAllDeltaOrdersHandlers` in `src/methods/delta/index.ts` + +## Key Patterns + +### On-Chain Transaction (reference: `src/methods/delta/preSignDeltaOrder.ts`) +1. Define minimal ABI inline as `const XxxAbi = [...] as const` +2. Extract method names: `type AvailableMethods = ExtractAbiMethodNames` +3. Constructor takes `ConstructProviderFetchInput` +4. Get contract address: `const { getDeltaContract } = constructGetDeltaContract(options)` +5. Call contract: `options.contractCaller.transactCall({ address, abi, contractMethod, args, overrides })` + +### API Call (reference: `src/methods/delta/cancelDeltaOrder.ts` sign/post methods) +1. Sign EIP-712 typed data via `options.contractCaller.signTypedDataCall(typedData)` +2. POST to API via `options.fetcher({ url, method, data })` + +## Key File Locations + +### Delta Module (`src/methods/delta/`) +| File | Purpose | Generic? | +|------|---------|----------| +| `index.ts` | `DeltaOrderHandlers`, `constructAllDeltaOrdersHandlers` | Yes | +| `deltaTokenModule.ts` | On-chain `cancelAndWithdraw`, `withdrawNative`, `depositNativeAndPreSign` | `` | +| `cancelDeltaOrder.ts` | API cancel (sign, post, cancel) | No | +| `preSignDeltaOrder.ts` | On-chain `setPreSignature`, order hashing | `` | +| `buildDeltaOrder.ts` | Order construction | No | +| `signDeltaOrder.ts` | EIP-712 signing | No | +| `postDeltaOrder.ts` | POST order to API | No | +| `getDeltaContract.ts` | Resolve ParaswapDelta contract address | No | +| `approveForDelta.ts` | Token approval | `` | + +### Delta Helpers (`src/methods/delta/helpers/`) +- `types.ts` — `DeltaAuctionOrder`, `Bridge`, `DeltaAuction`, `DeltaAuctionStatus` +- `buildDeltaOrderData.ts` — EIP-712 type defs, `SignableDeltaOrderData` +- `buildCancelDeltaOrderData.ts` — Cancel order EIP-712 typed data + +### Core Types (`src/`) +- `types.ts` — `ConstructProviderFetchInput`, `ContractCallerFunctions`, `TxSendOverrides` +- `helpers/misc.ts` — `ExtractAbiMethodNames` +- `sdk/partial.ts` — `constructPartialSDK`, `InferWithTxResponse` type tuple + +## Checklist: Adding a New On-Chain Method + +1. Add ABI to the module file (inline `as const`) +2. Add `type AvailableMethods = ExtractAbiMethodNames` +3. Make constructor generic `` if not already +4. Add `'transactCall'` to the `ConstructProviderFetchInput` `Pick` +5. Implement function using `options.contractCaller.transactCall({...})` +6. Export function type + param types +7. Update `DeltaOrderHandlers` in `src/methods/delta/index.ts` (make generic if was non-generic) +8. Add to `InferWithTxResponse` tuple in `src/sdk/partial.ts` (import + add to array) +9. Export new types from `src/index.ts` +10. Run `npx tsc --noEmit` to verify + +## Solidity ABI: Order Struct Mapping + +When writing inline ABI for functions that take the `Order` struct: + +``` +Order tuple (maps to DeltaAuctionOrder in TS): + owner → address + beneficiary → address + srcToken → address + destToken → address + srcAmount → uint256 + destAmount → uint256 + expectedAmount → uint256 + kind → uint8 (enum OrderKind) + metadata → bytes32 + deadline → uint256 + nonce → uint256 + permit → bytes + partnerAndFee → uint256 + bridge → tuple (Bridge) + protocolSelector → bytes4 + destinationChainId → uint64 + outputToken → address + scalingFactor → uint32 + protocolData → bytes + +OrderWithSig tuple: + order → tuple (Order) + signature → bytes +``` + +## Key Conventions +- Contract address is always resolved via `constructGetDeltaContract(options).getDeltaContract()` +- EIP-712 domain: `{ name: 'Portikus', version: '2.0.0', chainId, verifyingContract }` +- Order hash: computed via viem's `hashTypedData` in `produceDeltaOrderHash()` +- ABI style: always inline `const ... as const`, never imported from external ABI files diff --git a/src/index.ts b/src/index.ts index 12ad1e25..b09c6bd8 100644 --- a/src/index.ts +++ b/src/index.ts @@ -216,6 +216,11 @@ import { CancelDeltaOrderFunctions, constructCancelDeltaOrder, } from './methods/delta/cancelDeltaOrder'; +import { + DeltaTokenModuleFunctions, + CancelAndWithdrawDeltaOrderParams, + constructDeltaTokenModule, +} from './methods/delta/deltaTokenModule'; export { constructSwapSDK, SwapSDKMethods } from './methods/swap'; @@ -300,6 +305,7 @@ export { constructGetDeltaPrice, constructGetDeltaOrders, constructCancelDeltaOrder, + constructDeltaTokenModule, constructApproveTokenForDelta, // Quote methods constructGetQuote, @@ -395,6 +401,8 @@ export type { GetDeltaOrdersFunctions, ApproveTokenForDeltaFunctions, CancelDeltaOrderFunctions, + DeltaTokenModuleFunctions, + CancelAndWithdrawDeltaOrderParams, // types for Quote methods GetQuoteFunctions, QuoteParams, diff --git a/src/methods/delta/index.ts b/src/methods/delta/index.ts index 80ce147a..e18ebc63 100644 --- a/src/methods/delta/index.ts +++ b/src/methods/delta/index.ts @@ -50,6 +50,10 @@ import { constructPreSignDeltaOrder, PreSignDeltaOrderFunctions, } from './preSignDeltaOrder'; +import { + DeltaTokenModuleFunctions, + constructDeltaTokenModule, +} from './deltaTokenModule'; export type SubmitDeltaOrderParams = BuildDeltaOrderDataParams & { /** @description designates the Order as being able to be partially filled, as opposed to fill-or-kill */ @@ -107,7 +111,8 @@ export type DeltaOrderHandlers = SubmitDeltaOrderFuncs & PostDeltaOrderFunctions & SignDeltaOrderFunctions & PreSignDeltaOrderFunctions & - CancelDeltaOrderFunctions; + CancelDeltaOrderFunctions & + DeltaTokenModuleFunctions; /** @description construct SDK with every Delta Order-related method, fetching from API and Order signing */ export const constructAllDeltaOrdersHandlers = ( @@ -135,6 +140,8 @@ export const constructAllDeltaOrdersHandlers = ( const deltaOrdersCancel = constructCancelDeltaOrder(options); + const deltaTokenModule = constructDeltaTokenModule(options); + return { ...deltaOrdersGetters, ...deltaOrdersContractGetter, @@ -149,5 +156,6 @@ export const constructAllDeltaOrdersHandlers = ( ...deltaOrdersPreSign, ...deltaOrdersPost, ...deltaOrdersCancel, + ...deltaTokenModule, }; }; diff --git a/src/sdk/partial.ts b/src/sdk/partial.ts index 07b60aca..437e95dd 100644 --- a/src/sdk/partial.ts +++ b/src/sdk/partial.ts @@ -13,6 +13,7 @@ import type { ApproveTokenForNFTOrderFunctions } from '../methods/nftOrders/appr import type { FillOrderDirectlyFunctions } from '../methods/limitOrders/fillOrderDirectly'; import type { ApproveTokenForDeltaFunctions } from '../methods/delta/approveForDelta'; import type { PreSignDeltaOrderFunctions } from '../methods/delta/preSignDeltaOrder'; +import type { DeltaTokenModuleFunctions } from '../methods/delta/deltaTokenModule'; import { API_URL, DEFAULT_VERSION } from '../constants'; export type SDKConfig = ConstructProviderFetchInput< @@ -52,7 +53,8 @@ type InferWithTxResponse< CancelNFTOrderFunctions, ApproveTokenForNFTOrderFunctions, ApproveTokenForDeltaFunctions, - PreSignDeltaOrderFunctions + PreSignDeltaOrderFunctions, + DeltaTokenModuleFunctions ] // then merge IntersectionOfReturns with them recursively > From b07162cefccbbf574b8907c1fa10512d5a25af96 Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Tue, 17 Feb 2026 18:23:50 +0200 Subject: [PATCH 09/19] deltaTokenModule/use actual ABI --- src/methods/delta/deltaTokenModule.ts | 110 ++++++++++++++++++++------ 1 file changed, 88 insertions(+), 22 deletions(-) diff --git a/src/methods/delta/deltaTokenModule.ts b/src/methods/delta/deltaTokenModule.ts index fff5c592..50b71be9 100644 --- a/src/methods/delta/deltaTokenModule.ts +++ b/src/methods/delta/deltaTokenModule.ts @@ -53,6 +53,8 @@ export type DeltaTokenModuleFunctions = { const DeltaTokenModuleAbi = [ { + type: 'function', + name: 'cancelAndWithdraw', inputs: [ { name: 'orderWithSig', @@ -64,31 +66,71 @@ const DeltaTokenModuleAbi = [ type: 'tuple', internalType: 'struct Order', components: [ - { name: 'owner', type: 'address', internalType: 'address' }, + { + name: 'owner', + type: 'address', + internalType: 'address', + }, { name: 'beneficiary', type: 'address', internalType: 'address', }, - { name: 'srcToken', type: 'address', internalType: 'address' }, - { name: 'destToken', type: 'address', internalType: 'address' }, - { name: 'srcAmount', type: 'uint256', internalType: 'uint256' }, - { name: 'destAmount', type: 'uint256', internalType: 'uint256' }, + { + name: 'srcToken', + type: 'address', + internalType: 'address', + }, + { + name: 'destToken', + type: 'address', + internalType: 'address', + }, + { + name: 'srcAmount', + type: 'uint256', + internalType: 'uint256', + }, + { + name: 'destAmount', + type: 'uint256', + internalType: 'uint256', + }, { name: 'expectedAmount', type: 'uint256', internalType: 'uint256', }, - { name: 'kind', type: 'uint8', internalType: 'enum OrderKind' }, - { name: 'metadata', type: 'bytes32', internalType: 'bytes32' }, - { name: 'deadline', type: 'uint256', internalType: 'uint256' }, - { name: 'nonce', type: 'uint256', internalType: 'uint256' }, - { name: 'permit', type: 'bytes', internalType: 'bytes' }, + { + name: 'deadline', + type: 'uint256', + internalType: 'uint256', + }, + { + name: 'kind', + type: 'uint8', + internalType: 'enum OrderKind', + }, + { + name: 'nonce', + type: 'uint256', + internalType: 'uint256', + }, { name: 'partnerAndFee', type: 'uint256', internalType: 'uint256', }, + { + name: 'permit', + type: 'bytes', + internalType: 'bytes', + }, + { + name: 'metadata', + type: 'bytes', + internalType: 'bytes', + }, { name: 'bridge', type: 'tuple', @@ -101,8 +143,8 @@ const DeltaTokenModuleAbi = [ }, { name: 'destinationChainId', - type: 'uint64', - internalType: 'uint64', + type: 'uint256', + internalType: 'uint256', }, { name: 'outputToken', @@ -111,8 +153,8 @@ const DeltaTokenModuleAbi = [ }, { name: 'scalingFactor', - type: 'uint32', - internalType: 'uint32', + type: 'int8', + internalType: 'int8', }, { name: 'protocolData', @@ -123,7 +165,33 @@ const DeltaTokenModuleAbi = [ }, ], }, - { name: 'signature', type: 'bytes', internalType: 'bytes' }, + { + name: 'signature', + type: 'bytes', + internalType: 'bytes', + }, + { + name: 'bridgeOverride', + type: 'tuple', + internalType: 'struct BridgeOverride', + components: [ + { + name: 'protocolSelector', + type: 'bytes4', + internalType: 'bytes4', + }, + { + name: 'protocolData', + type: 'bytes', + internalType: 'bytes', + }, + ], + }, + { + name: 'cosignature', + type: 'bytes', + internalType: 'bytes', + }, ], }, { @@ -132,12 +200,12 @@ const DeltaTokenModuleAbi = [ internalType: 'bool', }, ], - name: 'cancelAndWithdraw', outputs: [], stateMutability: 'nonpayable', - type: 'function', }, { + type: 'function', + name: 'withdrawNative', inputs: [ { name: 'amount', @@ -145,23 +213,21 @@ const DeltaTokenModuleAbi = [ internalType: 'uint256', }, ], - name: 'withdrawNative', outputs: [], stateMutability: 'nonpayable', - type: 'function', }, { + type: 'function', + name: 'depositNativeAndPreSign', inputs: [ { - internalType: 'bytes32', name: 'orderHash', type: 'bytes32', + internalType: 'bytes32', }, ], - name: 'depositNativeAndPreSign', outputs: [], stateMutability: 'payable', - type: 'function', }, ] as const; From d8c1ced726bfbaf9f8eac7fa1fdbb20f0a8af559 Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Tue, 17 Feb 2026 18:39:25 +0200 Subject: [PATCH 10/19] deltaTokenModule/default bridgeOverride and cosignature --- src/methods/delta/deltaTokenModule.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/methods/delta/deltaTokenModule.ts b/src/methods/delta/deltaTokenModule.ts index 50b71be9..6833e281 100644 --- a/src/methods/delta/deltaTokenModule.ts +++ b/src/methods/delta/deltaTokenModule.ts @@ -10,6 +10,8 @@ import { produceDeltaOrderHash } from './preSignDeltaOrder'; import type { ExtractAbiMethodNames } from '../../helpers/misc'; import type { DeltaAuctionOrder } from './helpers/types'; +import { DEFAULT_BRIDGE } from './getDeltaPrice'; + export type CancelAndWithdrawDeltaOrderParams = { order: DeltaAuctionOrder; signature: string; @@ -257,6 +259,8 @@ export const constructDeltaTokenModule = ( const orderWithSig = { order, signature, + bridgeOverride: DEFAULT_BRIDGE, + cosignature: '0x', }; const res = await options.contractCaller.transactCall({ From 881e5bb2b25249d3e151e0bb315cd5681c0141af Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Fri, 20 Feb 2026 11:33:04 +0200 Subject: [PATCH 11/19] cancelAndWithdrawDeltaOrder/remove SDK defaults --- src/methods/delta/deltaTokenModule.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/methods/delta/deltaTokenModule.ts b/src/methods/delta/deltaTokenModule.ts index 6833e281..6dbaa89d 100644 --- a/src/methods/delta/deltaTokenModule.ts +++ b/src/methods/delta/deltaTokenModule.ts @@ -8,13 +8,13 @@ import { sanitizeDeltaOrderData } from './helpers/misc'; import { SignableDeltaOrderData } from './helpers/buildDeltaOrderData'; import { produceDeltaOrderHash } from './preSignDeltaOrder'; import type { ExtractAbiMethodNames } from '../../helpers/misc'; -import type { DeltaAuctionOrder } from './helpers/types'; - -import { DEFAULT_BRIDGE } from './getDeltaPrice'; +import type { Bridge, DeltaAuctionOrder } from './helpers/types'; export type CancelAndWithdrawDeltaOrderParams = { order: DeltaAuctionOrder; signature: string; + bridgeOverride: Pick; + cosignature: string; isFillable: boolean; }; @@ -247,7 +247,7 @@ export const constructDeltaTokenModule = ( const { getDeltaContract } = constructGetDeltaContract(options); const cancelAndWithdrawDeltaOrder: CancelAndWithdrawDeltaOrder = async ( - { order, signature, isFillable }, + { order, signature, bridgeOverride, cosignature, isFillable }, overrides = {}, requestParams ) => { @@ -259,8 +259,8 @@ export const constructDeltaTokenModule = ( const orderWithSig = { order, signature, - bridgeOverride: DEFAULT_BRIDGE, - cosignature: '0x', + bridgeOverride, + cosignature, }; const res = await options.contractCaller.transactCall({ From 4521cdb1eadcac2cb68fb491c6d27fda5cf8ff41 Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Fri, 20 Feb 2026 17:57:45 +0200 Subject: [PATCH 12/19] Release 9.3.4-dev.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 19166b29..ff06c662 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@velora-dex/sdk", - "version": "9.3.3-dev.1", + "version": "9.3.4-dev.1", "main": "dist/index.js", "module": "dist/sdk.esm.js", "typings": "dist/index.d.ts", From dce35b9677f4fc275abe5b05d19a6b5cba05376e Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Thu, 26 Feb 2026 12:18:23 +0200 Subject: [PATCH 13/19] remove comment --- src/methods/delta/deltaTokenModule.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/methods/delta/deltaTokenModule.ts b/src/methods/delta/deltaTokenModule.ts index 6dbaa89d..7ad90b5f 100644 --- a/src/methods/delta/deltaTokenModule.ts +++ b/src/methods/delta/deltaTokenModule.ts @@ -235,8 +235,6 @@ const DeltaTokenModuleAbi = [ type AvailableMethods = ExtractAbiMethodNames; -// returns whatever `contractCaller` returns -// to allow for better versatility export const constructDeltaTokenModule = ( options: Pick< ConstructProviderFetchInput, From 4ac84b318a7024a2b7b288ed106fa4934737a906 Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Thu, 26 Feb 2026 12:19:59 +0200 Subject: [PATCH 14/19] deltaTokenModule/change params and provide defaults to some functions --- src/methods/delta/constants.ts | 11 ++++++ src/methods/delta/deltaTokenModule.ts | 53 +++++++++++++++++++++------ src/methods/delta/getDeltaPrice.ts | 10 ----- 3 files changed, 52 insertions(+), 22 deletions(-) create mode 100644 src/methods/delta/constants.ts diff --git a/src/methods/delta/constants.ts b/src/methods/delta/constants.ts new file mode 100644 index 00000000..bc22e0e0 --- /dev/null +++ b/src/methods/delta/constants.ts @@ -0,0 +1,11 @@ +import { ZERO_ADDRESS } from '../common/orders/buildOrderData'; +import { Bridge } from './helpers/types'; + +// for same-chain Orders, all 0 params +export const DEFAULT_BRIDGE = { + protocolSelector: '0x00000000', // 4 bytes + destinationChainId: 0, + outputToken: ZERO_ADDRESS, + scalingFactor: 0, + protocolData: '0x', +} as const satisfies Bridge; diff --git a/src/methods/delta/deltaTokenModule.ts b/src/methods/delta/deltaTokenModule.ts index 7ad90b5f..a6611c64 100644 --- a/src/methods/delta/deltaTokenModule.ts +++ b/src/methods/delta/deltaTokenModule.ts @@ -9,13 +9,14 @@ import { SignableDeltaOrderData } from './helpers/buildDeltaOrderData'; import { produceDeltaOrderHash } from './preSignDeltaOrder'; import type { ExtractAbiMethodNames } from '../../helpers/misc'; import type { Bridge, DeltaAuctionOrder } from './helpers/types'; +import { DEFAULT_BRIDGE } from './constants'; export type CancelAndWithdrawDeltaOrderParams = { order: DeltaAuctionOrder; signature: string; - bridgeOverride: Pick; - cosignature: string; - isFillable: boolean; + bridgeOverride?: Pick; + cosignature?: string; + isFillable?: boolean; }; export type CancelAndWithdrawDeltaOrder = ( @@ -30,15 +31,27 @@ export type WithdrawDeltaNative = ( requestParams?: RequestParameters ) => Promise; +export type DepositNativeAndPreSignParams = { + orderHash: string; + depositAmount: string; +}; + export type DepositNativeAndPreSign = ( - orderHash: string, - overrides?: TxSendOverrides, + params: DepositNativeAndPreSignParams, + overrides?: Omit, // value is set internally based on depositAmount requestParams?: RequestParameters ) => Promise; +export type DepositNativeAndPreSignDeltaOrderParams = Pick< + DepositNativeAndPreSignParams, + 'depositAmount' +> & { + signableOrderData: SignableDeltaOrderData; +}; + export type DepositNativeAndPreSignDeltaOrder = ( - signableOrderData: SignableDeltaOrderData, - overrides?: TxSendOverrides, + params: DepositNativeAndPreSignDeltaOrderParams, + overrides?: Omit, // value is set internally based on depositAmount requestParams?: RequestParameters ) => Promise; @@ -245,7 +258,16 @@ export const constructDeltaTokenModule = ( const { getDeltaContract } = constructGetDeltaContract(options); const cancelAndWithdrawDeltaOrder: CancelAndWithdrawDeltaOrder = async ( - { order, signature, bridgeOverride, cosignature, isFillable }, + { + order, + signature, + bridgeOverride = { + protocolData: DEFAULT_BRIDGE.protocolData, + protocolSelector: DEFAULT_BRIDGE.protocolSelector, + }, + cosignature = '0x', + isFillable = false, + }, overrides = {}, requestParams ) => { @@ -294,7 +316,7 @@ export const constructDeltaTokenModule = ( }; const depositNativeAndPreSign: DepositNativeAndPreSign = async ( - orderHash, + { orderHash, depositAmount }, overrides = {}, requestParams ) => { @@ -308,7 +330,10 @@ export const constructDeltaTokenModule = ( abi: DeltaTokenModuleAbi, contractMethod: 'depositNativeAndPreSign', args: [orderHash], - overrides, + overrides: { + ...overrides, + value: depositAmount, + }, }); return res; @@ -316,7 +341,11 @@ export const constructDeltaTokenModule = ( const depositNativeAndPreSignDeltaOrder: DepositNativeAndPreSignDeltaOrder< T - > = async (signableOrderData, overrides = {}, requestParams) => { + > = async ( + { signableOrderData, depositAmount }, + overrides = {}, + requestParams + ) => { // types allow to pass OrderData & extra_stuff, but tx will break like that const typedDataOnly: SignableDeltaOrderData = { ...signableOrderData, @@ -325,7 +354,7 @@ export const constructDeltaTokenModule = ( const orderHash = produceDeltaOrderHash(typedDataOnly); const res = await depositNativeAndPreSign( - orderHash, + { orderHash, depositAmount }, overrides, requestParams ); diff --git a/src/methods/delta/getDeltaPrice.ts b/src/methods/delta/getDeltaPrice.ts index d39ddc5a..2d8327dd 100644 --- a/src/methods/delta/getDeltaPrice.ts +++ b/src/methods/delta/getDeltaPrice.ts @@ -7,7 +7,6 @@ import type { EnumerateLiteral, RequestParameters, } from '../../types'; -import { ZERO_ADDRESS } from '../common/orders/buildOrderData'; import { BridgePriceInfo } from './helpers/types'; type SwapSideUnion = EnumerateLiteral; @@ -56,15 +55,6 @@ type DeltaPriceQueryOptions = Omit< excludeBridges?: string; }; -// for same-chain Orders, all 0 params -export const DEFAULT_BRIDGE = { - protocolSelector: '0x00000000', // 4 bytes - destinationChainId: 0, - outputToken: ZERO_ADDRESS, - scalingFactor: 0, - protocolData: '0x', -} as const satisfies Bridge; - export type DeltaPrice = { srcToken: string; destToken: string; From 100dc368914b3779d5d3034b348789d795a0a3ee Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Thu, 26 Feb 2026 12:20:18 +0200 Subject: [PATCH 15/19] reexport deltaTokenModule types from index.ts --- src/index.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/index.ts b/src/index.ts index b09c6bd8..d9b56e88 100644 --- a/src/index.ts +++ b/src/index.ts @@ -220,6 +220,8 @@ import { DeltaTokenModuleFunctions, CancelAndWithdrawDeltaOrderParams, constructDeltaTokenModule, + DepositNativeAndPreSignParams, + DepositNativeAndPreSignDeltaOrderParams, } from './methods/delta/deltaTokenModule'; export { constructSwapSDK, SwapSDKMethods } from './methods/swap'; @@ -403,6 +405,8 @@ export type { CancelDeltaOrderFunctions, DeltaTokenModuleFunctions, CancelAndWithdrawDeltaOrderParams, + DepositNativeAndPreSignParams, + DepositNativeAndPreSignDeltaOrderParams, // types for Quote methods GetQuoteFunctions, QuoteParams, From 3dc09e1307cc7a6014d380bb7c04692f1a29a8ee Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Thu, 26 Feb 2026 12:27:21 +0200 Subject: [PATCH 16/19] CLAUDE.md: document all delta module files with constructors and patterns Co-Authored-By: Claude Opus 4.6 --- CLAUDE.md | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 21a94ddf..5655115c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -27,22 +27,29 @@ Every feature module exports a `constructXxx(options) => XxxFunctions` factory: ## Key File Locations ### Delta Module (`src/methods/delta/`) -| File | Purpose | Generic? | -|------|---------|----------| -| `index.ts` | `DeltaOrderHandlers`, `constructAllDeltaOrdersHandlers` | Yes | -| `deltaTokenModule.ts` | On-chain `cancelAndWithdraw`, `withdrawNative`, `depositNativeAndPreSign` | `` | -| `cancelDeltaOrder.ts` | API cancel (sign, post, cancel) | No | -| `preSignDeltaOrder.ts` | On-chain `setPreSignature`, order hashing | `` | -| `buildDeltaOrder.ts` | Order construction | No | -| `signDeltaOrder.ts` | EIP-712 signing | No | -| `postDeltaOrder.ts` | POST order to API | No | -| `getDeltaContract.ts` | Resolve ParaswapDelta contract address | No | -| `approveForDelta.ts` | Token approval | `` | +| File | Constructor | Purpose | Generic? | Pattern | +|------|-------------|---------|----------|---------| +| `index.ts` | `constructSubmitDeltaOrder`, `constructAllDeltaOrdersHandlers` | Composite: orchestrates all modules, defines `DeltaOrderHandlers` | `submitDelta`: No, `allHandlers`: `` | Composite | +| `buildDeltaOrder.ts` | `constructBuildDeltaOrder` | Build `SignableDeltaOrderData` from params (fetches contract + partner fee, then local computation) | No | API fetch + local | +| `signDeltaOrder.ts` | `constructSignDeltaOrder` | EIP-712 sign order via `signTypedDataCall` → returns signature `string` | No (`any`) | `signTypedDataCall` | +| `postDeltaOrder.ts` | `constructPostDeltaOrder` | POST signed order to API → `DeltaOrderApiResponse` | No | `fetcher` POST | +| `getDeltaPrice.ts` | `constructGetDeltaPrice` | Fetch quote/price from API. Overloaded: returns `DeltaPrice` (same-chain) or `BridgePrice` (cross-chain when `destChainId` present) | No | `fetcher` GET | +| `getDeltaOrders.ts` | `constructGetDeltaOrders` | Query orders from API: `getDeltaOrderById`, `getDeltaOrderByHash`, `getDeltaOrders` (list), `getRequiredBalanceForDeltaLimitOrders` | No | `fetcher` GET | +| `getDeltaContract.ts` | `constructGetDeltaContract` | Resolve ParaswapDelta contract address from contracts endpoint | No | `fetcher` GET | +| `approveForDelta.ts` | `constructApproveTokenForDelta` | ERC-20 `approve` with ParaswapDelta as spender (delegates to `approveTokenMethodFactory`) | `` | `transactCall` | +| `preSignDeltaOrder.ts` | `constructPreSignDeltaOrder` | On-chain `setPreSignature` + order hashing helpers (`hashDeltaOrderTypedData`, `hashDeltaOrder`, `preSignDeltaOrder`) | `` | `transactCall` | +| `cancelDeltaOrder.ts` | `constructCancelDeltaOrder` | API cancel: `signCancelLimitDeltaOrderRequest` → `postCancelLimitDeltaOrderRequest` → `cancelLimitDeltaOrders` (orchestrator) | No (`any`) | `signTypedDataCall` + `fetcher` POST | +| `deltaTokenModule.ts` | `constructDeltaTokenModule` | On-chain `cancelAndWithdrawDeltaOrder`, `withdrawDeltaNative`, `depositNativeAndPreSign`, `depositNativeAndPreSignDeltaOrder` | `` | `transactCall` | +| `getPartnerFee.ts` | `constructGetPartnerFee` | Fetch partner fee info (internally cached per partner in a `Map`) | No | `fetcher` GET | +| `getBridgeInfo.ts` | `constructGetBridgeInfo` | `getBridgeInfo` (supported routes) + `getBridgeProtocols` | No | `fetcher` GET | +| `isTokenSupportedInDelta.ts` | `constructIsTokenSupportedInDelta` | Check if a token is supported → `boolean` | No | `fetcher` GET | +| `constants.ts` | — | `DEFAULT_BRIDGE` constant (all-zero values for same-chain orders) | — | — | ### Delta Helpers (`src/methods/delta/helpers/`) -- `types.ts` — `DeltaAuctionOrder`, `Bridge`, `DeltaAuction`, `DeltaAuctionStatus` -- `buildDeltaOrderData.ts` — EIP-712 type defs, `SignableDeltaOrderData` -- `buildCancelDeltaOrderData.ts` — Cancel order EIP-712 typed data +- `types.ts` — `DeltaAuctionOrder`, `Bridge`, `DeltaAuction`, `DeltaAuctionStatus`, `BridgeMetadata`, `BridgeStatus`, `BridgePriceInfo`, `SwapSideToOrderKind` +- `buildDeltaOrderData.ts` — `buildDeltaSignableOrderData`, `produceDeltaOrderTypedData`, `SignableDeltaOrderData`, `BuildDeltaOrderDataInput`, `DELTA_DEFAULT_EXPIRY` +- `buildCancelDeltaOrderData.ts` — `buildCancelDeltaOrderSignableData`, `SignableCancelDeltaOrderData`, `CancelDeltaOrderData` +- `misc.ts` — `sanitizeDeltaOrderData` (strips extra fields from order data before signing/hashing) ### Core Types (`src/`) - `types.ts` — `ConstructProviderFetchInput`, `ContractCallerFunctions`, `TxSendOverrides` From ac55dd995283a2d38e6becd55959365692f56257 Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Thu, 26 Feb 2026 12:31:15 +0200 Subject: [PATCH 17/19] bring the comment about return type back and remove it for constructCancelDeltaOrder --- src/methods/delta/cancelDeltaOrder.ts | 2 -- src/methods/delta/deltaTokenModule.ts | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/methods/delta/cancelDeltaOrder.ts b/src/methods/delta/cancelDeltaOrder.ts index faedcc8e..b35c215a 100644 --- a/src/methods/delta/cancelDeltaOrder.ts +++ b/src/methods/delta/cancelDeltaOrder.ts @@ -37,8 +37,6 @@ export type CancelDeltaOrderFunctions = { cancelLimitDeltaOrders: CancelDeltaOrder; }; -// returns whatever `contractCaller` returns -// to allow for better versatility export const constructCancelDeltaOrder = ( options: Pick< ConstructProviderFetchInput, diff --git a/src/methods/delta/deltaTokenModule.ts b/src/methods/delta/deltaTokenModule.ts index a6611c64..9a5b7b21 100644 --- a/src/methods/delta/deltaTokenModule.ts +++ b/src/methods/delta/deltaTokenModule.ts @@ -248,6 +248,8 @@ const DeltaTokenModuleAbi = [ type AvailableMethods = ExtractAbiMethodNames; +// returns whatever `contractCaller` returns +// to allow for better versatility export const constructDeltaTokenModule = ( options: Pick< ConstructProviderFetchInput, From 3c66a15be6739d38606827123b525ced23a8506d Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Mon, 2 Mar 2026 14:29:51 +0200 Subject: [PATCH 18/19] Release 9.3.4-dev.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ff06c662..2d9ede63 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@velora-dex/sdk", - "version": "9.3.4-dev.1", + "version": "9.3.4-dev.4", "main": "dist/index.js", "module": "dist/sdk.esm.js", "typings": "dist/index.d.ts", From 06d1c6e5a5b5f54ed1a2147307611b8ad0d84883 Mon Sep 17 00:00:00 2001 From: andrii-shymkiv Date: Tue, 3 Mar 2026 10:13:46 +0200 Subject: [PATCH 19/19] cancelAndWithdrawDeltaOrder/provide defaults --- src/methods/delta/deltaTokenModule.ts | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/src/methods/delta/deltaTokenModule.ts b/src/methods/delta/deltaTokenModule.ts index 9a5b7b21..3f0f78b4 100644 --- a/src/methods/delta/deltaTokenModule.ts +++ b/src/methods/delta/deltaTokenModule.ts @@ -8,14 +8,13 @@ import { sanitizeDeltaOrderData } from './helpers/misc'; import { SignableDeltaOrderData } from './helpers/buildDeltaOrderData'; import { produceDeltaOrderHash } from './preSignDeltaOrder'; import type { ExtractAbiMethodNames } from '../../helpers/misc'; -import type { Bridge, DeltaAuctionOrder } from './helpers/types'; +import type { DeltaAuctionOrder } from './helpers/types'; import { DEFAULT_BRIDGE } from './constants'; export type CancelAndWithdrawDeltaOrderParams = { order: DeltaAuctionOrder; signature: string; - bridgeOverride?: Pick; - cosignature?: string; + /** @description A boolean indicating whether the order is a fillable order. False by default */ isFillable?: boolean; }; @@ -260,16 +259,7 @@ export const constructDeltaTokenModule = ( const { getDeltaContract } = constructGetDeltaContract(options); const cancelAndWithdrawDeltaOrder: CancelAndWithdrawDeltaOrder = async ( - { - order, - signature, - bridgeOverride = { - protocolData: DEFAULT_BRIDGE.protocolData, - protocolSelector: DEFAULT_BRIDGE.protocolSelector, - }, - cosignature = '0x', - isFillable = false, - }, + { order, signature, isFillable = false }, overrides = {}, requestParams ) => { @@ -281,8 +271,13 @@ export const constructDeltaTokenModule = ( const orderWithSig = { order, signature, - bridgeOverride, - cosignature, + // bridgeOverride and cosignature are not used by the contract, + // can always provide defaults + bridgeOverride: { + protocolData: DEFAULT_BRIDGE.protocolData, + protocolSelector: DEFAULT_BRIDGE.protocolSelector, + }, + cosignature: '0x', }; const res = await options.contractCaller.transactCall({