@1delta/trade-sdk 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/aggregator/fetchAggregatorTrade.d.ts.map +1 -1
  2. package/dist/aggregator/fetchAggregatorTrade.js +0 -3
  3. package/dist/composedTrades/across/calldata/createAcrossMessage.d.ts.map +1 -1
  4. package/dist/composedTrades/across/calldata/createAcrossMessage.js +5 -2
  5. package/dist/composedTrades/axelar/axelarWithSwap.d.ts +2 -2
  6. package/dist/composedTrades/axelar/axelarWithSwap.d.ts.map +1 -1
  7. package/dist/composedTrades/axelar/axelarWithSwap.js +12 -6
  8. package/dist/composedTrades/axelar/axelarWithSwaps.d.ts +2 -2
  9. package/dist/composedTrades/axelar/axelarWithSwaps.d.ts.map +1 -1
  10. package/dist/composedTrades/axelar/constants.d.ts +2 -0
  11. package/dist/composedTrades/axelar/constants.d.ts.map +1 -1
  12. package/dist/composedTrades/axelar/constants.js +2 -0
  13. package/dist/composedTrades/axelar/squid/createSquidPayload.d.ts.map +1 -1
  14. package/dist/composedTrades/axelar/squid/createSquidPayload.js +5 -2
  15. package/dist/deltaCall/createDeltaCallsCalldata.d.ts +10 -0
  16. package/dist/deltaCall/createDeltaCallsCalldata.d.ts.map +1 -0
  17. package/dist/deltaCall/createDeltaCallsCalldata.js +28 -0
  18. package/dist/deltaCall/index.d.ts +2 -0
  19. package/dist/deltaCall/index.d.ts.map +1 -0
  20. package/dist/deltaCall/index.js +1 -0
  21. package/dist/deltaCall/toComposerCall.d.ts +4 -0
  22. package/dist/deltaCall/toComposerCall.d.ts.map +1 -0
  23. package/dist/deltaCall/toComposerCall.js +26 -0
  24. package/dist/deltaCall/toForwarderCall.d.ts +4 -0
  25. package/dist/deltaCall/toForwarderCall.d.ts.map +1 -0
  26. package/dist/{composedTrades/utils/deltaComposeCall/toComposerCall.js → deltaCall/toForwarderCall.js} +10 -4
  27. package/dist/index.d.ts +2 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +1 -0
  30. package/dist/initialize.d.ts +14 -3
  31. package/dist/initialize.d.ts.map +1 -1
  32. package/dist/initialize.js +18 -7
  33. package/dist/registry/index.d.ts +7 -0
  34. package/dist/registry/index.d.ts.map +1 -0
  35. package/dist/registry/index.js +19 -0
  36. package/dist/types/bridgeInput.d.ts +13 -3
  37. package/dist/types/bridgeInput.d.ts.map +1 -1
  38. package/dist/types/deltaCall.d.ts +32 -2
  39. package/dist/types/deltaCall.d.ts.map +1 -1
  40. package/dist/types/deltaCall.js +9 -0
  41. package/package.json +10 -10
  42. package/dist/composedTrades/utils/deltaComposeCall/createDeltaComposerCalldata.d.ts +0 -7
  43. package/dist/composedTrades/utils/deltaComposeCall/createDeltaComposerCalldata.d.ts.map +0 -1
  44. package/dist/composedTrades/utils/deltaComposeCall/createDeltaComposerCalldata.js +0 -17
  45. package/dist/composedTrades/utils/deltaComposeCall/toComposerCall.d.ts +0 -4
  46. package/dist/composedTrades/utils/deltaComposeCall/toComposerCall.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fetchAggregatorTrade.d.ts","sourceRoot":"","sources":["../../src/aggregator/fetchAggregatorTrade.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AAMtC,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACd,MAAM,mBAAmB,CAAA;AAK1B,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,EAClB,OAAO,kBAAkB,GAAG,aAAa,EACzC,aAAa,eAAe,KAC3B,OAAO,CAAC,YAAY,GAAG,SAAS,CAgBlC,CAAA"}
