@lifi/sdk 4.0.0-alpha.6 → 4.0.0-alpha.8
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/cjs/actions/index.d.ts +3 -1
- package/dist/cjs/actions/index.js +2 -0
- package/dist/cjs/actions/index.js.map +1 -1
- package/dist/cjs/actions/patchContractCalls.d.ts +10 -0
- package/dist/cjs/actions/patchContractCalls.js +16 -0
- package/dist/cjs/actions/patchContractCalls.js.map +1 -0
- package/dist/cjs/core/checkBalance.js +3 -3
- package/dist/cjs/core/checkBalance.js.map +1 -1
- package/dist/cjs/core/utils.d.ts +2 -2
- package/dist/cjs/core/utils.js +0 -5
- package/dist/cjs/core/utils.js.map +1 -1
- package/dist/cjs/errors/constants.d.ts +4 -2
- package/dist/cjs/errors/constants.js +2 -0
- package/dist/cjs/errors/constants.js.map +1 -1
- package/dist/cjs/index.d.ts +5 -4
- package/dist/cjs/index.js +10 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/core.d.ts +28 -4
- package/dist/cjs/utils/convertQuoteToRoute.d.ts +6 -1
- package/dist/cjs/utils/convertQuoteToRoute.js +73 -5
- package/dist/cjs/utils/convertQuoteToRoute.js.map +1 -1
- package/dist/cjs/utils/formatUnits.d.ts +1 -0
- package/dist/cjs/utils/formatUnits.js +18 -0
- package/dist/cjs/utils/formatUnits.js.map +1 -0
- package/dist/cjs/utils/isHex.d.ts +4 -0
- package/dist/cjs/utils/isHex.js +13 -0
- package/dist/cjs/utils/isHex.js.map +1 -0
- package/dist/cjs/utils/parseUnits.d.ts +1 -0
- package/dist/cjs/utils/parseUnits.js +44 -0
- package/dist/cjs/utils/parseUnits.js.map +1 -0
- package/dist/cjs/utils/request.js +7 -6
- package/dist/cjs/utils/request.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/actions/index.d.ts +9 -1
- package/dist/esm/actions/index.js +2 -0
- package/dist/esm/actions/index.js.map +1 -1
- package/dist/esm/actions/patchContractCalls.d.ts +10 -0
- package/dist/esm/actions/patchContractCalls.js +12 -0
- package/dist/esm/actions/patchContractCalls.js.map +1 -0
- package/dist/esm/core/checkBalance.js +1 -1
- package/dist/esm/core/checkBalance.js.map +1 -1
- package/dist/esm/core/utils.d.ts +2 -10
- package/dist/esm/core/utils.js +0 -11
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/errors/constants.d.ts +4 -2
- package/dist/esm/errors/constants.js +2 -0
- package/dist/esm/errors/constants.js.map +1 -1
- package/dist/esm/index.d.ts +5 -4
- package/dist/esm/index.js +4 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/core.d.ts +28 -4
- package/dist/esm/utils/convertQuoteToRoute.d.ts +11 -3
- package/dist/esm/utils/convertQuoteToRoute.js +76 -7
- package/dist/esm/utils/convertQuoteToRoute.js.map +1 -1
- package/dist/esm/utils/formatUnits.d.ts +4 -0
- package/dist/esm/utils/formatUnits.js +18 -0
- package/dist/esm/utils/formatUnits.js.map +1 -0
- package/dist/esm/utils/isHex.d.ts +4 -0
- package/dist/esm/utils/isHex.js +10 -0
- package/dist/esm/utils/isHex.js.map +1 -0
- package/dist/esm/utils/parseUnits.d.ts +4 -0
- package/dist/esm/utils/parseUnits.js +46 -0
- package/dist/esm/utils/parseUnits.js.map +1 -0
- package/dist/esm/utils/request.js +7 -6
- package/dist/esm/utils/request.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/actions/index.d.ts +9 -1
- package/dist/types/actions/index.d.ts.map +1 -1
- package/dist/types/actions/patchContractCalls.d.ts +11 -0
- package/dist/types/actions/patchContractCalls.d.ts.map +1 -0
- package/dist/types/core/checkBalance.d.ts.map +1 -1
- package/dist/types/core/utils.d.ts +2 -10
- package/dist/types/core/utils.d.ts.map +1 -1
- package/dist/types/errors/constants.d.ts +4 -2
- package/dist/types/errors/constants.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/core.d.ts +28 -4
- package/dist/types/types/core.d.ts.map +1 -1
- package/dist/types/utils/convertQuoteToRoute.d.ts +11 -3
- package/dist/types/utils/convertQuoteToRoute.d.ts.map +1 -1
- package/dist/types/utils/formatUnits.d.ts +5 -0
- package/dist/types/utils/formatUnits.d.ts.map +1 -0
- package/dist/types/utils/isHex.d.ts +5 -0
- package/dist/types/utils/isHex.d.ts.map +1 -0
- package/dist/types/utils/parseUnits.d.ts +5 -0
- package/dist/types/utils/parseUnits.d.ts.map +1 -0
- package/dist/types/utils/request.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +2 -3
- package/src/actions/index.ts +18 -0
- package/src/actions/patchContractCalls.ts +30 -0
- package/src/core/checkBalance.ts +1 -1
- package/src/core/utils.ts +1 -13
- package/src/errors/constants.ts +2 -0
- package/src/index.ts +9 -4
- package/src/types/core.ts +37 -4
- package/src/utils/convertQuoteToRoute.ts +117 -8
- package/src/utils/formatUnits.ts +22 -0
- package/src/utils/isHex.ts +14 -0
- package/src/utils/parseUnits.ts +50 -0
- package/src/utils/request.ts +9 -6
- package/src/version.ts +1 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { ChainId, ChainKey, ChainsRequest, ChainType, ConnectionsRequest, ConnectionsResponse, ContractCallsQuoteRequest, ExtendedChain, GasRecommendationRequest, GasRecommendationResponse, LiFiStep, RelayRequest, RelayResponseData, RelayStatusRequest, RelayStatusResponseData, RequestOptions, RoutesRequest, RoutesResponse, SignedLiFiStep, StatusResponse, Token, TokenAmount, TokenExtended, TokensExtendedResponse, TokensRequest, TokensResponse, ToolsRequest, ToolsResponse, TransactionAnalyticsRequest, TransactionAnalyticsResponse, WalletTokenExtended } from '@lifi/types';
|
|
1
|
+
import type { ChainId, ChainKey, ChainsRequest, ChainType, ConnectionsRequest, ConnectionsResponse, ContractCallsQuoteRequest, ExtendedChain, GasRecommendationRequest, GasRecommendationResponse, LiFiStep, PatchCallDataRequest, RelayRequest, RelayResponseData, RelayStatusRequest, RelayStatusResponseData, RequestOptions, RoutesRequest, RoutesResponse, SignedLiFiStep, StatusResponse, Token, TokenAmount, TokenExtended, TokensExtendedResponse, TokensRequest, TokensResponse, ToolsRequest, ToolsResponse, TransactionAnalyticsRequest, TransactionAnalyticsResponse, WalletTokenExtended } from '@lifi/types';
|
|
2
2
|
import type { GetStatusRequestExtended, QuoteRequestFromAmount } from '../types/actions.js';
|
|
3
3
|
import type { SDKClient } from '../types/core.js';
|
|
4
4
|
import { getQuote } from './getQuote.js';
|
|
5
|
+
import { type PatchContractCallsResponse } from './patchContractCalls.js';
|
|
5
6
|
export type Actions = {
|
|
6
7
|
getChains: (params?: ChainsRequest, options?: RequestOptions) => Promise<ExtendedChain[]>;
|
|
7
8
|
getConnections: (params: ConnectionsRequest, options?: RequestOptions) => Promise<ConnectionsResponse>;
|
|
@@ -34,5 +35,6 @@ export type Actions = {
|
|
|
34
35
|
getTransactionHistory: (params: TransactionAnalyticsRequest, options?: RequestOptions) => Promise<TransactionAnalyticsResponse>;
|
|
35
36
|
getWalletBalances: (walletAddress: string, options?: RequestOptions) => Promise<Record<number, WalletTokenExtended[]>>;
|
|
36
37
|
relayTransaction: (params: RelayRequest, options?: RequestOptions) => Promise<RelayResponseData>;
|
|
38
|
+
patchContractCalls: (params: PatchCallDataRequest, options?: RequestOptions) => Promise<PatchContractCallsResponse[]>;
|
|
37
39
|
};
|
|
38
40
|
export declare function actions(client: SDKClient): Actions;
|
|
@@ -20,6 +20,7 @@ const getTokens_js_1 = require("./getTokens.js");
|
|
|
20
20
|
const getTools_js_1 = require("./getTools.js");
|
|
21
21
|
const getTransactionHistory_js_1 = require("./getTransactionHistory.js");
|
|
22
22
|
const getWalletBalances_js_1 = require("./getWalletBalances.js");
|
|
23
|
+
const patchContractCalls_js_1 = require("./patchContractCalls.js");
|
|
23
24
|
const relayTransaction_js_1 = require("./relayTransaction.js");
|
|
24
25
|
function actions(client) {
|
|
25
26
|
return {
|
|
@@ -43,6 +44,7 @@ function actions(client) {
|
|
|
43
44
|
getTransactionHistory: (params, options) => (0, getTransactionHistory_js_1.getTransactionHistory)(client, params, options),
|
|
44
45
|
getWalletBalances: (walletAddress, options) => (0, getWalletBalances_js_1.getWalletBalances)(client, walletAddress, options),
|
|
45
46
|
relayTransaction: (params, options) => (0, relayTransaction_js_1.relayTransaction)(client, params, options),
|
|
47
|
+
patchContractCalls: (params, options) => (0, patchContractCalls_js_1.patchContractCalls)(client, params, options),
|
|
46
48
|
};
|
|
47
49
|
}
|
|
48
50
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { PatchCallDataRequest, RequestOptions } from '@lifi/types';
|
|
2
|
+
import type { SDKClient } from '../types/core.js';
|
|
3
|
+
export interface PatchContractCallsResponse {
|
|
4
|
+
target: string;
|
|
5
|
+
value: bigint;
|
|
6
|
+
callData: string;
|
|
7
|
+
allowFailure: boolean;
|
|
8
|
+
isDelegateCall: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const patchContractCalls: (client: SDKClient, params: PatchCallDataRequest, options?: RequestOptions) => Promise<PatchContractCallsResponse[]>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.patchContractCalls = void 0;
|
|
4
|
+
const request_js_1 = require("../utils/request.js");
|
|
5
|
+
const patchContractCalls = async (client, params, options) => {
|
|
6
|
+
return await (0, request_js_1.request)(client.config, `${client.config.apiUrl}/patcher`, {
|
|
7
|
+
method: 'POST',
|
|
8
|
+
headers: {
|
|
9
|
+
'Content-Type': 'application/json',
|
|
10
|
+
},
|
|
11
|
+
body: JSON.stringify(params),
|
|
12
|
+
signal: options?.signal,
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
exports.patchContractCalls = patchContractCalls;
|
|
16
|
+
//# sourceMappingURL=patchContractCalls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patchContractCalls.js","sourceRoot":"","sources":["../../../src/actions/patchContractCalls.ts"],"names":[],"mappings":";;;AAEA,oDAA6C;AAUtC,MAAM,kBAAkB,GAAG,KAAK,EACrC,MAAiB,EACjB,MAA4B,EAC5B,OAAwB,EACe,EAAE;IACzC,OAAO,MAAM,IAAA,oBAAO,EAClB,MAAM,CAAC,MAAM,EACb,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,UAAU,EACjC;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC5B,MAAM,EAAE,OAAO,EAAE,MAAM;KACxB,CACF,CAAA;AACH,CAAC,CAAA;AAjBY,QAAA,kBAAkB,sBAiB9B"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.checkBalance = void 0;
|
|
4
|
-
const viem_1 = require("viem");
|
|
5
4
|
const getTokenBalance_js_1 = require("../actions/getTokenBalance.js");
|
|
6
5
|
const errors_js_1 = require("../errors/errors.js");
|
|
6
|
+
const formatUnits_js_1 = require("../utils/formatUnits.js");
|
|
7
7
|
const sleep_js_1 = require("../utils/sleep.js");
|
|
8
8
|
const checkBalance = async (client, walletAddress, step, depth = 0) => {
|
|
9
9
|
const token = await (0, getTokenBalance_js_1.getTokenBalance)(client, walletAddress, step.action.fromToken);
|
|
@@ -22,8 +22,8 @@ const checkBalance = async (client, walletAddress, step, depth = 0) => {
|
|
|
22
22
|
step.action.fromAmount = currentBalance.toString();
|
|
23
23
|
}
|
|
24
24
|
else {
|
|
25
|
-
const needed = (0,
|
|
26
|
-
const current = (0,
|
|
25
|
+
const needed = (0, formatUnits_js_1.formatUnits)(neededBalance, token.decimals);
|
|
26
|
+
const current = (0, formatUnits_js_1.formatUnits)(currentBalance, token.decimals);
|
|
27
27
|
let errorMessage = `Your ${token.symbol} balance is too low, you try to transfer ${needed} ${token.symbol}, but your wallet only holds ${current} ${token.symbol}. No funds have been sent.`;
|
|
28
28
|
if (currentBalance !== 0n) {
|
|
29
29
|
errorMessage += `If the problem consists, please delete this transfer and start a new one with a maximum of ${current} ${token.symbol}.`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkBalance.js","sourceRoot":"","sources":["../../../src/core/checkBalance.ts"],"names":[],"mappings":";;;AACA
|
|
1
|
+
{"version":3,"file":"checkBalance.js","sourceRoot":"","sources":["../../../src/core/checkBalance.ts"],"names":[],"mappings":";;;AACA,sEAA+D;AAC/D,mDAAkD;AAElD,4DAAqD;AACrD,gDAAyC;AAElC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAiB,EACjB,aAAqB,EACrB,IAAc,EACd,KAAK,GAAG,CAAC,EACM,EAAE;IACjB,MAAM,KAAK,GAAG,MAAM,IAAA,oCAAe,EACjC,MAAM,EACN,aAAa,EACb,IAAI,CAAC,MAAM,CAAC,SAAS,CACtB,CAAA;IACD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA;QACzC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEpD,IAAI,cAAc,GAAG,aAAa,EAAE,CAAC;YACnC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,MAAM,IAAA,gBAAK,EAAC,GAAG,CAAC,CAAA;gBAChB,MAAM,IAAA,oBAAY,EAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YAC5D,CAAC;iBAAM,IACL,CAAC,aAAa;gBACZ,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;gBAC1D,WAAc;gBAChB,cAAc,EACd,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAA;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,IAAA,4BAAW,EAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACzD,MAAM,OAAO,GAAG,IAAA,4BAAW,EAAC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC3D,IAAI,YAAY,GAAG,QAAQ,KAAK,CAAC,MAAM,4CAA4C,MAAM,IAAI,KAAK,CAAC,MAAM,gCAAgC,OAAO,IAAI,KAAK,CAAC,MAAM,4BAA4B,CAAA;gBAE5L,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;oBAC1B,YAAY,IAAI,8FAA8F,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAA;gBAC1I,CAAC;gBAED,MAAM,IAAI,wBAAY,CACpB,yBAAyB,EACzB,IAAI,KAAK,CAAC,YAAY,CAAC,CACxB,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AA3CY,QAAA,YAAY,gBA2CxB"}
|
package/dist/cjs/core/utils.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ChainId, ExtendedChain, LiFiStep
|
|
1
|
+
import type { ChainId, ExtendedChain, LiFiStep } from '@lifi/types';
|
|
2
2
|
import type { RPCUrls } from '../types/core.js';
|
|
3
3
|
export declare function checkStepSlippageThreshold(oldStep: LiFiStep, newStep: LiFiStep): boolean;
|
|
4
4
|
export declare function getRpcUrlsFromChains(existingRpcUrls: RPCUrls, chains: ExtendedChain[], skipChains?: ChainId[]): {
|
|
@@ -73,6 +73,7 @@ export declare function getRpcUrlsFromChains(existingRpcUrls: RPCUrls, chains: E
|
|
|
73
73
|
143?: string[] | undefined;
|
|
74
74
|
988?: string[] | undefined;
|
|
75
75
|
4326?: string[] | undefined;
|
|
76
|
+
3637?: string[] | undefined;
|
|
76
77
|
1151111081099710?: string[] | undefined;
|
|
77
78
|
1161011141099710?: string[] | undefined;
|
|
78
79
|
111971151099710?: string[] | undefined;
|
|
@@ -83,4 +84,3 @@ export declare function getRpcUrlsFromChains(existingRpcUrls: RPCUrls, chains: E
|
|
|
83
84
|
20000000000004?: string[] | undefined;
|
|
84
85
|
728126428?: string[] | undefined;
|
|
85
86
|
};
|
|
86
|
-
export declare const isTokenMessageSigningAllowed: (token: Token) => boolean;
|
package/dist/cjs/core/utils.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isTokenMessageSigningAllowed = void 0;
|
|
4
3
|
exports.checkStepSlippageThreshold = checkStepSlippageThreshold;
|
|
5
4
|
exports.getRpcUrlsFromChains = getRpcUrlsFromChains;
|
|
6
5
|
const standardThreshold = 0.005;
|
|
@@ -41,8 +40,4 @@ function getRpcUrlsFromChains(existingRpcUrls, chains, skipChains) {
|
|
|
41
40
|
}
|
|
42
41
|
return result;
|
|
43
42
|
}
|
|
44
|
-
const isTokenMessageSigningAllowed = (token) => {
|
|
45
|
-
return !token.name?.includes('₮') && !token.symbol?.includes('₮');
|
|
46
|
-
};
|
|
47
|
-
exports.isTokenMessageSigningAllowed = isTokenMessageSigningAllowed;
|
|
48
43
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/utils.ts"],"names":[],"mappings":";;AAcA,gEAgBC;AAED,oDA0BC;AAtDD,MAAM,iBAAiB,GAAG,KAAK,CAAA;AAU/B,SAAgB,0BAA0B,CACxC,OAAiB,EACjB,OAAiB;IAEjB,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,iBAAiB,CAAA;IAChE,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IACjE,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IACjE,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,oBAAoB,CAAA;IAEpE,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,IAAI,oBAAoB,GAAG,CAAC,EAAE,CAAC;QAC7B,cAAc;YACZ,MAAM,CAAC,CAAC,gBAAgB,GAAG,WAAc,CAAC,GAAG,oBAAoB,CAAC;gBAClE,aAAa,CAAA;IACjB,CAAC;IACD,OAAO,cAAc,IAAI,WAAW,CAAA;AACtC,CAAC;AAED,SAAgB,oBAAoB,CAClC,eAAwB,EACxB,MAAuB,EACvB,UAAsB;IAEtB,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,EAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAA;QACvD,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC,EAAE,EAAa,CAAC,CAAA;IACjB,MAAM,MAAM,GAAG,EAAE,GAAG,eAAe,EAAE,CAAA;IACrC,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAY,CAAA;QAC7C,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACvC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAClB,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;aAAM,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1E,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -8,7 +8,8 @@ export declare enum ErrorName {
|
|
|
8
8
|
NotFoundError = "NotFoundError",
|
|
9
9
|
UnknownError = "UnknownError",
|
|
10
10
|
SlippageError = "SlippageError",
|
|
11
|
-
HTTPError = "HTTPError"
|
|
11
|
+
HTTPError = "HTTPError",
|
|
12
|
+
ConfigError = "ConfigError"
|
|
12
13
|
}
|
|
13
14
|
export type ErrorCode = LiFiErrorCode;
|
|
14
15
|
export declare enum LiFiErrorCode {
|
|
@@ -37,7 +38,8 @@ export declare enum LiFiErrorCode {
|
|
|
37
38
|
TransactionRejected = 1022,
|
|
38
39
|
RateLimitExceeded = 1023,
|
|
39
40
|
ThirdPartyError = 1024,
|
|
40
|
-
InsufficientGas = 1025
|
|
41
|
+
InsufficientGas = 1025,
|
|
42
|
+
ConfigError = 1026
|
|
41
43
|
}
|
|
42
44
|
export declare enum ErrorMessage {
|
|
43
45
|
UnknownError = "Unknown error occurred.",
|
|
@@ -13,6 +13,7 @@ var ErrorName;
|
|
|
13
13
|
ErrorName["UnknownError"] = "UnknownError";
|
|
14
14
|
ErrorName["SlippageError"] = "SlippageError";
|
|
15
15
|
ErrorName["HTTPError"] = "HTTPError";
|
|
16
|
+
ErrorName["ConfigError"] = "ConfigError";
|
|
16
17
|
})(ErrorName || (exports.ErrorName = ErrorName = {}));
|
|
17
18
|
var LiFiErrorCode;
|
|
18
19
|
(function (LiFiErrorCode) {
|
|
@@ -42,6 +43,7 @@ var LiFiErrorCode;
|
|
|
42
43
|
LiFiErrorCode[LiFiErrorCode["RateLimitExceeded"] = 1023] = "RateLimitExceeded";
|
|
43
44
|
LiFiErrorCode[LiFiErrorCode["ThirdPartyError"] = 1024] = "ThirdPartyError";
|
|
44
45
|
LiFiErrorCode[LiFiErrorCode["InsufficientGas"] = 1025] = "InsufficientGas";
|
|
46
|
+
LiFiErrorCode[LiFiErrorCode["ConfigError"] = 1026] = "ConfigError";
|
|
45
47
|
})(LiFiErrorCode || (exports.LiFiErrorCode = LiFiErrorCode = {}));
|
|
46
48
|
var ErrorMessage;
|
|
47
49
|
(function (ErrorMessage) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/errors/constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/errors/constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAYX;AAZD,WAAY,SAAS;IACnB,kCAAqB,CAAA;IACrB,4CAA+B,CAAA;IAC/B,wCAA2B,CAAA;IAC3B,kDAAqC,CAAA;IACrC,gDAAmC,CAAA;IACnC,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;IAC/B,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;IAC/B,oCAAuB,CAAA;IACvB,wCAA2B,CAAA;AAC7B,CAAC,EAZW,SAAS,yBAAT,SAAS,QAYpB;AAID,IAAY,aA4BX;AA5BD,WAAY,aAAa;IACvB,sEAAoB,CAAA;IACpB,0EAAsB,CAAA;IACtB,wFAA6B,CAAA;IAC7B,8EAAwB,CAAA;IACxB,0DAAc,CAAA;IACd,kFAA0B,CAAA;IAC1B,4DAAe,CAAA;IACf,4EAAuB,CAAA;IACvB,sFAA4B,CAAA;IAC5B,sEAAoB,CAAA;IACpB,kFAA0B,CAAA;IAC1B,sEAAoB,CAAA;IACpB,8EAAwB,CAAA;IACxB,oEAAmB,CAAA;IACnB,8EAAwB,CAAA;IACxB,8EAAwB,CAAA;IACxB,gGAAiC,CAAA;IACjC,oGAAmC,CAAA;IACnC,gFAAyB,CAAA;IACzB,kGAAkC,CAAA;IAClC,kFAA0B,CAAA;IAC1B,kFAA0B,CAAA;IAC1B,kFAA0B,CAAA;IAC1B,8EAAwB,CAAA;IACxB,0EAAsB,CAAA;IACtB,0EAAsB,CAAA;IACtB,kEAAkB,CAAA;AACpB,CAAC,EA5BW,aAAa,6BAAb,aAAa,QA4BxB;AAED,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,wDAAwC,CAAA;IACxC,qIAAqH,CAAA;IACrH,qDAAqC,CAAA;IACrC,sEAAsD,CAAA;IACtD,iEAAiD,CAAA;AACnD,CAAC,EANW,YAAY,4BAAZ,YAAY,QAMvB"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
export * from '@lifi/types';
|
|
2
|
-
export type { Client } from 'viem';
|
|
3
|
-
export { formatUnits, isHex, parseUnits } from 'viem/utils';
|
|
4
2
|
export { getChains } from './actions/getChains.js';
|
|
5
3
|
export { getConnections } from './actions/getConnections.js';
|
|
6
4
|
export { getContractCallsQuote } from './actions/getContractCallsQuote.js';
|
|
@@ -21,6 +19,7 @@ export { getTools } from './actions/getTools.js';
|
|
|
21
19
|
export { getTransactionHistory } from './actions/getTransactionHistory.js';
|
|
22
20
|
export { getWalletBalances } from './actions/getWalletBalances.js';
|
|
23
21
|
export { actions } from './actions/index.js';
|
|
22
|
+
export { patchContractCalls } from './actions/patchContractCalls.js';
|
|
24
23
|
export { relayTransaction } from './actions/relayTransaction.js';
|
|
25
24
|
export { createClient } from './client/createClient.js';
|
|
26
25
|
export { BaseStepExecutor } from './core/BaseStepExecutor.js';
|
|
@@ -28,7 +27,6 @@ export { checkBalance } from './core/checkBalance.js';
|
|
|
28
27
|
export { executeRoute, getActiveRoute, getActiveRoutes, resumeRoute, stopRouteExecution, updateRouteExecution, } from './core/execution.js';
|
|
29
28
|
export { StatusManager } from './core/StatusManager.js';
|
|
30
29
|
export { stepComparison } from './core/stepComparison.js';
|
|
31
|
-
export { isTokenMessageSigningAllowed } from './core/utils.js';
|
|
32
30
|
export { waitForDestinationChainTransaction } from './core/waitForDestinationChainTransaction.js';
|
|
33
31
|
export { BaseError } from './errors/baseError.js';
|
|
34
32
|
export type { ErrorCode } from './errors/constants.js';
|
|
@@ -36,10 +34,13 @@ export { ErrorMessage, ErrorName, LiFiErrorCode } from './errors/constants.js';
|
|
|
36
34
|
export { BalanceError, ProviderError, RPCError, ServerError, TransactionError, UnknownError, ValidationError, } from './errors/errors.js';
|
|
37
35
|
export { HTTPError } from './errors/httpError.js';
|
|
38
36
|
export { SDKError } from './errors/SDKError.js';
|
|
39
|
-
export type { AcceptExchangeRateUpdateHook, AcceptSlippageUpdateHook, AcceptSlippageUpdateHookParams, ExchangeRateUpdateParams, Execution, ExecutionOptions, ExecutionStatus, InteractionSettings, LiFiStepExtended, Process, ProcessStatus, ProcessType, RouteExecutionData, RouteExecutionDataDictionary, RouteExecutionDictionary, RouteExtended, RPCUrls, SDKBaseConfig, SDKClient, SDKConfig, SDKProvider, StepExecutor, StepExecutorOptions, StepExtended,
|
|
37
|
+
export type { AcceptExchangeRateUpdateHook, AcceptSlippageUpdateHook, AcceptSlippageUpdateHookParams, ContractCallParams, ContractTool, ExchangeRateUpdateParams, Execution, ExecutionOptions, ExecutionStatus, GetContractCallsHook, GetContractCallsResult, InteractionSettings, LiFiStepExtended, Process, ProcessStatus, ProcessType, RequestInterceptor, RouteExecutionData, RouteExecutionDataDictionary, RouteExecutionDictionary, RouteExtended, RPCUrls, SDKBaseConfig, SDKClient, SDKConfig, SDKProvider, StepExecutor, StepExecutorOptions, StepExtended, TransactionMethodType, TransactionParameters, TransactionRequestParameters, TransactionRequestUpdateHook, UpdateRouteHook, } from './types/core.js';
|
|
40
38
|
export { checkPackageUpdates } from './utils/checkPackageUpdates.js';
|
|
41
39
|
export { convertQuoteToRoute } from './utils/convertQuoteToRoute.js';
|
|
42
40
|
export { fetchTxErrorDetails } from './utils/fetchTxErrorDetails.js';
|
|
41
|
+
export { formatUnits } from './utils/formatUnits.js';
|
|
42
|
+
export { isHex } from './utils/isHex.js';
|
|
43
|
+
export { parseUnits } from './utils/parseUnits.js';
|
|
43
44
|
export { sleep } from './utils/sleep.js';
|
|
44
45
|
export { waitForResult } from './utils/waitForResult.js';
|
|
45
46
|
export { withDedupe } from './utils/withDedupe.js';
|
package/dist/cjs/index.js
CHANGED
|
@@ -14,13 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.SDKError = exports.HTTPError = exports.ValidationError = exports.UnknownError = exports.TransactionError = exports.ServerError = exports.RPCError = exports.ProviderError = exports.BalanceError = exports.LiFiErrorCode = exports.ErrorName = exports.ErrorMessage = exports.BaseError = exports.waitForDestinationChainTransaction = exports.
|
|
18
|
-
exports.withDedupe = exports.waitForResult = exports.sleep = exports.
|
|
17
|
+
exports.fetchTxErrorDetails = exports.convertQuoteToRoute = exports.checkPackageUpdates = exports.SDKError = exports.HTTPError = exports.ValidationError = exports.UnknownError = exports.TransactionError = exports.ServerError = exports.RPCError = exports.ProviderError = exports.BalanceError = exports.LiFiErrorCode = exports.ErrorName = exports.ErrorMessage = exports.BaseError = exports.waitForDestinationChainTransaction = exports.stepComparison = exports.StatusManager = exports.updateRouteExecution = exports.stopRouteExecution = exports.resumeRoute = exports.getActiveRoutes = exports.getActiveRoute = exports.executeRoute = exports.checkBalance = exports.BaseStepExecutor = exports.createClient = exports.relayTransaction = exports.patchContractCalls = exports.actions = exports.getWalletBalances = exports.getTransactionHistory = exports.getTools = exports.getTokens = exports.getTokenBalancesByChain = exports.getTokenBalances = exports.getTokenBalance = exports.getToken = exports.getStepTransaction = exports.getStatus = exports.getRoutes = exports.getRelayerQuote = exports.getRelayedTransactionStatus = exports.getQuote = exports.getNameServiceAddress = exports.getGasRecommendation = exports.getContractCallsQuote = exports.getConnections = exports.getChains = void 0;
|
|
18
|
+
exports.withDedupe = exports.waitForResult = exports.sleep = exports.parseUnits = exports.isHex = exports.formatUnits = void 0;
|
|
19
19
|
__exportStar(require("@lifi/types"), exports);
|
|
20
|
-
var utils_1 = require("viem/utils");
|
|
21
|
-
Object.defineProperty(exports, "formatUnits", { enumerable: true, get: function () { return utils_1.formatUnits; } });
|
|
22
|
-
Object.defineProperty(exports, "isHex", { enumerable: true, get: function () { return utils_1.isHex; } });
|
|
23
|
-
Object.defineProperty(exports, "parseUnits", { enumerable: true, get: function () { return utils_1.parseUnits; } });
|
|
24
20
|
var getChains_js_1 = require("./actions/getChains.js");
|
|
25
21
|
Object.defineProperty(exports, "getChains", { enumerable: true, get: function () { return getChains_js_1.getChains; } });
|
|
26
22
|
var getConnections_js_1 = require("./actions/getConnections.js");
|
|
@@ -61,6 +57,8 @@ var getWalletBalances_js_1 = require("./actions/getWalletBalances.js");
|
|
|
61
57
|
Object.defineProperty(exports, "getWalletBalances", { enumerable: true, get: function () { return getWalletBalances_js_1.getWalletBalances; } });
|
|
62
58
|
var index_js_1 = require("./actions/index.js");
|
|
63
59
|
Object.defineProperty(exports, "actions", { enumerable: true, get: function () { return index_js_1.actions; } });
|
|
60
|
+
var patchContractCalls_js_1 = require("./actions/patchContractCalls.js");
|
|
61
|
+
Object.defineProperty(exports, "patchContractCalls", { enumerable: true, get: function () { return patchContractCalls_js_1.patchContractCalls; } });
|
|
64
62
|
var relayTransaction_js_1 = require("./actions/relayTransaction.js");
|
|
65
63
|
Object.defineProperty(exports, "relayTransaction", { enumerable: true, get: function () { return relayTransaction_js_1.relayTransaction; } });
|
|
66
64
|
var createClient_js_1 = require("./client/createClient.js");
|
|
@@ -80,8 +78,6 @@ var StatusManager_js_1 = require("./core/StatusManager.js");
|
|
|
80
78
|
Object.defineProperty(exports, "StatusManager", { enumerable: true, get: function () { return StatusManager_js_1.StatusManager; } });
|
|
81
79
|
var stepComparison_js_1 = require("./core/stepComparison.js");
|
|
82
80
|
Object.defineProperty(exports, "stepComparison", { enumerable: true, get: function () { return stepComparison_js_1.stepComparison; } });
|
|
83
|
-
var utils_js_1 = require("./core/utils.js");
|
|
84
|
-
Object.defineProperty(exports, "isTokenMessageSigningAllowed", { enumerable: true, get: function () { return utils_js_1.isTokenMessageSigningAllowed; } });
|
|
85
81
|
var waitForDestinationChainTransaction_js_1 = require("./core/waitForDestinationChainTransaction.js");
|
|
86
82
|
Object.defineProperty(exports, "waitForDestinationChainTransaction", { enumerable: true, get: function () { return waitForDestinationChainTransaction_js_1.waitForDestinationChainTransaction; } });
|
|
87
83
|
var baseError_js_1 = require("./errors/baseError.js");
|
|
@@ -108,6 +104,12 @@ var convertQuoteToRoute_js_1 = require("./utils/convertQuoteToRoute.js");
|
|
|
108
104
|
Object.defineProperty(exports, "convertQuoteToRoute", { enumerable: true, get: function () { return convertQuoteToRoute_js_1.convertQuoteToRoute; } });
|
|
109
105
|
var fetchTxErrorDetails_js_1 = require("./utils/fetchTxErrorDetails.js");
|
|
110
106
|
Object.defineProperty(exports, "fetchTxErrorDetails", { enumerable: true, get: function () { return fetchTxErrorDetails_js_1.fetchTxErrorDetails; } });
|
|
107
|
+
var formatUnits_js_1 = require("./utils/formatUnits.js");
|
|
108
|
+
Object.defineProperty(exports, "formatUnits", { enumerable: true, get: function () { return formatUnits_js_1.formatUnits; } });
|
|
109
|
+
var isHex_js_1 = require("./utils/isHex.js");
|
|
110
|
+
Object.defineProperty(exports, "isHex", { enumerable: true, get: function () { return isHex_js_1.isHex; } });
|
|
111
|
+
var parseUnits_js_1 = require("./utils/parseUnits.js");
|
|
112
|
+
Object.defineProperty(exports, "parseUnits", { enumerable: true, get: function () { return parseUnits_js_1.parseUnits; } });
|
|
111
113
|
var sleep_js_1 = require("./utils/sleep.js");
|
|
112
114
|
Object.defineProperty(exports, "sleep", { enumerable: true, get: function () { return sleep_js_1.sleep; } });
|
|
113
115
|
var waitForResult_js_1 = require("./utils/waitForResult.js");
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAEA,8CAA2B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAEA,8CAA2B;AAC3B,uDAAkD;AAAzC,yGAAA,SAAS,OAAA;AAClB,iEAA4D;AAAnD,mHAAA,cAAc,OAAA;AACvB,+EAA0E;AAAjE,iIAAA,qBAAqB,OAAA;AAC9B,6EAAwE;AAA/D,+HAAA,oBAAoB,OAAA;AAC7B,+EAA0E;AAAjE,iIAAA,qBAAqB,OAAA;AAC9B,qDAAgD;AAAvC,uGAAA,QAAQ,OAAA;AACjB,2FAAsF;AAA7E,6IAAA,2BAA2B,OAAA;AACpC,mEAA8D;AAArD,qHAAA,eAAe,OAAA;AACxB,uDAAkD;AAAzC,yGAAA,SAAS,OAAA;AAClB,uDAAkD;AAAzC,yGAAA,SAAS,OAAA;AAClB,yEAAoE;AAA3D,2HAAA,kBAAkB,OAAA;AAC3B,qDAAgD;AAAvC,uGAAA,QAAQ,OAAA;AACjB,mEAA8D;AAArD,qHAAA,eAAe,OAAA;AACxB,qEAAgE;AAAvD,uHAAA,gBAAgB,OAAA;AACzB,mFAA8E;AAArE,qIAAA,uBAAuB,OAAA;AAChC,uDAAkD;AAAzC,yGAAA,SAAS,OAAA;AAClB,qDAAgD;AAAvC,uGAAA,QAAQ,OAAA;AACjB,+EAA0E;AAAjE,iIAAA,qBAAqB,OAAA;AAC9B,uEAAkE;AAAzD,yHAAA,iBAAiB,OAAA;AAC1B,+CAA4C;AAAnC,mGAAA,OAAO,OAAA;AAChB,yEAAoE;AAA3D,2HAAA,kBAAkB,OAAA;AAC3B,qEAAgE;AAAvD,uHAAA,gBAAgB,OAAA;AACzB,4DAAuD;AAA9C,+GAAA,YAAY,OAAA;AACrB,kEAA6D;AAApD,uHAAA,gBAAgB,OAAA;AACzB,0DAAqD;AAA5C,+GAAA,YAAY,OAAA;AACrB,oDAO4B;AAN1B,4GAAA,YAAY,OAAA;AACZ,8GAAA,cAAc,OAAA;AACd,+GAAA,eAAe,OAAA;AACf,2GAAA,WAAW,OAAA;AACX,kHAAA,kBAAkB,OAAA;AAClB,oHAAA,oBAAoB,OAAA;AAEtB,4DAAuD;AAA9C,iHAAA,aAAa,OAAA;AACtB,8DAAyD;AAAhD,mHAAA,cAAc,OAAA;AACvB,sGAAiG;AAAxF,2JAAA,kCAAkC,OAAA;AAC3C,sDAAiD;AAAxC,yGAAA,SAAS,OAAA;AAElB,sDAA8E;AAArE,4GAAA,YAAY,OAAA;AAAE,yGAAA,SAAS,OAAA;AAAE,6GAAA,aAAa,OAAA;AAC/C,gDAQ2B;AAPzB,yGAAA,YAAY,OAAA;AACZ,0GAAA,aAAa,OAAA;AACb,qGAAA,QAAQ,OAAA;AACR,wGAAA,WAAW,OAAA;AACX,6GAAA,gBAAgB,OAAA;AAChB,yGAAA,YAAY,OAAA;AACZ,4GAAA,eAAe,OAAA;AAEjB,sDAAiD;AAAxC,yGAAA,SAAS,OAAA;AAClB,oDAA+C;AAAtC,uGAAA,QAAQ,OAAA;AAqCjB,yEAAoE;AAA3D,6HAAA,mBAAmB,OAAA;AAC5B,yEAAoE;AAA3D,6HAAA,mBAAmB,OAAA;AAC5B,yEAAoE;AAA3D,6HAAA,mBAAmB,OAAA;AAC5B,yDAAoD;AAA3C,6GAAA,WAAW,OAAA;AACpB,6CAAwC;AAA/B,iGAAA,KAAK,OAAA;AACd,uDAAkD;AAAzC,2GAAA,UAAU,OAAA;AACnB,6CAAwC;AAA/B,iGAAA,KAAK,OAAA;AACd,6DAAwD;AAA/C,iHAAA,aAAa,OAAA;AACtB,uDAAkD;AAAzC,2GAAA,UAAU,OAAA"}
|
package/dist/cjs/types/core.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { ChainId, ChainType, CoinKey, ExtendedChain, FeeCost, GasCost, LiFiStep, Route, RouteOptions, Step, Substatus, Token, TokenAmount } from '@lifi/types';
|
|
2
|
-
import type {
|
|
1
|
+
import type { ChainId, ChainType, CoinKey, ContractCall, ExtendedChain, FeeCost, GasCost, LiFiStep, Route, RouteOptions, Step, Substatus, Token, TokenAmount } from '@lifi/types';
|
|
2
|
+
import type { ExtendedRequestInit } from './request.js';
|
|
3
|
+
export type RequestInterceptor = (request: ExtendedRequestInit) => ExtendedRequestInit | Promise<ExtendedRequestInit>;
|
|
3
4
|
export interface SDKBaseConfig {
|
|
4
5
|
apiKey?: string;
|
|
5
6
|
apiUrl: string;
|
|
@@ -12,6 +13,8 @@ export interface SDKBaseConfig {
|
|
|
12
13
|
widgetVersion?: string;
|
|
13
14
|
debug: boolean;
|
|
14
15
|
preloadChains?: boolean;
|
|
16
|
+
chainsRefetchInterval?: number;
|
|
17
|
+
requestInterceptor?: RequestInterceptor;
|
|
15
18
|
}
|
|
16
19
|
export interface SDKConfig extends Partial<Omit<SDKBaseConfig, 'integrator'>> {
|
|
17
20
|
integrator: string;
|
|
@@ -83,7 +86,6 @@ export interface TransactionRequestParameters extends TransactionParameters {
|
|
|
83
86
|
requestType: 'approve' | 'transaction';
|
|
84
87
|
}
|
|
85
88
|
export type TransactionRequestUpdateHook = (updatedTxRequest: TransactionRequestParameters) => Promise<TransactionParameters>;
|
|
86
|
-
export type SwitchChainHook = (chainId: number) => Promise<Client | undefined>;
|
|
87
89
|
export interface AcceptSlippageUpdateHookParams {
|
|
88
90
|
toToken: Token;
|
|
89
91
|
oldToAmount: string;
|
|
@@ -98,11 +100,33 @@ export interface ExchangeRateUpdateParams {
|
|
|
98
100
|
newToAmount: string;
|
|
99
101
|
}
|
|
100
102
|
export type AcceptExchangeRateUpdateHook = (params: ExchangeRateUpdateParams) => Promise<boolean | undefined>;
|
|
103
|
+
export interface ContractCallParams {
|
|
104
|
+
fromChainId: number;
|
|
105
|
+
toChainId: number;
|
|
106
|
+
fromTokenAddress: string;
|
|
107
|
+
toTokenAddress: string;
|
|
108
|
+
fromAddress: string;
|
|
109
|
+
toAddress?: string;
|
|
110
|
+
fromAmount: bigint;
|
|
111
|
+
toAmount: bigint;
|
|
112
|
+
slippage?: number;
|
|
113
|
+
}
|
|
114
|
+
export interface ContractTool {
|
|
115
|
+
name: string;
|
|
116
|
+
logoURI: string;
|
|
117
|
+
}
|
|
118
|
+
export interface GetContractCallsResult {
|
|
119
|
+
contractCalls: ContractCall[];
|
|
120
|
+
patcher?: boolean;
|
|
121
|
+
contractTool?: ContractTool;
|
|
122
|
+
}
|
|
123
|
+
export type GetContractCallsHook = (params: ContractCallParams) => Promise<GetContractCallsResult>;
|
|
101
124
|
export interface ExecutionOptions {
|
|
102
125
|
acceptExchangeRateUpdateHook?: AcceptExchangeRateUpdateHook;
|
|
103
|
-
switchChainHook?: SwitchChainHook;
|
|
104
126
|
updateRouteHook?: UpdateRouteHook;
|
|
105
127
|
updateTransactionRequestHook?: TransactionRequestUpdateHook;
|
|
128
|
+
getContractCalls?: GetContractCallsHook;
|
|
129
|
+
adjustZeroOutputFromPreviousStep?: boolean;
|
|
106
130
|
executeInBackground?: boolean;
|
|
107
131
|
disableMessageSigning?: boolean;
|
|
108
132
|
infiniteApproval?: boolean;
|
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
import type { LiFiStep, Route } from '@lifi/types';
|
|
2
|
-
|
|
2
|
+
interface ConvertQuoteToRouteOptions {
|
|
3
|
+
adjustZeroOutputFromPreviousStep?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function formatTokenPrice(amount?: string | bigint, price?: string, decimals?: number): number;
|
|
6
|
+
export declare const convertQuoteToRoute: (quote: LiFiStep, options?: ConvertQuoteToRouteOptions) => Route;
|
|
7
|
+
export {};
|
|
@@ -1,13 +1,81 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertQuoteToRoute = void 0;
|
|
4
|
+
exports.formatTokenPrice = formatTokenPrice;
|
|
4
5
|
const errors_js_1 = require("../errors/errors.js");
|
|
5
6
|
const SDKError_js_1 = require("../errors/SDKError.js");
|
|
6
|
-
const
|
|
7
|
+
const formatUnits_js_1 = require("./formatUnits.js");
|
|
8
|
+
const parseBigInt = (value) => {
|
|
9
|
+
if (!value) {
|
|
10
|
+
return 0n;
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
return BigInt(value);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return 0n;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const parseNumber = (value) => {
|
|
20
|
+
if (!value) {
|
|
21
|
+
return 0;
|
|
22
|
+
}
|
|
23
|
+
const parsed = Number(value);
|
|
24
|
+
return Number.isNaN(parsed) ? 0 : parsed;
|
|
25
|
+
};
|
|
26
|
+
const isZeroOutput = (toAmount, toAmountMin, toAmountUSD) => {
|
|
27
|
+
return (!parseBigInt(toAmount) &&
|
|
28
|
+
!parseBigInt(toAmountMin) &&
|
|
29
|
+
!parseNumber(toAmountUSD));
|
|
30
|
+
};
|
|
31
|
+
const hasNonZeroOutput = (step) => {
|
|
32
|
+
return (!!parseBigInt(step.estimate.toAmount) ||
|
|
33
|
+
!!parseBigInt(step.estimate.toAmountMin));
|
|
34
|
+
};
|
|
35
|
+
const findPreviousNonZeroStep = (steps) => {
|
|
36
|
+
for (let i = steps.length - 1; i >= 0; i--) {
|
|
37
|
+
const step = steps[i];
|
|
38
|
+
if (hasNonZeroOutput(step)) {
|
|
39
|
+
return step;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
};
|
|
44
|
+
function formatTokenPrice(amount, price, decimals) {
|
|
45
|
+
if (!amount || !price) {
|
|
46
|
+
return 0;
|
|
47
|
+
}
|
|
48
|
+
const formattedAmount = typeof amount === 'bigint' && decimals !== undefined
|
|
49
|
+
? (0, formatUnits_js_1.formatUnits)(amount, decimals)
|
|
50
|
+
: amount.toString();
|
|
51
|
+
if (Number.isNaN(Number(formattedAmount)) || Number.isNaN(Number(price))) {
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
return Number.parseFloat(formattedAmount) * Number.parseFloat(price);
|
|
55
|
+
}
|
|
56
|
+
const convertQuoteToRoute = (quote, options) => {
|
|
57
|
+
let toAmount = quote.estimate.toAmount;
|
|
58
|
+
let toAmountMin = quote.estimate.toAmountMin;
|
|
59
|
+
let toAmountUSD = quote.estimate.toAmountUSD;
|
|
60
|
+
if (options?.adjustZeroOutputFromPreviousStep &&
|
|
61
|
+
quote.includedSteps?.length &&
|
|
62
|
+
isZeroOutput(toAmount, toAmountMin, toAmountUSD)) {
|
|
63
|
+
const previousStep = findPreviousNonZeroStep(quote.includedSteps);
|
|
64
|
+
if (previousStep) {
|
|
65
|
+
toAmount = previousStep.estimate.toAmount;
|
|
66
|
+
toAmountMin = previousStep.estimate.toAmountMin;
|
|
67
|
+
toAmountUSD = formatTokenPrice(parseBigInt(toAmount), previousStep.action.toToken.priceUSD, previousStep.action.toToken.decimals).toFixed(2);
|
|
68
|
+
const lastStep = quote.includedSteps[quote.includedSteps.length - 1];
|
|
69
|
+
if (lastStep && !hasNonZeroOutput(lastStep)) {
|
|
70
|
+
lastStep.estimate.toAmount = toAmount;
|
|
71
|
+
lastStep.estimate.toAmountMin = toAmountMin;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
7
75
|
if (!quote.estimate.fromAmountUSD) {
|
|
8
76
|
throw new SDKError_js_1.SDKError(new errors_js_1.ValidationError("Missing 'fromAmountUSD' in step estimate."));
|
|
9
77
|
}
|
|
10
|
-
if (!
|
|
78
|
+
if (!toAmountUSD) {
|
|
11
79
|
throw new SDKError_js_1.SDKError(new errors_js_1.ValidationError("Missing 'toAmountUSD' in step estimate."));
|
|
12
80
|
}
|
|
13
81
|
const route = {
|
|
@@ -19,9 +87,9 @@ const convertQuoteToRoute = (quote) => {
|
|
|
19
87
|
fromAddress: quote.action.fromAddress,
|
|
20
88
|
toChainId: quote.action.toToken.chainId,
|
|
21
89
|
toToken: quote.action.toToken,
|
|
22
|
-
toAmount
|
|
23
|
-
toAmountMin
|
|
24
|
-
toAmountUSD
|
|
90
|
+
toAmount,
|
|
91
|
+
toAmountMin,
|
|
92
|
+
toAmountUSD,
|
|
25
93
|
toAddress: quote.action.toAddress || quote.action.fromAddress,
|
|
26
94
|
gasCostUSD: quote.estimate.gasCosts?.[0]?.amountUSD || '0',
|
|
27
95
|
steps: [quote],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertQuoteToRoute.js","sourceRoot":"","sources":["../../../src/utils/convertQuoteToRoute.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"convertQuoteToRoute.js","sourceRoot":"","sources":["../../../src/utils/convertQuoteToRoute.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function formatUnits(value: bigint, decimals: number): string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatUnits = formatUnits;
|
|
4
|
+
function formatUnits(value, decimals) {
|
|
5
|
+
let display = value.toString();
|
|
6
|
+
const negative = display.startsWith('-');
|
|
7
|
+
if (negative) {
|
|
8
|
+
display = display.slice(1);
|
|
9
|
+
}
|
|
10
|
+
display = display.padStart(decimals, '0');
|
|
11
|
+
let [integer, fraction] = [
|
|
12
|
+
display.slice(0, display.length - decimals),
|
|
13
|
+
display.slice(display.length - decimals),
|
|
14
|
+
];
|
|
15
|
+
fraction = fraction.replace(/(0+)$/, '');
|
|
16
|
+
return `${negative ? '-' : ''}${integer || '0'}${fraction ? `.${fraction}` : ''}`;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=formatUnits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatUnits.js","sourceRoot":"","sources":["../../../src/utils/formatUnits.ts"],"names":[],"mappings":";;AAGA,kCAkBC;AAlBD,SAAgB,WAAW,CAAC,KAAa,EAAE,QAAgB;IACzD,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;IAE9B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IACxC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAEzC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG;QACxB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;KACzC,CAAA;IACD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACxC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,IAAI,GAAG,GAC5C,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAC9B,EAAE,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isHex = isHex;
|
|
4
|
+
function isHex(value, { strict = true } = {}) {
|
|
5
|
+
if (!value) {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
if (typeof value !== 'string') {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x');
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=isHex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isHex.js","sourceRoot":"","sources":["../../../src/utils/isHex.ts"],"names":[],"mappings":";;AAEA,sBAWC;AAXD,SAAgB,KAAK,CACnB,KAAc,EACd,EAAE,MAAM,GAAG,IAAI,KAAuC,EAAE;IAExD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACzE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function parseUnits(value: string, decimals: number): bigint;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseUnits = parseUnits;
|
|
4
|
+
function parseUnits(value, decimals) {
|
|
5
|
+
if (!/^(-?)([0-9]*)\.?([0-9]*)$/.test(value)) {
|
|
6
|
+
throw new Error(`Number \`${value}\` is not a valid decimal number.`);
|
|
7
|
+
}
|
|
8
|
+
let [integer, fraction = '0'] = value.split('.');
|
|
9
|
+
const negative = integer.startsWith('-');
|
|
10
|
+
if (negative) {
|
|
11
|
+
integer = integer.slice(1);
|
|
12
|
+
}
|
|
13
|
+
fraction = fraction.replace(/(0+)$/, '');
|
|
14
|
+
if (decimals === 0) {
|
|
15
|
+
if (Math.round(Number(`.${fraction}`)) === 1) {
|
|
16
|
+
integer = `${BigInt(integer) + 1n}`;
|
|
17
|
+
}
|
|
18
|
+
fraction = '';
|
|
19
|
+
}
|
|
20
|
+
else if (fraction.length > decimals) {
|
|
21
|
+
const [left, unit, right] = [
|
|
22
|
+
fraction.slice(0, decimals - 1),
|
|
23
|
+
fraction.slice(decimals - 1, decimals),
|
|
24
|
+
fraction.slice(decimals),
|
|
25
|
+
];
|
|
26
|
+
const rounded = Math.round(Number(`${unit}.${right}`));
|
|
27
|
+
if (rounded > 9) {
|
|
28
|
+
fraction = `${BigInt(left) + BigInt(1)}0`.padStart(left.length + 1, '0');
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
fraction = `${left}${rounded}`;
|
|
32
|
+
}
|
|
33
|
+
if (fraction.length > decimals) {
|
|
34
|
+
fraction = fraction.slice(1);
|
|
35
|
+
integer = `${BigInt(integer) + 1n}`;
|
|
36
|
+
}
|
|
37
|
+
fraction = fraction.slice(0, decimals);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
fraction = fraction.padEnd(decimals, '0');
|
|
41
|
+
}
|
|
42
|
+
return BigInt(`${negative ? '-' : ''}${integer}${fraction}`);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=parseUnits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseUnits.js","sourceRoot":"","sources":["../../../src/utils/parseUnits.ts"],"names":[],"mappings":";;AAGA,gCA8CC;AA9CD,SAAgB,UAAU,CAAC,KAAa,EAAE,QAAgB;IACxD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,YAAY,KAAK,mCAAmC,CAAC,CAAA;IACvE,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEhD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IACxC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IAGD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAGxC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAA;QACrC,CAAC;QACD,QAAQ,GAAG,EAAE,CAAA;IACf,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG;YAC1B,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;YAC/B,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC;YACtC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;SACzB,CAAA;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAA;QACtD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,QAAQ,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;QAC1E,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,GAAG,IAAI,GAAG,OAAO,EAAE,CAAA;QAChC,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;YAC/B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC5B,OAAO,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAA;QACrC,CAAC;QAED,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;IACxC,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,GAAG,QAAQ,EAAE,CAAC,CAAA;AAC9D,CAAC"}
|