@1delta/trade-sdk 0.1.9 → 0.1.10

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 (91) hide show
  1. package/dist/composedTrades/across/acrossAdapter.d.ts +5 -0
  2. package/dist/composedTrades/across/acrossAdapter.d.ts.map +1 -0
  3. package/dist/composedTrades/across/acrossAdapter.js +44 -0
  4. package/dist/composedTrades/across/acrossRoutes.d.ts +1 -2
  5. package/dist/composedTrades/across/acrossRoutes.d.ts.map +1 -1
  6. package/dist/composedTrades/across/acrossWithSwap.integration.spec.d.ts +1 -0
  7. package/dist/composedTrades/across/acrossWithSwap.integration.spec.js +122 -116
  8. package/dist/composedTrades/axelar/axelarAdapter.d.ts +5 -0
  9. package/dist/composedTrades/axelar/axelarAdapter.d.ts.map +1 -0
  10. package/dist/composedTrades/axelar/axelarAdapter.js +38 -0
  11. package/dist/composedTrades/axelar/axelarRoutes.d.ts +1 -2
  12. package/dist/composedTrades/axelar/axelarRoutes.d.ts.map +1 -1
  13. package/dist/composedTrades/gaszip/gaszipAdapter.d.ts +9 -0
  14. package/dist/composedTrades/gaszip/gaszipAdapter.d.ts.map +1 -0
  15. package/dist/composedTrades/gaszip/gaszipAdapter.js +46 -0
  16. package/dist/composedTrades/general/composableBridgeAdapter.d.ts +9 -0
  17. package/dist/composedTrades/general/composableBridgeAdapter.d.ts.map +1 -0
  18. package/dist/composedTrades/general/composableBridgeAdapter.js +39 -0
  19. package/dist/composedTrades/general/composeBridgeTrade.d.ts +5 -0
  20. package/dist/composedTrades/general/composeBridgeTrade.d.ts.map +1 -0
  21. package/dist/composedTrades/general/composeBridgeTrade.js +106 -0
  22. package/dist/composedTrades/general/index.d.ts +3 -0
  23. package/dist/composedTrades/general/index.d.ts.map +1 -0
  24. package/dist/composedTrades/general/index.js +2 -0
  25. package/dist/composedTrades/index.d.ts +3 -3
  26. package/dist/composedTrades/index.d.ts.map +1 -1
  27. package/dist/composedTrades/index.js +40 -3
  28. package/dist/composedTrades/utils/createSwapAndBridgeCalldata.d.ts.map +1 -1
  29. package/dist/composedTrades/utils/createSwapAndBridgeCalldata.js +1 -25
  30. package/dist/composedTrades/utils/index.d.ts +1 -0
  31. package/dist/composedTrades/utils/index.d.ts.map +1 -1
  32. package/dist/composedTrades/utils/index.js +1 -0
  33. package/dist/composedTrades/utils/validateContracts.d.ts +5 -0
  34. package/dist/composedTrades/utils/validateContracts.d.ts.map +1 -0
  35. package/dist/composedTrades/utils/validateContracts.js +11 -0
  36. package/dist/core.d.ts.map +1 -1
  37. package/dist/core.js +1 -13
  38. package/dist/index.d.ts +2 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +1 -0
  41. package/dist/initialize.d.ts +2 -2
  42. package/dist/initialize.d.ts.map +1 -1
  43. package/dist/registry/currency.d.ts +1 -1
  44. package/dist/registry/currency.d.ts.map +1 -1
  45. package/dist/registry/currency.js +2 -1
  46. package/dist/registry/price.d.ts +1 -1
  47. package/dist/registry/price.d.ts.map +1 -1
  48. package/dist/registry/price.js +2 -1
  49. package/dist/tradeExecution/getStatusFromTrade.d.ts +20 -0
  50. package/dist/tradeExecution/getStatusFromTrade.d.ts.map +1 -0
  51. package/dist/tradeExecution/getStatusFromTrade.js +71 -0
  52. package/dist/tradeExecution/getTransactionData.d.ts +13 -0
  53. package/dist/tradeExecution/getTransactionData.d.ts.map +1 -0
  54. package/dist/tradeExecution/getTransactionData.js +50 -0
  55. package/dist/tradeExecution/index.d.ts +13 -0
  56. package/dist/tradeExecution/index.d.ts.map +1 -0
  57. package/dist/tradeExecution/index.js +150 -0
  58. package/dist/tradeExecution/isBridge.d.ts +3 -0
  59. package/dist/tradeExecution/isBridge.d.ts.map +1 -0
  60. package/dist/tradeExecution/isBridge.js +3 -0
  61. package/dist/tradeExecution/signData.d.ts +4 -0
  62. package/dist/tradeExecution/signData.d.ts.map +1 -0
  63. package/dist/tradeExecution/signData.js +21 -0
  64. package/dist/tradeExecution/trackTradeCompletion.d.ts +9 -0
  65. package/dist/tradeExecution/trackTradeCompletion.d.ts.map +1 -0
  66. package/dist/tradeExecution/trackTradeCompletion.js +75 -0
  67. package/dist/tradeExecution/types.d.ts +30 -0
  68. package/dist/tradeExecution/types.d.ts.map +1 -0
  69. package/dist/tradeExecution/types.js +1 -0
  70. package/dist/types/bridgeInput.d.ts +30 -19
  71. package/dist/types/bridgeInput.d.ts.map +1 -1
  72. package/dist/types/bridgeInput.js +1 -1
  73. package/dist/types/composedBridgeAdapter.d.ts +33 -0
  74. package/dist/types/composedBridgeAdapter.d.ts.map +1 -0
  75. package/dist/types/composedBridgeAdapter.js +1 -0
  76. package/dist/types/index.d.ts +1 -0
  77. package/dist/types/index.d.ts.map +1 -1
  78. package/dist/types/index.js +1 -0
  79. package/package.json +3 -3
  80. package/dist/composedTrades/across/acrossWithSwaps.d.ts +0 -5
  81. package/dist/composedTrades/across/acrossWithSwaps.d.ts.map +0 -1
  82. package/dist/composedTrades/across/acrossWithSwaps.integration.spec.d.ts +0 -1
  83. package/dist/composedTrades/across/acrossWithSwaps.integration.spec.d.ts.map +0 -1
  84. package/dist/composedTrades/across/acrossWithSwaps.integration.spec.js +0 -110
  85. package/dist/composedTrades/across/acrossWithSwaps.js +0 -124
  86. package/dist/composedTrades/axelar/axelarWithSwaps.d.ts +0 -5
  87. package/dist/composedTrades/axelar/axelarWithSwaps.d.ts.map +0 -1
  88. package/dist/composedTrades/axelar/axelarWithSwaps.js +0 -126
  89. package/dist/composedTrades/gaszip/gaszipWithSwaps.d.ts +0 -5
  90. package/dist/composedTrades/gaszip/gaszipWithSwaps.d.ts.map +0 -1
  91. package/dist/composedTrades/gaszip/gaszipWithSwaps.js +0 -115