1
+ {"version":3,"file":"fetchAggregatorTrade.d.ts","sourceRoot":"","sources":["../../src/aggregator/fetchAggregatorTrade.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AAMtC,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACd,MAAM,mBAAmB,CAAA;AAI1B,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,EAClB,OAAO,kBAAkB,GAAG,aAAa,EACzC,aAAa,eAAe,KAC3B,OAAO,CAAC,YAAY,GAAG,SAAS,CAclC,CAAA"}
@@ -2,10 +2,7 @@ export * from './fetchAggregatorTrade';
2
2
  import { fetchAggregatorTrade as fetchAggregatorTradeWithoutConfigs, } from '@1delta/aggregators';
3
3
  import { getSwapAggregators } from '@1delta/bridge-configs';
4
4
  import { fetchBridgeTrade } from '../bridge';
5
- import { getAvailableAggregators } from './getAvailableAggregators';
6
5
  export const fetchAggregatorTrade = async (aggregator, input, controller) => {
7
- if (!getAvailableAggregators(input.chainId))
8
- return undefined;
9
6
  if (getSwapAggregators().includes(aggregator)) {
10
7
  return await fetchBridgeTrade(aggregator, { ...input, order: 'CHEAPEST' }, controller);
11
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createAcrossMessage.d.ts","sourceRoot":"","sources":["../../../../src/composedTrades/across/calldata/createAcrossMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,GAAG,EAAY,MAAM,MAAM,CAAA;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AAIxE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,uBAAuB,EAAE,MAAM,EAC/B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,eAAe,EAAE,SAAS,EAAE,EAC5B,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,GAAG,CA0DL;AAED,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,mBAAmB,GACvC,UAAU,EAAE,CA8Bd;AAED,wBAAgB,wBAAwB,CACtC,uBAAuB,EAAE,MAAM,EAC/B,uBAAuB,EAAE,MAAM,EAC/B,aAAa,EAAE,MAAM,EAAE,GACtB,GAAG,CAWL"}
1
+ {"version":3,"file":"createAcrossMessage.d.ts","sourceRoot":"","sources":["../../../../src/composedTrades/across/calldata/createAcrossMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,GAAG,EAAY,MAAM,MAAM,CAAA;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AAGxE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,uBAAuB,EAAE,MAAM,EAC/B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,eAAe,EAAE,SAAS,EAAE,EAC5B,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,GAAG,CA4DL;AAED,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,mBAAmB,GACvC,UAAU,EAAE,CA8Bd;AAED,wBAAgB,wBAAwB,CACtC,uBAAuB,EAAE,MAAM,EAC/B,uBAAuB,EAAE,MAAM,EAC/B,aAAa,EAAE,MAAM,EAAE,GACtB,GAAG,CAWL"}
@@ -1,5 +1,5 @@
1
1
  import { encodeFunctionData, parseAbi } from 'viem';
2
- import { createDeltaComposerCalldata } from '../../utils/deltaComposeCall/createDeltaComposerCalldata';
2
+ import { createDeltaCallsCalldata } from '../../../deltaCall/createDeltaCallsCalldata';
3
3
  import { requireDeltaContracts } from '../../utils/requireDeltaContracts';
4
4
  import { createAcrossMultiCallMessage } from './createAcrossMultiCallMessage';
5
5
  /**
@@ -37,7 +37,10 @@ export function createAcrossSwapMessage(multicallHandlerAddress, chainId, inputT
37
37
  const tokensToDrain = inputToken ? [inputToken] : [];
38
38
  const drainToUserCall = createDrainCalls(multicallHandlerAddress, refundAndDrainAddress, tokensToDrain);
39
39
  const drainToForwarder = createDrainCalls(multicallHandlerAddress, forwarder, [outputToken]);
40
- const deltaComposerCall = createDeltaComposerCalldata(chainId, [outputToken], refundAndDrainAddress, additionalCalls);
40
+ const deltaComposerCall = createDeltaCallsCalldata(chainId, additionalCalls, {
41
+ tokensToSweep: [outputToken],
42
+ receiver: refundAndDrainAddress,
43
+ });
41
44
  const callToComposer = {
42
45
  target: deltaComposerCall.to,
43
46
  callData: deltaComposerCall.calldata,
@@ -1,6 +1,6 @@
1
1
  import { GenericTrade, RawCurrency, useGeneralPricesCallbackType } from '@1delta/lib-utils';
2
- import { BaseComposedInput } from '../../types';
3
- export interface AxelarWithSwapInput extends BaseComposedInput {
2
+ import { BaseComposedWithGasLimitInput } from '../../types';
3
+ export interface AxelarWithSwapInput extends BaseComposedWithGasLimitInput {
4
4
  bridgeToCurrency: RawCurrency | undefined;
5
5
  }
6
6
  export declare const fetchAxelarTradeWithSwap: (input: AxelarWithSwapInput, getPrices: useGeneralPricesCallbackType, controller?: AbortController) => Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"axelarWithSwap.d.ts","sourceRoot":"","sources":["../../../src/composedTrades/axelar/axelarWithSwap.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,YAAY,EAGZ,WAAW,EAEX,4BAA4B,EAC7B,MAAM,mBAAmB,CAAA;AAI1B,OAAO,EAGL,iBAAiB,EAClB,MAAM,aAAa,CAAA;AAKpB,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,gBAAgB,EAAE,WAAW,GAAG,SAAS,CAAA;CAC1C;AAED,eAAO,MAAM,wBAAwB,GACnC,OAAO,mBAAmB,EAC1B,WAAW,4BAA4B,EACvC,aAAa,eAAe,KAC3B,OAAO,CAAC;IACT,KAAK,EAAE,YAAY,GAAG,SAAS,CAAA;IAC/B,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB,CA8CA,CAAA;AAED,eAAe,wBAAwB,CAAA"}
1
+ {"version":3,"file":"axelarWithSwap.d.ts","sourceRoot":"","sources":["../../../src/composedTrades/axelar/axelarWithSwap.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,YAAY,EAGZ,WAAW,EAEX,4BAA4B,EAC7B,MAAM,mBAAmB,CAAA;AAI1B,OAAO,EAGL,6BAA6B,EAC9B,MAAM,aAAa,CAAA;AASpB,MAAM,WAAW,mBAAoB,SAAQ,6BAA6B;IACxE,gBAAgB,EAAE,WAAW,GAAG,SAAS,CAAA;CAC1C;AAED,eAAO,MAAM,wBAAwB,GACnC,OAAO,mBAAmB,EAC1B,WAAW,4BAA4B,EACvC,aAAa,eAAe,KAC3B,OAAO,CAAC;IACT,KAAK,EAAE,YAAY,GAAG,SAAS,CAAA;IAC/B,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB,CA8CA,CAAA;AAED,eAAe,wBAAwB,CAAA"}
@@ -3,6 +3,7 @@ import { CurrencyHandler, normalizeDecimals, TradeType, } from '@1delta/lib-util
3
3
  import { fetchBridgeTrade } from '../../bridge/fetchBridgeTrade';
4
4
  import { fetchBridgeAndGasTrade } from '../utils/fetchBridgeAndGasTrade';
5
5
  import { fetchBestTrade } from '../utils/multichainUtils';
6
+ import { ADDITIONAL_CALLS_GAS_LIMIT, DESTINATION_SWAP_GAS_LIMIT, } from './constants';
6
7
  import { createSquidDestinationPayload } from './squid/createSquidPayload';
7
8
  export const fetchAxelarTradeWithSwap = async (input, getPrices, controller) => {
8
9
  if (!input.bridgeToCurrency)
@@ -11,7 +12,7 @@ export const fetchAxelarTradeWithSwap = async (input, getPrices, controller) =>
11
12
  throw new Error('ToCurrency undefined');
12
13
  const toChainId = input.toCurrency.chainId;
13
14
  const toTokenIsBridgeToken = CurrencyHandler.equal(input.bridgeToCurrency, input.toCurrency);
14
- const needDestinationCalls = (input.additionalCalls?.length ?? 0) > 0 || !toTokenIsBridgeToken;
15
+ const needDestinationCalls = (input.additionalCalls?.calls.length ?? 0) > 0 || !toTokenIsBridgeToken;
15
16
  const squidRouter = await getRequiredSquidRouter(toChainId);
16
17
  if (!needDestinationCalls) {
17
18
  // direct case
@@ -45,7 +46,9 @@ const fetchAxelarTradeWithDestinationCalls = async (input, getPrices, controller
45
46
  throw new Error('BridgeToCurrency undefined');
46
47
  const toChainId = input.toCurrency.chainId;
47
48
  const squidMulticall = await getRequiredSquidMulticaller(toChainId);
48
- const additionalCalls = input.additionalCalls ?? [];
49
+ const additionalCallsGasLimit = input.additionalCalls?.gasLimit ?? ADDITIONAL_CALLS_GAS_LIMIT;
50
+ const additionalCalls = input.additionalCalls?.calls ?? [];
51
+ const needsAdditionalCalls = additionalCalls.length > 0;
49
52
  const needsSwap = !CurrencyHandler.equal(input.bridgeToCurrency, input.toCurrency);
50
53
  const fetchSwapAndMessage = async (amount) => {
51
54
  if (needsSwap) {
@@ -74,12 +77,15 @@ const fetchAxelarTradeWithDestinationCalls = async (input, getPrices, controller
74
77
  spender: destinationSwapTrade.target,
75
78
  calls: [tx.EVM],
76
79
  });
77
- return { message, destinationSwapTrade };
80
+ const gasLimit = DESTINATION_SWAP_GAS_LIMIT +
81
+ (needsAdditionalCalls ? additionalCallsGasLimit : 0n);
82
+ return { message, destinationSwapTrade, gasLimit };
78
83
  }
79
- else if (additionalCalls.length > 0) {
84
+ else if (needsAdditionalCalls) {
80
85
  // Handle only destination calls case
81
86
  const message = createSquidDestinationPayload(toChainId, undefined, input.bridgeToCurrency.address, input.receiver, additionalCalls);
82
- return { message, destinationSwapTrade: undefined };
87
+ const gasLimit = additionalCallsGasLimit;
88
+ return { message, destinationSwapTrade: undefined, gasLimit };
83
89
  }
84
90
  return undefined;
85
91
  };
@@ -91,7 +97,7 @@ const fetchAxelarTradeWithDestinationCalls = async (input, getPrices, controller
91
97
  ...input,
92
98
  toCurrency: input.bridgeToCurrency,
93
99
  message: swap.message,
94
- destinationGasLimit: 1000000n,
100
+ destinationGasLimit: swap.gasLimit,
95
101
  };
96
102
  const bridgeAndGasTrade = await fetchBridgeAndGasTrade(Bridge.AXELAR, axelarInput, getPrices, controller);
97
103
  if (!bridgeAndGasTrade)
@@ -1,5 +1,5 @@
1
1
  import { GenericTrade, RawCurrency, useGeneralPricesCallbackType } from '@1delta/lib-utils';
2
- import { BaseComposedInput } from '../../types';
3
- export declare const fetchAxelarTradeWithSwaps: (input: BaseComposedInput, getCurrency: (chainId: string | undefined, tokenAddress: string | undefined) => RawCurrency | undefined, getPrices: useGeneralPricesCallbackType, controller?: AbortController) => Promise<GenericTrade | undefined>;
2
+ import { BaseComposedWithGasLimitInput } from '../../types';
3
+ export declare const fetchAxelarTradeWithSwaps: (input: BaseComposedWithGasLimitInput, getCurrency: (chainId: string | undefined, tokenAddress: string | undefined) => RawCurrency | undefined, getPrices: useGeneralPricesCallbackType, controller?: AbortController) => Promise<GenericTrade | undefined>;
4
4
  export default fetchAxelarTradeWithSwaps;
5
5
  //# sourceMappingURL=axelarWithSwaps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"axelarWithSwaps.d.ts","sourceRoot":"","sources":["../../../src/composedTrades/axelar/axelarWithSwaps.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,YAAY,EAMZ,WAAW,EAGX,4BAA4B,EAC7B,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAmB,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAmBhE,eAAO,MAAM,yBAAyB,GACpC,OAAO,iBAAiB,EACxB,aAAa,CACX,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,YAAY,EAAE,MAAM,GAAG,SAAS,KAC7B,WAAW,GAAG,SAAS,EAC5B,WAAW,4BAA4B,EACvC,aAAa,eAAe,KAC3B,OAAO,CAAC,YAAY,GAAG,SAAS,CA8JlC,CAAA;AAED,eAAe,yBAAyB,CAAA"}
1
+ {"version":3,"file":"axelarWithSwaps.d.ts","sourceRoot":"","sources":["../../../src/composedTrades/axelar/axelarWithSwaps.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,YAAY,EAMZ,WAAW,EAGX,4BAA4B,EAC7B,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAmB,6BAA6B,EAAE,MAAM,aAAa,CAAA;AAmB5E,eAAO,MAAM,yBAAyB,GACpC,OAAO,6BAA6B,EACpC,aAAa,CACX,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,YAAY,EAAE,MAAM,GAAG,SAAS,KAC7B,WAAW,GAAG,SAAS,EAC5B,WAAW,4BAA4B,EACvC,aAAa,eAAe,KAC3B,OAAO,CAAC,YAAY,GAAG,SAAS,CA8JlC,CAAA;AAED,eAAe,yBAAyB,CAAA"}
@@ -6,4 +6,6 @@ export declare enum AxelarTokenSymbol {
6
6
  axlWBTC = "wbtc-satoshi",
7
7
  axlETH = "weth-wei"
8
8
  }
9
+ export declare const DESTINATION_SWAP_GAS_LIMIT = 2000000n;
10
+ export declare const ADDITIONAL_CALLS_GAS_LIMIT = 1000000n;
9
11
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/composedTrades/axelar/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B,OAAO,UAAU;IACjB,GAAG,SAAS;IACZ,MAAM,YAAY;IAClB,OAAO,UAAU;IACjB,OAAO,iBAAiB;IACxB,MAAM,aAAa;CACpB"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/composedTrades/axelar/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B,OAAO,UAAU;IACjB,GAAG,SAAS;IACZ,MAAM,YAAY;IAClB,OAAO,UAAU;IACjB,OAAO,iBAAiB;IACxB,MAAM,aAAa;CACpB;AAED,eAAO,MAAM,0BAA0B,WAAa,CAAA;AAEpD,eAAO,MAAM,0BAA0B,WAAa,CAAA"}
@@ -7,3 +7,5 @@ export var AxelarTokenSymbol;
7
7
  AxelarTokenSymbol["axlWBTC"] = "wbtc-satoshi";
8
8
  AxelarTokenSymbol["axlETH"] = "weth-wei";
9
9
  })(AxelarTokenSymbol || (AxelarTokenSymbol = {}));
10
+ export const DESTINATION_SWAP_GAS_LIMIT = 2000000n;
11
+ export const ADDITIONAL_CALLS_GAS_LIMIT = 1000000n;
@@ -1 +1 @@
1
- {"version":3,"file":"createSquidPayload.d.ts","sourceRoot":"","sources":["../../../../src/composedTrades/axelar/squid/createSquidPayload.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+B,GAAG,EAAyB,MAAM,MAAM,CAAA;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AA0DxE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,eAAe,EAAE,SAAS,EAAE,EAC5B,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,GAAG,CA2DL"}
1
+ {"version":3,"file":"createSquidPayload.d.ts","sourceRoot":"","sources":["../../../../src/composedTrades/axelar/squid/createSquidPayload.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+B,GAAG,EAAyB,MAAM,MAAM,CAAA;AAG9E,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AAyDxE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAC7B,eAAe,EAAE,SAAS,EAAE,EAC5B,mBAAmB,CAAC,EAAE,mBAAmB,GACxC,GAAG,CA6DL"}
@@ -1,7 +1,7 @@
1
1
  import { createSquidPayload } from '@1delta/bridge-configs';
2
2
  import { CurrencyHandler } from '@1delta/lib-utils';
3
3
  import { encodeFunctionData, parseAbi, zeroAddress } from 'viem';
4
- import { createDeltaComposerCalldata } from '../../utils/deltaComposeCall/createDeltaComposerCalldata';
4
+ import { createDeltaCallsCalldata } from '../../../deltaCall/createDeltaCallsCalldata';
5
5
  import { requireDeltaContracts } from '../../utils/requireDeltaContracts';
6
6
  import { toSquidCall } from './simpleSquidCall';
7
7
  import { SimpleSquidCallType } from './types';
@@ -89,7 +89,10 @@ export function createSquidDestinationPayload(chainId, inputToken, outputToken,
89
89
  const drainToForwarder = CurrencyHandler.isNativeAddress(outputToken, chainId)
90
90
  ? []
91
91
  : createSquidDrainCalls(forwarder, [outputToken]);
92
- const deltaComposerCall = createDeltaComposerCalldata(chainId, [outputToken], refundAndDrainAddress, additionalCalls);
92
+ const deltaComposerCall = createDeltaCallsCalldata(chainId, additionalCalls, {
93
+ tokensToSweep: [outputToken],
94
+ receiver: refundAndDrainAddress,
95
+ });
93
96
  const callToComposer = {
94
97
  callType: SimpleSquidCallType.FULL_NATIVE_BALANCE,
95
98
  target: deltaComposerCall.to,
@@ -0,0 +1,10 @@
1
+ import { Address, Hex } from 'viem';
2
+ import { DeltaCall } from '../types/deltaCall';
3
+ export declare const createDeltaCallsCalldata: (chainId: string, calls: DeltaCall[], sweepProps?: {
4
+ tokensToSweep: string[];
5
+ receiver: string;
6
+ }) => {
7
+ calldata: Hex;
8
+ to: Address;
9
+ };
10
+ //# sourceMappingURL=createDeltaCallsCalldata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDeltaCallsCalldata.d.ts","sourceRoot":"","sources":["../../src/deltaCall/createDeltaCallsCalldata.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,EAAuB,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAInE,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,EACf,OAAO,SAAS,EAAE,EAClB,aAAa;IACX,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;CACjB,KACA;IACD,QAAQ,EAAE,GAAG,CAAA;IACb,EAAE,EAAE,OAAO,CAAA;CAuCZ,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { encodeExternalCall, encodeSweep, SweepType } from '@1delta/calldatalib';
2
+ import { encodeComposerCompose, packCommands } from '@1delta/lib-utils';
3
+ import { requireDeltaContracts } from '../composedTrades/utils/requireDeltaContracts';
4
+ import { COMPOSER_CALL_TYPES } from '../types/deltaCall';
5
+ import { toComposerCall } from './toComposerCall';
6
+ import { toForwarderCall } from './toForwarderCall';
7
+ export const createDeltaCallsCalldata = (chainId, calls, sweepProps) => {
8
+ const { forwarder, composer } = requireDeltaContracts(chainId);
9
+ const composerCommands = calls
10
+ .filter((call) => COMPOSER_CALL_TYPES.includes(call.callType))
11
+ .flatMap((call) => toComposerCall(call, forwarder));
12
+ const forwarderCommands = calls
13
+ .filter((call) => !COMPOSER_CALL_TYPES.includes(call.callType))
14
+ .map((call) => toForwarderCall(call));
15
+ // sweep tokens at the end
16
+ if (sweepProps) {
17
+ const { tokensToSweep, receiver } = sweepProps;
18
+ for (const tokenAddress of tokensToSweep) {
19
+ const sweepCall = encodeSweep(tokenAddress, receiver, 0n, SweepType.VALIDATE);
20
+ forwarderCommands.push(sweepCall);
21
+ }
22
+ }
23
+ const calldata = encodeComposerCompose(packCommands([
24
+ ...composerCommands,
25
+ encodeExternalCall(forwarder, 0n, true, packCommands(forwarderCommands)),
26
+ ]));
27
+ return { calldata, to: composer };
28
+ };
@@ -0,0 +1,2 @@
1
+ export * from './createDeltaCallsCalldata';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deltaCall/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA"}
@@ -0,0 +1 @@
1
+ export * from './createDeltaCallsCalldata';
@@ -0,0 +1,4 @@
1
+ import { Hex } from 'viem';
2
+ import { DeltaCall } from '../types/deltaCall';
3
+ export declare function toComposerCall(call: DeltaCall, receiver: string): Hex[];
4
+ //# sourceMappingURL=toComposerCall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toComposerCall.d.ts","sourceRoot":"","sources":["../../src/deltaCall/toComposerCall.ts"],"names":[],"mappings":"AAMA,OAAO,EAAW,GAAG,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,EACL,SAAS,EAGV,MAAM,oBAAoB,CAAA;AAE3B,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,EAAE,CAgDvE"}
@@ -0,0 +1,26 @@
1
+ import { encodePermit, encodePermit2TransferFrom, encodeTransferIn, PermitIds, } from '@1delta/calldatalib';
2
+ import { DeltaCallPermitType, DeltaCallType, } from '../types/deltaCall';
3
+ export function toComposerCall(call, receiver) {
4
+ switch (call.callType) {
5
+ case DeltaCallType.TRANSFER_IN: {
6
+ if (call.permitType === DeltaCallPermitType.ERC20_PERMIT) {
7
+ const permitCall = encodePermit(BigInt(PermitIds.TOKEN_PERMIT), call.tokenAddress, call.permitData);
8
+ const transferCall = encodeTransferIn(call.tokenAddress, receiver, call.amount ?? 0n);
9
+ return [permitCall, transferCall];
10
+ }
11
+ else if (call.permitType === DeltaCallPermitType.PERMIT2) {
12
+ const permitCall = encodePermit(BigInt(PermitIds.TOKEN_PERMIT), call.tokenAddress, call.permitData);
13
+ const permit2TransferCall = encodePermit2TransferFrom(call.tokenAddress, receiver, call.amount ?? 0n);
14
+ return [permitCall, permit2TransferCall];
15
+ }
16
+ else if (call.permitType === DeltaCallPermitType.NONE) {
17
+ const transferCall = encodeTransferIn(call.tokenAddress, receiver, call.amount ?? 0n);
18
+ return [transferCall];
19
+ }
20
+ return [];
21
+ }
22
+ default: {
23
+ throw new Error(`Unsupported DeltaCallType for Composer: ${call.callType}`);
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,4 @@
1
+ import { Hex } from 'viem';
2
+ import { DeltaCall } from '../types/deltaCall';
3
+ export declare function toForwarderCall(call: DeltaCall): Hex;
4
+ //# sourceMappingURL=toForwarderCall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toForwarderCall.d.ts","sourceRoot":"","sources":["../../src/deltaCall/toForwarderCall.ts"],"names":[],"mappings":"AAOA,OAAO,EAAW,GAAG,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAA;AAE7D,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,GAAG,CA4CpD"}
@@ -1,6 +1,6 @@
1
- import { encodeExternalCall, encodeExternalCallWithReplace, encodeSweep, SweepType, } from '@1delta/calldatalib';
2
- import { DeltaCallType } from '../../../types/deltaCall';
3
- export function toComposerCall(call) {
1
+ import { encodeApprove, encodeExternalCall, encodeExternalCallWithReplace, encodeSweep, SweepType, } from '@1delta/calldatalib';
2
+ import { DeltaCallType } from '../types/deltaCall';
3
+ export function toForwarderCall(call) {
4
4
  switch (call.callType) {
5
5
  case DeltaCallType.FULL_TOKEN_BALANCE: {
6
6
  const replaceOffset = 32 * call.balanceOfInjectIndex;
@@ -12,8 +12,14 @@ export function toComposerCall(call) {
12
12
  case DeltaCallType.SWEEP_WITH_VALIDATION: {
13
13
  return encodeSweep(call.tokenAddress, call.receiver, call.limit, SweepType.VALIDATE);
14
14
  }
15
- default: {
15
+ case DeltaCallType.APPROVE: {
16
+ return encodeApprove(call.tokenAddress, call.spender);
17
+ }
18
+ case DeltaCallType.DEFAULT: {
16
19
  return encodeExternalCall(call.target, call.value ?? 0n, false, call.callData);
17
20
  }
21
+ default: {
22
+ throw new Error(`Unsupported DeltaCallType for Forwarder: ${call.callType}`);
23
+ }
18
24
  }
19
25
  }
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  export { fetchAggregatorTrade, getAvailableAggregators } from './aggregator';
2
2
  export { fetchBridgeTrade as fetchBridgeTradeWithoutComposed } from './bridge';
3
3
  export * from './core';
4
+ export { createDeltaCallsCalldata } from './deltaCall';
4
5
  export * from './initialize';
5
- export type { BridgeInput, DeltaCall, DeltaCallType } from './types';
6
+ export type { BridgeInput, DeltaCall, DeltaCallPermitType, DeltaCallType, } from './types';
6
7
  export { TradeAggregator } from '@1delta/aggregators';
7
8
  export { Bridge, getBridges, getCowSwapSlippage, getSwapAggregators, } from '@1delta/bridge-configs';
8
9
  export type { Params as BridgeParams, Status as BridgeStatus, } from '@1delta/bridge-core';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,gBAAgB,IAAI,+BAA+B,EAAE,MAAM,UAAU,CAAA;AAC9E,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EACL,MAAM,EACN,UAAU,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,MAAM,IAAI,YAAY,EACtB,MAAM,IAAI,YAAY,GACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,aAAa,EACb,SAAS,IAAI,eAAe,GAC7B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,gBAAgB,IAAI,+BAA+B,EAAE,MAAM,UAAU,CAAA;AAC9E,cAAc,QAAQ,CAAA;AACtB,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,cAAc,cAAc,CAAA;AAC5B,YAAY,EACV,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EACL,MAAM,EACN,UAAU,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,MAAM,IAAI,YAAY,EACtB,MAAM,IAAI,YAAY,GACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,aAAa,EACb,SAAS,IAAI,eAAe,GAC7B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAA"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export { fetchAggregatorTrade, getAvailableAggregators } from './aggregator';
2
2
  export { fetchBridgeTrade as fetchBridgeTradeWithoutComposed } from './bridge';
3
3
  export * from './core';
4
+ export { createDeltaCallsCalldata } from './deltaCall';
4
5
  export * from './initialize';
5
6
  export { TradeAggregator } from '@1delta/aggregators';
6
7
  export { Bridge, getBridges, getCowSwapSlippage, getSwapAggregators, } from '@1delta/bridge-configs';
@@ -1,14 +1,21 @@
1
+ import { AggregatorFetcher, TradeAggregator } from '@1delta/aggregators';
2
+ import { Bridge } from '@1delta/bridge-configs';
3
+ import { CrossChainConfig } from '@1delta/bridge-core';
1
4
  import { WalletClient } from 'viem';
2
5
  type SdkConfig = {
3
6
  isProductionEnv: boolean;
4
7
  loadChainData: boolean;
5
8
  loadSquidData: boolean;
6
9
  load1deltaConfigs: boolean;
10
+ bridgeBlacklist?: Bridge[];
11
+ aggregatorBlacklist?: TradeAggregator[];
12
+ customConfigs?: CrossChainConfig[];
13
+ customFetchers?: Map<string, AggregatorFetcher>;
7
14
  };
8
15
  /**
9
16
  * Initializes the 1Delta SDK with the provided configuration.
10
- * This function sets up the production environment flag, loads bridge configurations,
11
- * initializes chain data, and caches Squid chains based on the provided configuration.
17
+ * This function sets up the production environment flag, loads chain data,
18
+ * caches Squid chains, and registers bridge configurations and fetchers.
12
19
  *
13
20
  * @async
14
21
  * @param {SdkConfig} config - The configuration object for initializing the SDK
@@ -17,8 +24,12 @@ type SdkConfig = {
17
24
  * When using outside of the 1delta UI, set this to true to load required chain data.
18
25
  * @param {boolean} config.loadSquidData - Whether to fetch and cache Squid chains data.
19
26
  * When using outside of the 1delta UI, set this to true to load Squid data.
20
- * @param {boolean} config.load1deltaConfigs - Whether to load and register 1Delta bridge configurations.
27
+ * @param {boolean} config.load1deltaConfigs - Whether to load and register 1Delta bridge configs.
21
28
  * When using outside of the 1delta UI, set this to true to load bridge configs.
29
+ * @param {Bridge[]} [config.bridgeBlacklist] - Optional list of bridge names to exclude
30
+ * @param {TradeAggregator[]} [config.aggregatorBlacklist] - Optional list of aggregator names to exclude
31
+ * @param {CrossChainConfig[]} [config.customConfigs] - Optional custom bridge configs
32
+ * @param {Map<string, AggregatorFetcher>} [config.customFetchers] - Optional custom aggregator fetchers
22
33
  * @returns {Promise<void>} A promise that resolves when initialization is complete
23
34
  *
24
35
  * @note When using this SDK outside of the 1delta UI, you should set all parameters to `true`
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../src/initialize.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAInC,KAAK,SAAS,GAAG;IACf,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;IACtB,iBAAiB,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,UAAU,GAAU,QAAQ,SAAS,KAAG,OAAO,CAAC,IAAI,CAMhE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,cAAc,YAAY,SAEzD,CAAA"}
1
+ {"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../src/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EACL,MAAM,EAGP,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AASnC,KAAK,SAAS,GAAG;IACf,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;IACtB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,mBAAmB,CAAC,EAAE,eAAe,EAAE,CAAA;IACvC,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAClC,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;CAChD,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,UAAU,GAAU,QAAQ,SAAS,KAAG,OAAO,CAAC,IAAI,CAYhE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,cAAc,YAAY,SAEzD,CAAA"}
@@ -1,11 +1,11 @@
1
- import { fetchAndCacheSquidChains, getAllBridgeConfigs, setWalletClient as setWalletClientBridgeConfigs, } from '@1delta/bridge-configs';
2
- import { registerConfig } from '@1delta/bridge-core';
1
+ import { fetchAndCacheSquidChains, setWalletClient as setWalletClientBridgeConfigs, } from '@1delta/bridge-configs';
3
2
  import { cleanupExpiredCache, setIsProduction } from '@1delta/lib-utils';
4
3
  import { inititalizeChainData } from './data/chainData';
4
+ import { registerCustomConfigs, registerCustomFetchers, registerDeltaConfigsAndFetchers, } from './registry';
5
5
  /**
6
6
  * Initializes the 1Delta SDK with the provided configuration.
7
- * This function sets up the production environment flag, loads bridge configurations,
8
- * initializes chain data, and caches Squid chains based on the provided configuration.
7
+ * This function sets up the production environment flag, loads chain data,
8
+ * caches Squid chains, and registers bridge configurations and fetchers.
9
9
  *
10
10
  * @async
11
11
  * @param {SdkConfig} config - The configuration object for initializing the SDK
@@ -14,8 +14,12 @@ import { inititalizeChainData } from './data/chainData';
14
14
  * When using outside of the 1delta UI, set this to true to load required chain data.
15
15
  * @param {boolean} config.loadSquidData - Whether to fetch and cache Squid chains data.
16
16
  * When using outside of the 1delta UI, set this to true to load Squid data.
17
- * @param {boolean} config.load1deltaConfigs - Whether to load and register 1Delta bridge configurations.
17
+ * @param {boolean} config.load1deltaConfigs - Whether to load and register 1Delta bridge configs.
18
18
  * When using outside of the 1delta UI, set this to true to load bridge configs.
19
+ * @param {Bridge[]} [config.bridgeBlacklist] - Optional list of bridge names to exclude
20
+ * @param {TradeAggregator[]} [config.aggregatorBlacklist] - Optional list of aggregator names to exclude
21
+ * @param {CrossChainConfig[]} [config.customConfigs] - Optional custom bridge configs
22
+ * @param {Map<string, AggregatorFetcher>} [config.customFetchers] - Optional custom aggregator fetchers
19
23
  * @returns {Promise<void>} A promise that resolves when initialization is complete
20
24
  *
21
25
  * @note When using this SDK outside of the 1delta UI, you should set all parameters to `true`
@@ -23,12 +27,19 @@ import { inititalizeChainData } from './data/chainData';
23
27
  */
24
28
  export const initialize = async (config) => {
25
29
  setIsProduction(config.isProductionEnv);
26
- if (config.load1deltaConfigs)
27
- getAllBridgeConfigs().forEach(registerConfig);
28
30
  if (config.loadChainData)
29
31
  await inititalizeChainData();
30
32
  if (config.loadSquidData)
31
33
  await fetchAndCacheSquidChains();
34
+ if (config.load1deltaConfigs) {
35
+ const bridgeBlacklist = config.bridgeBlacklist || [];
36
+ const aggregatorBlacklist = config.aggregatorBlacklist || [];
37
+ registerDeltaConfigsAndFetchers(bridgeBlacklist, aggregatorBlacklist);
38
+ }
39
+ if (config.customConfigs)
40
+ registerCustomConfigs(config.customConfigs);
41
+ if (config.customFetchers)
42
+ registerCustomFetchers(config.customFetchers);
32
43
  cleanupExpiredCache();
33
44
  };
34
45
  /**
@@ -0,0 +1,7 @@
1
+ import { AggregatorFetcher, TradeAggregator } from '@1delta/aggregators';
2
+ import { Bridge } from '@1delta/bridge-configs';
3
+ import { CrossChainConfig } from '@1delta/bridge-core';
4
+ export declare const registerDeltaConfigsAndFetchers: (bridgeBlacklist: Bridge[], aggregatorBlacklist: TradeAggregator[]) => Promise<void>;
5
+ export declare const registerCustomConfigs: (customConfigs: CrossChainConfig[]) => void;
6
+ export declare const registerCustomFetchers: (customFetchers: Map<string, AggregatorFetcher>) => void;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAGjB,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAuB,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAkB,MAAM,qBAAqB,CAAA;AAEtE,eAAO,MAAM,+BAA+B,GAC1C,iBAAiB,MAAM,EAAE,EACzB,qBAAqB,eAAe,EAAE,KACrC,OAAO,CAAC,IAAI,CAYd,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,eAAe,gBAAgB,EAAE,KAChC,IAEF,CAAA;AAED,eAAO,MAAM,sBAAsB,GACjC,gBAAgB,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAC7C,IAEF,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { getAllAggregatorFetchers, registerFetcher, } from '@1delta/aggregators';
2
+ import { getAllBridgeConfigs } from '@1delta/bridge-configs';
3
+ import { registerConfig } from '@1delta/bridge-core';
4
+ export const registerDeltaConfigsAndFetchers = async (bridgeBlacklist, aggregatorBlacklist) => {
5
+ // Register delta configs, excluding any blacklisted ones
6
+ getAllBridgeConfigs()
7
+ .filter((bridge) => !bridgeBlacklist.includes(bridge.name))
8
+ .forEach(registerConfig);
9
+ // Register delta fetchers, excluding any blacklisted ones
10
+ getAllAggregatorFetchers()
11
+ .filter(([name, _]) => !aggregatorBlacklist.includes(name))
12
+ .forEach(([name, fetcher]) => registerFetcher(name, fetcher));
13
+ };
14
+ export const registerCustomConfigs = (customConfigs) => {
15
+ customConfigs.forEach(registerConfig);
16
+ };
17
+ export const registerCustomFetchers = (customFetchers) => {
18
+ customFetchers.forEach((fetcher, name) => registerFetcher(name, fetcher));
19
+ };
@@ -15,16 +15,26 @@ export interface BaseBridgeInput {
15
15
  destinationGasLimit?: bigint;
16
16
  }
17
17
  export interface BaseComposedInput extends BaseBridgeInput {
18
- additionalCalls?: DeltaCall[];
18
+ additionalCalls: DeltaCall[];
19
+ }
20
+ export interface BaseComposedWithGasLimitInput extends BaseBridgeInput {
21
+ additionalCalls?: {
22
+ calls: DeltaCall[];
23
+ gasLimit?: bigint;
24
+ };
19
25
  }
20
26
  type ComposedInput = {
21
- bridge: Bridge.ACROSS | Bridge.AXELAR;
27
+ bridge: Bridge.ACROSS;
22
28
  input: BaseComposedInput;
23
29
  };
30
+ type ComposedWithGasLimitInput = {
31
+ bridge: Bridge.AXELAR;
32
+ input: BaseComposedWithGasLimitInput;
33
+ };
24
34
  interface DefaultBridgeInput extends BaseBridgeInput {
25
35
  bridge: Exclude<Bridge, Bridge.AXELAR | Bridge.ACROSS>;
26
36
  input: BaseBridgeInput;
27
37
  }
28
- export type BridgeInput = ComposedInput | DefaultBridgeInput;
38
+ export type BridgeInput = ComposedInput | ComposedWithGasLimitInput | DefaultBridgeInput;
29
39
  export {};
30
40
  //# sourceMappingURL=bridgeInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeInput.d.ts","sourceRoot":"","sources":["../../src/types/bridgeInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,EAAE,WAAW,GAAG,SAAS,CAAA;IACrC,UAAU,EAAE,WAAW,GAAG,SAAS,CAAA;IACnC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,eAAe,CAAC,EAAE,SAAS,EAAE,CAAA;CAC9B;AAED,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IACrC,KAAK,EAAE,iBAAiB,CAAA;CACzB,CAAA;AAED,UAAU,kBAAmB,SAAQ,eAAe;IAClD,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IACtD,KAAK,EAAE,eAAe,CAAA;CACvB;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,kBAAkB,CAAA"}
1
+ {"version":3,"file":"bridgeInput.d.ts","sourceRoot":"","sources":["../../src/types/bridgeInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,EAAE,WAAW,GAAG,SAAS,CAAA;IACrC,UAAU,EAAE,WAAW,GAAG,SAAS,CAAA;IACnC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,eAAe,EAAE,SAAS,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,6BAA8B,SAAQ,eAAe;IACpE,eAAe,CAAC,EAAE;QAChB,KAAK,EAAE,SAAS,EAAE,CAAA;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;CACF;AAED,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAA;IACrB,KAAK,EAAE,iBAAiB,CAAA;CACzB,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAA;IACrB,KAAK,EAAE,6BAA6B,CAAA;CACrC,CAAA;AAED,UAAU,kBAAmB,SAAQ,eAAe;IAClD,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IACtD,KAAK,EAAE,eAAe,CAAA;CACvB;AAED,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,yBAAyB,GACzB,kBAAkB,CAAA"}
@@ -3,8 +3,16 @@ export declare enum DeltaCallType {
3
3
  DEFAULT = 0,
4
4
  FULL_TOKEN_BALANCE = 1,
5
5
  FULL_NATIVE_BALANCE = 2,
6
- SWEEP_WITH_VALIDATION = 3
6
+ SWEEP_WITH_VALIDATION = 3,
7
+ TRANSFER_IN = 4,
8
+ APPROVE = 5
7
9
  }
10
+ export declare enum DeltaCallPermitType {
11
+ ERC20_PERMIT = 0,
12
+ PERMIT2 = 1,
13
+ NONE = 2
14
+ }
15
+ export declare const COMPOSER_CALL_TYPES: DeltaCallType[];
8
16
  interface BaseCall {
9
17
  target: string;
10
18
  value?: bigint;
@@ -24,9 +32,31 @@ interface SweepWithValidationCall {
24
32
  limit: bigint;
25
33
  receiver: string;
26
34
  }
35
+ interface BaseTransferInCall {
36
+ callType: DeltaCallType.TRANSFER_IN;
37
+ tokenAddress: string;
38
+ amount?: bigint;
39
+ }
40
+ interface NonePermitTransferInCall extends BaseTransferInCall {
41
+ permitType: DeltaCallPermitType.NONE;
42
+ }
43
+ interface ERC20PermitCall extends BaseTransferInCall {
44
+ permitType: DeltaCallPermitType.ERC20_PERMIT;
45
+ permitData: Hex;
46
+ }
47
+ interface Permit2Call extends BaseTransferInCall {
48
+ permitType: DeltaCallPermitType.PERMIT2;
49
+ permitData: Hex;
50
+ }
51
+ type TransferInCall = ERC20PermitCall | Permit2Call | NonePermitTransferInCall;
52
+ interface ApproveCall {
53
+ callType: DeltaCallType.APPROVE;
54
+ tokenAddress: string;
55
+ spender: string;
56
+ }
27
57
  interface DefaultCall extends BaseCall {
28
58
  callType: DeltaCallType.DEFAULT;
29
59
  }
30
- export type DeltaCall = FullTokenBalanceCall | FullNativeBalanceCall | SweepWithValidationCall | DefaultCall;
60
+ export type DeltaCall = FullTokenBalanceCall | FullNativeBalanceCall | SweepWithValidationCall | TransferInCall | ApproveCall | DefaultCall;
31
61
  export {};
32
62
  //# sourceMappingURL=deltaCall.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deltaCall.d.ts","sourceRoot":"","sources":["../../src/types/deltaCall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAE1B,oBAAY,aAAa;IACvB,OAAO,IAAI;IACX,kBAAkB,IAAI;IACtB,mBAAmB,IAAI;IACvB,qBAAqB,IAAI;CAC1B;AAED,UAAU,QAAQ;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,GAAG,CAAA;CACd;AAED,UAAU,oBAAqB,SAAQ,QAAQ;IAC7C,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAA;IAC1C,YAAY,EAAE,MAAM,CAAA;IACpB,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,UAAU,qBAAsB,SAAQ,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC7D,QAAQ,EAAE,aAAa,CAAC,mBAAmB,CAAA;CAC5C;AAED,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,aAAa,CAAC,qBAAqB,CAAA;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,WAAY,SAAQ,QAAQ;IACpC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAA;CAChC;AAED,MAAM,MAAM,SAAS,GACjB,oBAAoB,GACpB,qBAAqB,GACrB,uBAAuB,GACvB,WAAW,CAAA"}
1
+ {"version":3,"file":"deltaCall.d.ts","sourceRoot":"","sources":["../../src/types/deltaCall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAE1B,oBAAY,aAAa;IACvB,OAAO,IAAI;IACX,kBAAkB,IAAI;IACtB,mBAAmB,IAAI;IACvB,qBAAqB,IAAI;IACzB,WAAW,IAAI;IACf,OAAO,IAAI;CACZ;AAED,oBAAY,mBAAmB;IAC7B,YAAY,IAAI;IAChB,OAAO,IAAI;IACX,IAAI,IAAI;CACT;AAED,eAAO,MAAM,mBAAmB,iBAA8B,CAAA;AAE9D,UAAU,QAAQ;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,GAAG,CAAA;CACd;AAED,UAAU,oBAAqB,SAAQ,QAAQ;IAC7C,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAA;IAC1C,YAAY,EAAE,MAAM,CAAA;IACpB,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,UAAU,qBAAsB,SAAQ,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC7D,QAAQ,EAAE,aAAa,CAAC,mBAAmB,CAAA;CAC5C;AAED,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,aAAa,CAAC,qBAAqB,CAAA;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,aAAa,CAAC,WAAW,CAAA;IACnC,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,wBAAyB,SAAQ,kBAAkB;IAC3D,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAA;CACrC;AAED,UAAU,eAAgB,SAAQ,kBAAkB;IAClD,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAA;IAC5C,UAAU,EAAE,GAAG,CAAA;CAChB;AAED,UAAU,WAAY,SAAQ,kBAAkB;IAC9C,UAAU,EAAE,mBAAmB,CAAC,OAAO,CAAA;IACvC,UAAU,EAAE,GAAG,CAAA;CAChB;AAED,KAAK,cAAc,GAAG,eAAe,GAAG,WAAW,GAAG,wBAAwB,CAAA;AAE9E,UAAU,WAAW;IACnB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,WAAY,SAAQ,QAAQ;IACpC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAA;CAChC;AAED,MAAM,MAAM,SAAS,GACjB,oBAAoB,GACpB,qBAAqB,GACrB,uBAAuB,GACvB,cAAc,GACd,WAAW,GACX,WAAW,CAAA"}
@@ -4,4 +4,13 @@ export var DeltaCallType;
4
4
  DeltaCallType[DeltaCallType["FULL_TOKEN_BALANCE"] = 1] = "FULL_TOKEN_BALANCE";
5
5
  DeltaCallType[DeltaCallType["FULL_NATIVE_BALANCE"] = 2] = "FULL_NATIVE_BALANCE";
6
6
  DeltaCallType[DeltaCallType["SWEEP_WITH_VALIDATION"] = 3] = "SWEEP_WITH_VALIDATION";
7
+ DeltaCallType[DeltaCallType["TRANSFER_IN"] = 4] = "TRANSFER_IN";
8
+ DeltaCallType[DeltaCallType["APPROVE"] = 5] = "APPROVE";
7
9
  })(DeltaCallType || (DeltaCallType = {}));
10
+ export var DeltaCallPermitType;
11
+ (function (DeltaCallPermitType) {
12
+ DeltaCallPermitType[DeltaCallPermitType["ERC20_PERMIT"] = 0] = "ERC20_PERMIT";
13
+ DeltaCallPermitType[DeltaCallPermitType["PERMIT2"] = 1] = "PERMIT2";
14
+ DeltaCallPermitType[DeltaCallPermitType["NONE"] = 2] = "NONE";
15
+ })(DeltaCallPermitType || (DeltaCallPermitType = {}));
16
+ export const COMPOSER_CALL_TYPES = [DeltaCallType.TRANSFER_IN];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1delta/trade-sdk",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "1Delta Trade SDK for handling cross-chain swaps and bridges",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -8,18 +8,18 @@
8
8
  "license": "UNLICENSED",
9
9
  "dependencies": {
10
10
  "@1delta/calldatalib": "^0.0.46",
11
- "viem": "^2.33.0",
12
- "@1delta/data-sdk": "^0.0.8",
13
- "@1delta/aggregators": "0.1.3",
14
- "@1delta/bridge-configs": "0.1.3",
15
- "@1delta/bridge-core": "0.1.1",
16
- "@1delta/lib-utils": "0.1.3"
11
+ "@1delta/data-sdk": "0.0.10",
12
+ "viem": "^2.40.0",
13
+ "@1delta/aggregators": "0.1.6",
14
+ "@1delta/bridge-configs": "0.1.6",
15
+ "@1delta/bridge-core": "0.1.3",
16
+ "@1delta/lib-utils": "0.1.6"
17
17
  },
18
18
  "devDependencies": {
19
- "@types/node": "^18.0.0",
19
+ "@types/node": "^24.10.1",
20
20
  "tsx": "^4.20.6",
21
- "typescript": "^5.0.0",
22
- "vite": "^7.1.12",
21
+ "typescript": "^5.9.3",
22
+ "vite": "^7.2.4",
23
23
  "vite-plugin-dts": "^4.5.4"
24
24
  },
25
25
  "files": [
@@ -1,7 +0,0 @@
1
- import { Address, Hex } from 'viem';
2
- import { DeltaCall } from '../../../types/deltaCall';
3
- export declare const createDeltaComposerCalldata: (chainId: string, tokensToSweep: string[], receiver: string, calls: DeltaCall[]) => {
4
- calldata: Hex;
5
- to: Address;
6
- };
7
- //# sourceMappingURL=createDeltaComposerCalldata.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createDeltaComposerCalldata.d.ts","sourceRoot":"","sources":["../../../../src/composedTrades/utils/deltaComposeCall/createDeltaComposerCalldata.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAIpD,eAAO,MAAM,2BAA2B,GACtC,SAAS,MAAM,EACf,eAAe,MAAM,EAAE,EACvB,UAAU,MAAM,EAChB,OAAO,SAAS,EAAE,KACjB;IACD,QAAQ,EAAE,GAAG,CAAA;IACb,EAAE,EAAE,OAAO,CAAA;CA6BZ,CAAA"}
@@ -1,17 +0,0 @@
1
- import { encodeExternalCall, encodeSweep, SweepType } from '@1delta/calldatalib';
2
- import { encodeComposerCompose, packCommands } from '@1delta/lib-utils';
3
- import { requireDeltaContracts } from '../requireDeltaContracts';
4
- import { toComposerCall } from './toComposerCall';
5
- export const createDeltaComposerCalldata = (chainId, tokensToSweep, receiver, calls) => {
6
- const { forwarder, composer } = requireDeltaContracts(chainId);
7
- const commands = calls.map((call) => toComposerCall(call));
8
- // sweep tokens at the end
9
- for (const tokenAddress of tokensToSweep) {
10
- const sweepCall = encodeSweep(tokenAddress, receiver, 0n, SweepType.VALIDATE);
11
- commands.push(sweepCall);
12
- }
13
- const calldata = encodeComposerCompose(packCommands([
14
- encodeExternalCall(forwarder, 0n, true, packCommands(commands)),
15
- ]));
16
- return { calldata, to: composer };
17
- };
@@ -1,4 +0,0 @@
1
- import { Hex } from 'viem';
2
- import { DeltaCall } from '../../../types/deltaCall';
3
- export declare function toComposerCall(call: DeltaCall): Hex;
4
- //# sourceMappingURL=toComposerCall.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toComposerCall.d.ts","sourceRoot":"","sources":["../../../../src/composedTrades/utils/deltaComposeCall/toComposerCall.ts"],"names":[],"mappings":"AAMA,OAAO,EAAW,GAAG,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAiB,MAAM,0BAA0B,CAAA;AAEnE,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,GAAG,CAiCnD"}