@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.
- package/dist/aggregator/fetchAggregatorTrade.d.ts.map +1 -1
- package/dist/aggregator/fetchAggregatorTrade.js +0 -3
- package/dist/composedTrades/across/calldata/createAcrossMessage.d.ts.map +1 -1
- package/dist/composedTrades/across/calldata/createAcrossMessage.js +5 -2
- package/dist/composedTrades/axelar/axelarWithSwap.d.ts +2 -2
- package/dist/composedTrades/axelar/axelarWithSwap.d.ts.map +1 -1
- package/dist/composedTrades/axelar/axelarWithSwap.js +12 -6
- package/dist/composedTrades/axelar/axelarWithSwaps.d.ts +2 -2
- package/dist/composedTrades/axelar/axelarWithSwaps.d.ts.map +1 -1
- package/dist/composedTrades/axelar/constants.d.ts +2 -0
- package/dist/composedTrades/axelar/constants.d.ts.map +1 -1
- package/dist/composedTrades/axelar/constants.js +2 -0
- package/dist/composedTrades/axelar/squid/createSquidPayload.d.ts.map +1 -1
- package/dist/composedTrades/axelar/squid/createSquidPayload.js +5 -2
- package/dist/deltaCall/createDeltaCallsCalldata.d.ts +10 -0
- package/dist/deltaCall/createDeltaCallsCalldata.d.ts.map +1 -0
- package/dist/deltaCall/createDeltaCallsCalldata.js +28 -0
- package/dist/deltaCall/index.d.ts +2 -0
- package/dist/deltaCall/index.d.ts.map +1 -0
- package/dist/deltaCall/index.js +1 -0
- package/dist/deltaCall/toComposerCall.d.ts +4 -0
- package/dist/deltaCall/toComposerCall.d.ts.map +1 -0
- package/dist/deltaCall/toComposerCall.js +26 -0
- package/dist/deltaCall/toForwarderCall.d.ts +4 -0
- package/dist/deltaCall/toForwarderCall.d.ts.map +1 -0
- package/dist/{composedTrades/utils/deltaComposeCall/toComposerCall.js → deltaCall/toForwarderCall.js} +10 -4
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/initialize.d.ts +14 -3
- package/dist/initialize.d.ts.map +1 -1
- package/dist/initialize.js +18 -7
- package/dist/registry/index.d.ts +7 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +19 -0
- package/dist/types/bridgeInput.d.ts +13 -3
- package/dist/types/bridgeInput.d.ts.map +1 -1
- package/dist/types/deltaCall.d.ts +32 -2
- package/dist/types/deltaCall.d.ts.map +1 -1
- package/dist/types/deltaCall.js +9 -0
- package/package.json +10 -10
- package/dist/composedTrades/utils/deltaComposeCall/createDeltaComposerCalldata.d.ts +0 -7
- package/dist/composedTrades/utils/deltaComposeCall/createDeltaComposerCalldata.d.ts.map +0 -1
- package/dist/composedTrades/utils/deltaComposeCall/createDeltaComposerCalldata.js +0 -17
- package/dist/composedTrades/utils/deltaComposeCall/toComposerCall.d.ts +0 -4
- 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;
|
|
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;
|
|
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 {
|
|
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 =
|
|
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 {
|
|
3
|
-
export interface AxelarWithSwapInput extends
|
|
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,
|
|
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
|
|
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
|
-
|
|
80
|
+
const gasLimit = DESTINATION_SWAP_GAS_LIMIT +
|
|
81
|
+
(needsAdditionalCalls ? additionalCallsGasLimit : 0n);
|
|
82
|
+
return { message, destinationSwapTrade, gasLimit };
|
|
78
83
|
}
|
|
79
|
-
else if (
|
|
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
|
-
|
|
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:
|
|
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 {
|
|
3
|
-
export declare const fetchAxelarTradeWithSwaps: (input:
|
|
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,
|
|
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"}
|
|
@@ -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;
|
|
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 {
|
|
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 =
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 '
|
|
3
|
-
export function
|
|
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
|
-
|
|
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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';
|
package/dist/initialize.d.ts
CHANGED
|
@@ -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
|
|
11
|
-
*
|
|
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
|
|
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`
|
package/dist/initialize.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../src/initialize.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/initialize.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { fetchAndCacheSquidChains,
|
|
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
|
|
8
|
-
*
|
|
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
|
|
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
|
|
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
|
|
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;
|
|
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;
|
|
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"}
|
package/dist/types/deltaCall.js
CHANGED
|
@@ -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
|
+
"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
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"@1delta/aggregators": "0.1.
|
|
14
|
-
"@1delta/bridge-configs": "0.1.
|
|
15
|
-
"@1delta/bridge-core": "0.1.
|
|
16
|
-
"@1delta/lib-utils": "0.1.
|
|
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": "^
|
|
19
|
+
"@types/node": "^24.10.1",
|
|
20
20
|
"tsx": "^4.20.6",
|
|
21
|
-
"typescript": "^5.
|
|
22
|
-
"vite": "^7.
|
|
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 +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"}
|