@@ -1,126 +0,0 @@
1
- import { convertRawAmount, nativeOnChain } from '@1delta/lib-utils';
2
- import { CurrencyHandler, getDeltaComposerProxyAddress, getForwarderAddress, getSafeChainId, minimumAmountOutFromTrade, splitSlippage, TradeType, } from '@1delta/lib-utils';
3
- import { getCurrencyGetter } from '../../registry';
4
- import { fetchBestTrade, increaseAmountBySlippage } from '../utils';
5
- import { createSwapAndBridgeCalldata } from '../utils/createSwapAndBridgeCalldata';
6
- import { fetchAxelarRoute } from './axelarRoutes';
7
- import fetchAxelarTradeWithSwap from './axelarWithSwap';
8
- // Extract contract address validation
9
- const validateContracts = (fromChainId) => {
10
- const forwarder = getForwarderAddress(fromChainId);
11
- if (!forwarder)
12
- throw new Error('Forwarder contract not found');
13
- const composer = getDeltaComposerProxyAddress(fromChainId);
14
- if (!composer)
15
- throw new Error('Composer proxy contract not found');
16
- return { forwarder, composer };
17
- };
18
- const DUMMY_ADDRESS = '0x0000000000000000000000000000000000000001';
19
- export const fetchAxelarTradeWithSwaps = async (input, controller) => {
20
- if (!input.fromCurrency || !input.toCurrency)
21
- return undefined;
22
- if (input.tradeType === TradeType.EXACT_OUTPUT)
23
- throw new Error('Exact-out not supported for composed Axelar trade!');
24
- // use a dummy to make axelar quote without a user address
25
- // IMPORTANT: block assemble in this case
26
- const isDummy = !input.receiver || !input.caller;
27
- let sourceSwapTrade = undefined;
28
- const fromChainId = getSafeChainId(input.fromCurrency?.chainId);
29
- const toChainId = getSafeChainId(input.toCurrency?.chainId);
30
- const { forwarder, composer } = validateContracts(fromChainId);
31
- const route = await fetchAxelarRoute(fromChainId, toChainId);
32
- if (!route)
33
- return undefined;
34
- const getCurrency = getCurrencyGetter();
35
- const fromBridgeCurrency = getCurrency(fromChainId, route.fromBridgeToken);
36
- const toBridgeCurrency = getCurrency(toChainId, route.toBridgeToken);
37
- const outputIsBridgeAsset = CurrencyHandler.equal(CurrencyHandler.wrapped(input.toCurrency), toBridgeCurrency);
38
- const inputIsBridgeAsset = CurrencyHandler.equal(CurrencyHandler.wrapped(input.fromCurrency), fromBridgeCurrency);
39
- const [swapSlippage, bridgeSlippage] = splitSlippage(input.slippage, inputIsBridgeAsset, outputIsBridgeAsset);
40
- if (!inputIsBridgeAsset) {
41
- const sourceSwapInput = {
42
- chainId: fromChainId,
43
- tradeType: TradeType.EXACT_INPUT,
44
- fromCurrency: input.fromCurrency,
45
- toCurrency: fromBridgeCurrency,
46
- slippage: swapSlippage,
47
- swapAmount: input.swapAmount,
48
- txOrigin: input.caller,
49
- caller: forwarder,
50
- receiver: forwarder,
51
- flashSwap: undefined,
52
- disableComposer: true,
53
- };
54
- sourceSwapTrade = await fetchBestTrade(sourceSwapInput, controller);
55
- }
56
- const bridgeExtendedAmount = sourceSwapTrade
57
- ? minimumAmountOutFromTrade(sourceSwapTrade, sourceSwapTrade.slippage).amount.toString()
58
- : input.swapAmount;
59
- const bridgeExtendedInput = {
60
- ...input,
61
- slippage: bridgeSlippage,
62
- swapAmount: bridgeExtendedAmount,
63
- fromCurrency: fromBridgeCurrency,
64
- bridgeToCurrency: toBridgeCurrency,
65
- caller: forwarder,
66
- receiver: isDummy ? DUMMY_ADDRESS : input.receiver,
67
- };
68
- const { trade: bridgeTradeWithSwap, gasTrade, receiver: bridgeReceiver, } = await fetchAxelarTradeWithSwap(bridgeExtendedInput, controller);
69
- if (!bridgeTradeWithSwap)
70
- return undefined;
71
- const trades = [];
72
- if (sourceSwapTrade)
73
- trades.push(sourceSwapTrade);
74
- if (gasTrade)
75
- trades.push(gasTrade);
76
- trades.push(bridgeTradeWithSwap);
77
- const assemble = async () => {
78
- if (isDummy)
79
- return undefined;
80
- const fundsToPull = [
81
- {
82
- address: input.fromCurrency.address,
83
- amount: BigInt(input.swapAmount),
84
- },
85
- ];
86
- if (!gasTrade && bridgeTradeWithSwap.gasAmount) {
87
- fundsToPull.push({
88
- address: nativeOnChain(fromChainId).address,
89
- amount: bridgeTradeWithSwap.gasAmount,
90
- });
91
- }
92
- const { calldata, value, to } = await createSwapAndBridgeCalldata(trades, input.caller, bridgeReceiver, true, fundsToPull, false, true, input.preCalls);
93
- return {
94
- EVM: {
95
- to,
96
- calldata,
97
- value: value.toString(),
98
- },
99
- };
100
- };
101
- const refresh = async (inputOverride) => {
102
- const newAggregatorInput = {
103
- ...input,
104
- slippage: inputOverride?.slippage ?? input.slippage,
105
- };
106
- return fetchAxelarTradeWithSwaps(newAggregatorInput);
107
- };
108
- const outputAmount = !!sourceSwapTrade
109
- ? increaseAmountBySlippage(bridgeTradeWithSwap.outputAmount.amount, Number(swapSlippage))
110
- : bridgeTradeWithSwap.outputAmount.amount;
111
- return {
112
- ...bridgeTradeWithSwap,
113
- inputAmount: CurrencyHandler.fromRawAmount(input.fromCurrency, input.swapAmount),
114
- inputAmountRealized: convertRawAmount(input.swapAmount, input.fromCurrency.decimals),
115
- outputAmount: CurrencyHandler.fromRawAmount(bridgeTradeWithSwap.outputAmount.currency, outputAmount),
116
- outputAmountRealized: convertRawAmount(outputAmount, bridgeTradeWithSwap.outputAmount.currency.decimals),
117
- stringified: trades.map((t) => t.stringified).join('-'),
118
- target: composer,
119
- approvalTarget: composer,
120
- slippage: input.slippage,
121
- assemble,
122
- refresh,
123
- gasAmount: gasTrade ? undefined : bridgeTradeWithSwap.gasAmount,
124
- };
125
- };
126
- export default fetchAxelarTradeWithSwaps;
@@ -1,5 +0,0 @@
1
- import { GenericTrade } from '@1delta/lib-utils';
2
- import { BaseBridgeInput } from '../../types';
3
- export declare const fetchGaszipTradeWithSwaps: (input: BaseBridgeInput, controller?: AbortController) => Promise<GenericTrade | undefined>;
4
- export default fetchGaszipTradeWithSwaps;
5
- //# sourceMappingURL=gaszipWithSwaps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gaszipWithSwaps.d.ts","sourceRoot":"","sources":["../../../src/composedTrades/gaszip/gaszipWithSwaps.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,YAAY,EASb,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAmB,eAAe,EAAE,MAAM,aAAa,CAAA;AAoB9D,eAAO,MAAM,yBAAyB,GACpC,OAAO,eAAe,EACtB,aAAa,eAAe,KAC3B,OAAO,CAAC,YAAY,GAAG,SAAS,CAmJlC,CAAA;AAED,eAAe,yBAAyB,CAAA"}
@@ -1,115 +0,0 @@
1
- import { Bridge } from '@1delta/bridge-configs';
2
- import { convertRawAmount } from '@1delta/lib-utils';
3
- import { CurrencyHandler, getDeltaComposerProxyAddress, getForwarderAddress, getSafeChainId, minimumAmountOutFromTrade, nativeOnChain, splitSlippage, TradeType, } from '@1delta/lib-utils';
4
- import { fetchBridgeTrade } from '../../bridge';
5
- import { createSwapAndBridgeCalldata } from '../utils/createSwapAndBridgeCalldata';
6
- import { fetchBestTrade, increaseAmountBySlippage, } from '../utils/multichainUtils';
7
- // Extract contract address validation
8
- const validateContracts = (fromChainId) => {
9
- const forwarder = getForwarderAddress(fromChainId);
10
- if (!forwarder)
11
- throw new Error('Forwarder contract not found');
12
- const composer = getDeltaComposerProxyAddress(fromChainId);
13
- if (!composer)
14
- throw new Error('Composer proxy contract not found');
15
- return { forwarder, composer };
16
- };
17
- const DUMMY_ADDRESS = '0x0000000000000000000000000000000000000001';
18
- export const fetchGaszipTradeWithSwaps = async (input, controller) => {
19
- if (!input.fromCurrency || !input.toCurrency)
20
- return undefined;
21
- // if (input.tradeType === TradeType.EXACT_OUTPUT)
22
- // throw new Error('Exact-out not supported for composed Gaszip trade!')
23
- if (!CurrencyHandler.isNative(input.toCurrency))
24
- throw new Error('Gaszip only supports Native as output token!');
25
- // use a dummy to make gaszip quote without a user address
26
- // IMPORTANT: block assemble in this case
27
- const isDummy = !input.receiver || !input.caller;
28
- let sourceSwapTrade = undefined;
29
- const fromChainId = getSafeChainId(input.fromCurrency?.chainId);
30
- const toChainId = getSafeChainId(input.toCurrency?.chainId);
31
- const { forwarder, composer } = validateContracts(fromChainId);
32
- const fromGaszipCurrency = nativeOnChain(fromChainId);
33
- const toGaszipCurrency = nativeOnChain(toChainId);
34
- const inputIsGaszipAsset = CurrencyHandler.equal(input.fromCurrency, fromGaszipCurrency);
35
- const [swapSlippage, gaszipSlippage] = splitSlippage(input.slippage, inputIsGaszipAsset, true);
36
- if (!inputIsGaszipAsset) {
37
- const sourceSwapInput = {
38
- chainId: fromChainId,
39
- tradeType: TradeType.EXACT_INPUT,
40
- fromCurrency: input.fromCurrency,
41
- toCurrency: fromGaszipCurrency,
42
- slippage: swapSlippage,
43
- swapAmount: input.swapAmount,
44
- txOrigin: input.caller,
45
- caller: forwarder,
46
- receiver: forwarder,
47
- flashSwap: undefined,
48
- disableComposer: true,
49
- };
50
- sourceSwapTrade = await fetchBestTrade(sourceSwapInput, controller);
51
- }
52
- const gaszipExtendedAmount = sourceSwapTrade
53
- ? minimumAmountOutFromTrade(sourceSwapTrade, sourceSwapTrade.slippage).amount.toString()
54
- : input.swapAmount;
55
- const gaszipInput = {
56
- tradeType: TradeType.EXACT_INPUT,
57
- caller: isDummy ? DUMMY_ADDRESS : input.caller,
58
- receiver: isDummy ? DUMMY_ADDRESS : input.receiver,
59
- slippage: gaszipSlippage,
60
- swapAmount: gaszipExtendedAmount,
61
- fromCurrency: fromGaszipCurrency,
62
- toCurrency: toGaszipCurrency,
63
- order: 'CHEAPEST',
64
- };
65
- const gaszipTrade = await fetchBridgeTrade(Bridge.GASZIP, gaszipInput, controller);
66
- if (!gaszipTrade)
67
- return undefined;
68
- const trades = sourceSwapTrade
69
- ? [sourceSwapTrade, gaszipTrade]
70
- : [gaszipTrade];
71
- const assemble = async () => {
72
- if (isDummy)
73
- return undefined;
74
- const fundsToPull = [
75
- {
76
- address: input.fromCurrency.address,
77
- amount: BigInt(input.swapAmount),
78
- },
79
- ];
80
- const { calldata, value, to } = await createSwapAndBridgeCalldata(trades, input.caller, input.receiver, false, fundsToPull, false);
81
- return {
82
- EVM: {
83
- to,
84
- calldata,
85
- value: value.toString(),
86
- },
87
- };
88
- };
89
- const refresh = async (inputOverride) => {
90
- const newAggregatorInput = {
91
- ...input,
92
- slippage: inputOverride?.slippage ?? input.slippage,
93
- };
94
- return fetchGaszipTradeWithSwaps(newAggregatorInput);
95
- };
96
- const outputAmount = !!sourceSwapTrade
97
- ? increaseAmountBySlippage(gaszipTrade.outputAmount.amount, Number(swapSlippage))
98
- : gaszipTrade.outputAmount.amount;
99
- return {
100
- ...gaszipTrade,
101
- inputAmount: sourceSwapTrade?.inputAmount ?? gaszipTrade.inputAmount,
102
- inputAmountRealized: sourceSwapTrade?.inputAmountRealized ?? gaszipTrade.inputAmountRealized,
103
- outputAmount: CurrencyHandler.fromRawAmount(gaszipTrade.outputAmount.currency, outputAmount),
104
- outputAmountRealized: convertRawAmount(outputAmount, gaszipTrade.outputAmount.currency.decimals),
105
- stringified: sourceSwapTrade
106
- ? `${sourceSwapTrade?.stringified}-${gaszipTrade.stringified}`
107
- : gaszipTrade.stringified,
108
- target: composer,
109
- approvalTarget: composer,
110
- slippage: input.slippage,
111
- assemble,
112
- refresh,
113
- };
114
- };
115
- export default fetchGaszipTradeWithSwaps;