@lifi/sdk 3.14.0 → 3.15.0-beta.0
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/package.json +1 -1
- package/src/_cjs/constants.js +2 -1
- package/src/_cjs/constants.js.map +1 -1
- package/src/_cjs/core/EVM/EVMStepExecutor.js +86 -17
- package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_cjs/core/EVM/typeguards.js +4 -0
- package/src/_cjs/core/EVM/typeguards.js.map +1 -1
- package/src/_cjs/core/utils.js +0 -5
- package/src/_cjs/core/utils.js.map +1 -1
- package/src/_cjs/index.js +11 -8
- package/src/_cjs/index.js.map +1 -1
- package/src/_cjs/services/api.js +12 -1
- package/src/_cjs/services/api.js.map +1 -1
- package/src/_cjs/utils/convertQuoteToRoute.js +73 -5
- package/src/_cjs/utils/convertQuoteToRoute.js.map +1 -1
- package/src/_cjs/version.js +1 -1
- package/src/_cjs/version.js.map +1 -1
- package/src/_esm/constants.js +1 -0
- package/src/_esm/constants.js.map +1 -1
- package/src/_esm/core/EVM/EVMStepExecutor.js +86 -10
- package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_esm/core/EVM/typeguards.js +3 -0
- package/src/_esm/core/EVM/typeguards.js.map +1 -1
- package/src/_esm/core/utils.js +0 -11
- package/src/_esm/core/utils.js.map +1 -1
- package/src/_esm/index.js +3 -2
- package/src/_esm/index.js.map +1 -1
- package/src/_esm/services/api.js +10 -0
- package/src/_esm/services/api.js.map +1 -1
- package/src/_esm/utils/convertQuoteToRoute.js +76 -7
- package/src/_esm/utils/convertQuoteToRoute.js.map +1 -1
- package/src/_esm/version.js +1 -1
- package/src/_esm/version.js.map +1 -1
- package/src/_types/constants.d.ts +1 -0
- package/src/_types/constants.d.ts.map +1 -1
- package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
- package/src/_types/core/EVM/typeguards.d.ts +1 -0
- package/src/_types/core/EVM/typeguards.d.ts.map +1 -1
- package/src/_types/core/types.d.ts +24 -1
- package/src/_types/core/types.d.ts.map +1 -1
- package/src/_types/core/utils.d.ts +1 -10
- package/src/_types/core/utils.d.ts.map +1 -1
- package/src/_types/index.d.ts +4 -3
- package/src/_types/index.d.ts.map +1 -1
- package/src/_types/services/api.d.ts +19 -0
- package/src/_types/services/api.d.ts.map +1 -1
- package/src/_types/utils/convertQuoteToRoute.d.ts +11 -3
- package/src/_types/utils/convertQuoteToRoute.d.ts.map +1 -1
- package/src/_types/version.d.ts +1 -1
- package/src/_types/version.d.ts.map +1 -1
- package/src/constants.ts +2 -0
- package/src/core/EVM/EVMStepExecutor.ts +111 -10
- package/src/core/EVM/typeguards.ts +4 -0
- package/src/core/types.ts +30 -0
- package/src/core/utils.ts +1 -13
- package/src/index.ts +7 -1
- package/src/services/api.ts +37 -0
- package/src/utils/convertQuoteToRoute.ts +117 -8
- package/src/version.ts +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ChainId, ChainType, CoinKey, FeeCost, GasCost, LiFiStep, Route, Step, Substatus, Token, TokenAmount } from '@lifi/types';
|
|
1
|
+
import type { ChainId, ChainType, CoinKey, ContractCall, FeeCost, GasCost, LiFiStep, Route, Step, Substatus, Token, TokenAmount } from '@lifi/types';
|
|
2
2
|
import type { Client } from 'viem';
|
|
3
3
|
export interface SDKProvider {
|
|
4
4
|
readonly type: ChainType;
|
|
@@ -70,11 +70,34 @@ export interface ExchangeRateUpdateParams {
|
|
|
70
70
|
newToAmount: string;
|
|
71
71
|
}
|
|
72
72
|
export type AcceptExchangeRateUpdateHook = (params: ExchangeRateUpdateParams) => Promise<boolean | undefined>;
|
|
73
|
+
export interface ContractCallParams {
|
|
74
|
+
fromChainId: number;
|
|
75
|
+
toChainId: number;
|
|
76
|
+
fromTokenAddress: string;
|
|
77
|
+
toTokenAddress: string;
|
|
78
|
+
fromAddress: string;
|
|
79
|
+
toAddress?: string;
|
|
80
|
+
fromAmount: bigint;
|
|
81
|
+
toAmount: bigint;
|
|
82
|
+
slippage?: number;
|
|
83
|
+
}
|
|
84
|
+
export interface ContractTool {
|
|
85
|
+
name: string;
|
|
86
|
+
logoURI: string;
|
|
87
|
+
}
|
|
88
|
+
export interface GetContractCallsResult {
|
|
89
|
+
contractCalls: ContractCall[];
|
|
90
|
+
patcher?: boolean;
|
|
91
|
+
contractTool?: ContractTool;
|
|
92
|
+
}
|
|
93
|
+
export type GetContractCallsHook = (params: ContractCallParams) => Promise<GetContractCallsResult>;
|
|
73
94
|
export interface ExecutionOptions {
|
|
74
95
|
acceptExchangeRateUpdateHook?: AcceptExchangeRateUpdateHook;
|
|
75
96
|
switchChainHook?: SwitchChainHook;
|
|
76
97
|
updateRouteHook?: UpdateRouteHook;
|
|
77
98
|
updateTransactionRequestHook?: TransactionRequestUpdateHook;
|
|
99
|
+
getContractCalls?: GetContractCallsHook;
|
|
100
|
+
adjustZeroOutputFromPreviousStep?: boolean;
|
|
78
101
|
executeInBackground?: boolean;
|
|
79
102
|
disableMessageSigning?: boolean;
|
|
80
103
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../core/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LiFiStep
|
|
1
|
+
import type { LiFiStep } from '@lifi/types';
|
|
2
2
|
/**
|
|
3
3
|
* Used to check if changed exchange rate is in the range of slippage threshold.
|
|
4
4
|
* We use a slippage value as a threshold to trigger the rate change hook.
|
|
@@ -8,13 +8,4 @@ import type { LiFiStep, Token } from '@lifi/types';
|
|
|
8
8
|
* @returns Boolean
|
|
9
9
|
*/
|
|
10
10
|
export declare function checkStepSlippageThreshold(oldStep: LiFiStep, newStep: LiFiStep): boolean;
|
|
11
|
-
/**
|
|
12
|
-
* Checks whether a given token is eligible for message signing.
|
|
13
|
-
* Tokens with '₮' symbol in their name are disallowed,
|
|
14
|
-
* since such tokens may have non-standard signing requirements or compatibility issues with hardware wallets.
|
|
15
|
-
*
|
|
16
|
-
* @param token - The token object to check.
|
|
17
|
-
* @returns true if the token is allowed for message signing, false otherwise.
|
|
18
|
-
*/
|
|
19
|
-
export declare const isTokenMessageSigningAllowed: (token: Token) => boolean;
|
|
20
11
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../core/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../core/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAK3C;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,QAAQ,GAChB,OAAO,CAaT"}
|
package/src/_types/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from '@lifi/types';
|
|
2
2
|
export { config } from './config.js';
|
|
3
|
+
export { PatcherMagicNumber } from './constants.js';
|
|
3
4
|
export { checkPermitSupport } from './core/EVM/checkPermitSupport.js';
|
|
4
5
|
export { EVM } from './core/EVM/EVM.js';
|
|
5
6
|
export { getTokenAllowance, getTokenAllowanceMulticall, } from './core/EVM/getAllowance.js';
|
|
@@ -20,11 +21,10 @@ export { StatusManager } from './core/StatusManager.js';
|
|
|
20
21
|
export { Sui } from './core/Sui/Sui.js';
|
|
21
22
|
export type { SuiProvider, SuiProviderOptions } from './core/Sui/types.js';
|
|
22
23
|
export { isSui } from './core/Sui/types.js';
|
|
23
|
-
export type { AcceptExchangeRateUpdateHook, AcceptSlippageUpdateHook, AcceptSlippageUpdateHookParams, ExchangeRateUpdateParams, Execution, ExecutionOptions, ExecutionStatus, InteractionSettings, LiFiStepExtended, Process, ProcessStatus, ProcessType, RouteExecutionData, RouteExecutionDataDictionary, RouteExecutionDictionary, RouteExtended, SDKProvider, StepExecutor, StepExecutorOptions, StepExtended, SwitchChainHook, TransactionParameters, TransactionRequestParameters, TransactionRequestUpdateHook, UpdateRouteHook, } from './core/types.js';
|
|
24
|
+
export type { AcceptExchangeRateUpdateHook, AcceptSlippageUpdateHook, AcceptSlippageUpdateHookParams, ContractCallParams, ContractTool, ExchangeRateUpdateParams, Execution, ExecutionOptions, ExecutionStatus, GetContractCallsHook, GetContractCallsResult, InteractionSettings, LiFiStepExtended, Process, ProcessStatus, ProcessType, RouteExecutionData, RouteExecutionDataDictionary, RouteExecutionDictionary, RouteExtended, SDKProvider, StepExecutor, StepExecutorOptions, StepExtended, SwitchChainHook, TransactionParameters, TransactionRequestParameters, TransactionRequestUpdateHook, UpdateRouteHook, } from './core/types.js';
|
|
24
25
|
export type { UTXOProvider, UTXOProviderOptions } from './core/UTXO/types.js';
|
|
25
26
|
export { isUTXO } from './core/UTXO/types.js';
|
|
26
27
|
export { UTXO } from './core/UTXO/UTXO.js';
|
|
27
|
-
export { isTokenMessageSigningAllowed } from './core/utils.js';
|
|
28
28
|
export { createConfig } from './createConfig.js';
|
|
29
29
|
export { BaseError } from './errors/baseError.js';
|
|
30
30
|
export type { ErrorCode } from './errors/constants.js';
|
|
@@ -32,7 +32,7 @@ export { ErrorMessage, ErrorName, LiFiErrorCode } from './errors/constants.js';
|
|
|
32
32
|
export { BalanceError, ProviderError, RPCError, ServerError, TransactionError, UnknownError, ValidationError, } from './errors/errors.js';
|
|
33
33
|
export { HTTPError } from './errors/httpError.js';
|
|
34
34
|
export { SDKError } from './errors/SDKError.js';
|
|
35
|
-
export { getChains, getConnections, getContractCallsQuote, getGasRecommendation, getQuote, getRelayedTransactionStatus, getRelayerQuote, getRoutes, getStatus, getStepTransaction, getToken, getTokens, getTools, getTransactionHistory, relayTransaction, } from './services/api.js';
|
|
35
|
+
export { getChains, getConnections, getContractCallsQuote, getGasRecommendation, getQuote, getRelayedTransactionStatus, getRelayerQuote, getRoutes, getStatus, getStepTransaction, getToken, getTokens, getTools, getTransactionHistory, patchContractCalls, relayTransaction, } from './services/api.js';
|
|
36
36
|
export { getTokenBalance, getTokenBalances, getTokenBalancesByChain, getWalletBalances, } from './services/balance.js';
|
|
37
37
|
export { getNameServiceAddress } from './services/getNameServiceAddress.js';
|
|
38
38
|
export type { GetStatusRequestExtended, QuoteRequest, QuoteRequestFromAmount, QuoteRequestToAmount, } from './services/types.js';
|
|
@@ -40,4 +40,5 @@ export type { RequestInterceptor, RPCUrls, SDKBaseConfig, SDKConfig, } from './t
|
|
|
40
40
|
export { checkPackageUpdates } from './utils/checkPackageUpdates.js';
|
|
41
41
|
export { convertQuoteToRoute } from './utils/convertQuoteToRoute.js';
|
|
42
42
|
export { fetchTxErrorDetails } from './utils/fetchTxErrorDetails.js';
|
|
43
|
+
export { isZeroAddress } from './utils/isZeroAddress.js';
|
|
43
44
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAA;AACvE,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,GAClB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,aAAa,EACb,aAAa,GACd,MAAM,0BAA0B,CAAA;AACjC,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,YAAY,EACV,cAAc,EACd,qBAAqB,GACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,YAAY,EACV,4BAA4B,EAC5B,wBAAwB,EACxB,8BAA8B,EAC9B,wBAAwB,EACxB,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,4BAA4B,EAC5B,wBAAwB,EACxB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,4BAA4B,EAC5B,4BAA4B,EAC5B,eAAe,GAChB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,4 +117,23 @@ export declare const getGasRecommendation: (params: GasRecommendationRequest, op
|
|
|
117
117
|
*/
|
|
118
118
|
export declare const getConnections: (connectionRequest: ConnectionsRequest, options?: RequestOptions) => Promise<ConnectionsResponse>;
|
|
119
119
|
export declare const getTransactionHistory: ({ wallet, status, fromTimestamp, toTimestamp }: TransactionAnalyticsRequest, options?: RequestOptions) => Promise<TransactionAnalyticsResponse>;
|
|
120
|
+
export type PatchContractCallsRequest = {
|
|
121
|
+
chainId: ChainId;
|
|
122
|
+
fromTokenAddress: string;
|
|
123
|
+
targetContractAddress: string;
|
|
124
|
+
callDataToPatch: string;
|
|
125
|
+
patches: {
|
|
126
|
+
amountToReplace: string;
|
|
127
|
+
}[];
|
|
128
|
+
value?: string;
|
|
129
|
+
delegateCall?: boolean;
|
|
130
|
+
};
|
|
131
|
+
export interface PatchContractCallsResponse {
|
|
132
|
+
target: string;
|
|
133
|
+
value: bigint;
|
|
134
|
+
callData: string;
|
|
135
|
+
allowFailure: boolean;
|
|
136
|
+
isDelegateCall: boolean;
|
|
137
|
+
}
|
|
138
|
+
export declare const patchContractCalls: (params: PatchContractCallsRequest[], options?: RequestOptions) => Promise<PatchContractCallsResponse[]>;
|
|
120
139
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../services/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../services/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import type { LiFiStep, Route } from '@lifi/types';
|
|
2
|
+
interface ConvertQuoteToRouteOptions {
|
|
3
|
+
/**
|
|
4
|
+
* When true, if the quote has zero output values (toAmount, toAmountMin, toAmountUSD),
|
|
5
|
+
* use the values from the previous included step that has non-zero output.
|
|
6
|
+
*/
|
|
7
|
+
adjustZeroOutputFromPreviousStep?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function formatTokenPrice(amount?: string | bigint, price?: string, decimals?: number): number;
|
|
2
10
|
/**
|
|
3
11
|
* Converts a quote to Route
|
|
4
12
|
* @param quote - Step returned from the quote endpoint.
|
|
5
|
-
* @param
|
|
6
|
-
* @param chainId
|
|
13
|
+
* @param options - Optional configuration for handling edge cases.
|
|
7
14
|
* @returns - The route to be executed.
|
|
8
15
|
* @throws {BaseError} Throws a ValidationError if the step has missing values.
|
|
9
16
|
*/
|
|
10
|
-
export declare const convertQuoteToRoute: (quote: LiFiStep) => Route;
|
|
17
|
+
export declare const convertQuoteToRoute: (quote: LiFiStep, options?: ConvertQuoteToRouteOptions) => Route;
|
|
18
|
+
export {};
|
|
11
19
|
//# sourceMappingURL=convertQuoteToRoute.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertQuoteToRoute.d.ts","sourceRoot":"","sources":["../../utils/convertQuoteToRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"convertQuoteToRoute.d.ts","sourceRoot":"","sources":["../../utils/convertQuoteToRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAQ,MAAM,aAAa,CAAA;AAKxD,UAAU,0BAA0B;IAClC;;;OAGG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAA;CAC3C;AAmDD,wBAAgB,gBAAgB,CAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EACxB,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,UAelB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,QAAQ,EACf,UAAU,0BAA0B,KACnC,KA6DF,CAAA"}
|
package/src/_types/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,cAAc,CAAA;AAC/B,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,cAAc,CAAA;AAC/B,eAAO,MAAM,OAAO,kBAAkB,CAAA"}
|
package/src/constants.ts
CHANGED
|
@@ -8,3 +8,5 @@ export const MaxUint48 = BigInt('0xffffffffffff')
|
|
|
8
8
|
export const MaxUint160 = BigInt('0xffffffffffffffffffffffffffffffffffffffff')
|
|
9
9
|
export const MaxUint256 =
|
|
10
10
|
BigInt(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn)
|
|
11
|
+
|
|
12
|
+
export const PatcherMagicNumber = 314159265359n
|
|
@@ -17,13 +17,17 @@ import {
|
|
|
17
17
|
} from 'viem/actions'
|
|
18
18
|
import { getAction, isHex } from 'viem/utils'
|
|
19
19
|
import { config } from '../../config.js'
|
|
20
|
+
import { PatcherMagicNumber } from '../../constants.js'
|
|
20
21
|
import { LiFiErrorCode } from '../../errors/constants.js'
|
|
21
22
|
import { TransactionError } from '../../errors/errors.js'
|
|
22
23
|
import {
|
|
24
|
+
getContractCallsQuote,
|
|
23
25
|
getRelayerQuote,
|
|
24
26
|
getStepTransaction,
|
|
27
|
+
patchContractCalls,
|
|
25
28
|
relayTransaction,
|
|
26
29
|
} from '../../services/api.js'
|
|
30
|
+
import { convertQuoteToRoute } from '../../utils/convertQuoteToRoute.js'
|
|
27
31
|
import { isZeroAddress } from '../../utils/isZeroAddress.js'
|
|
28
32
|
import { BaseStepExecutor } from '../BaseStepExecutor.js'
|
|
29
33
|
import { checkBalance } from '../checkBalance.js'
|
|
@@ -35,7 +39,6 @@ import type {
|
|
|
35
39
|
TransactionMethodType,
|
|
36
40
|
TransactionParameters,
|
|
37
41
|
} from '../types.js'
|
|
38
|
-
import { isTokenMessageSigningAllowed } from '../utils.js'
|
|
39
42
|
import { waitForDestinationChainTransaction } from '../waitForDestinationChainTransaction.js'
|
|
40
43
|
import { checkAllowance } from './checkAllowance.js'
|
|
41
44
|
import { getActionWithFallback } from './getActionWithFallback.js'
|
|
@@ -49,7 +52,11 @@ import { encodePermit2Data } from './permits/encodePermit2Data.js'
|
|
|
49
52
|
import { isNativePermitValid } from './permits/isNativePermitValid.js'
|
|
50
53
|
import { signPermit2Message } from './permits/signPermit2Message.js'
|
|
51
54
|
import { switchChain } from './switchChain.js'
|
|
52
|
-
import {
|
|
55
|
+
import {
|
|
56
|
+
isContractCallStep,
|
|
57
|
+
isGaslessStep,
|
|
58
|
+
isRelayerStep,
|
|
59
|
+
} from './typeguards.js'
|
|
53
60
|
import type { Call, WalletCallReceipt } from './types.js'
|
|
54
61
|
import {
|
|
55
62
|
convertExtendedChain,
|
|
@@ -230,8 +237,94 @@ export class EVMStepExecutor extends BaseStepExecutor {
|
|
|
230
237
|
const { execution, ...stepBase } = step
|
|
231
238
|
const relayerStep = isRelayerStep(step)
|
|
232
239
|
const gaslessStep = isGaslessStep(step)
|
|
240
|
+
const contractCallStep = isContractCallStep(step)
|
|
233
241
|
let updatedStep: LiFiStep
|
|
234
|
-
if (
|
|
242
|
+
if (contractCallStep) {
|
|
243
|
+
const contractCallsResult =
|
|
244
|
+
await this.executionOptions?.getContractCalls?.({
|
|
245
|
+
fromAddress: stepBase.action.fromAddress!,
|
|
246
|
+
fromAmount: BigInt(stepBase.action.fromAmount),
|
|
247
|
+
fromChainId: stepBase.action.fromChainId,
|
|
248
|
+
fromTokenAddress: stepBase.action.fromToken.address,
|
|
249
|
+
slippage: stepBase.action.slippage,
|
|
250
|
+
toAddress: stepBase.action.toAddress,
|
|
251
|
+
toAmount: BigInt(stepBase.estimate.toAmount),
|
|
252
|
+
toChainId: stepBase.action.toChainId,
|
|
253
|
+
toTokenAddress: stepBase.action.toToken.address,
|
|
254
|
+
})
|
|
255
|
+
|
|
256
|
+
if (!contractCallsResult?.contractCalls?.length) {
|
|
257
|
+
throw new TransactionError(
|
|
258
|
+
LiFiErrorCode.TransactionUnprepared,
|
|
259
|
+
'Unable to prepare transaction. Contract calls are not found.'
|
|
260
|
+
)
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
const patchedContractCalls = await patchContractCalls(
|
|
264
|
+
contractCallsResult.contractCalls.map((call) => ({
|
|
265
|
+
chainId: stepBase.action.toChainId,
|
|
266
|
+
fromTokenAddress: call.fromTokenAddress,
|
|
267
|
+
targetContractAddress: call.toContractAddress,
|
|
268
|
+
callDataToPatch: call.toContractCallData,
|
|
269
|
+
delegateCall: false,
|
|
270
|
+
patches: [
|
|
271
|
+
{
|
|
272
|
+
amountToReplace: PatcherMagicNumber.toString(),
|
|
273
|
+
},
|
|
274
|
+
],
|
|
275
|
+
}))
|
|
276
|
+
)
|
|
277
|
+
|
|
278
|
+
contractCallsResult.contractCalls.forEach((call, index) => {
|
|
279
|
+
call.toContractAddress = patchedContractCalls[index].target
|
|
280
|
+
call.toContractCallData = patchedContractCalls[index].callData
|
|
281
|
+
})
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Limitations of the retry logic for contract calls:
|
|
285
|
+
* - denyBridges and denyExchanges are not supported
|
|
286
|
+
* - allowBridges and allowExchanges are not supported
|
|
287
|
+
* - fee is not supported
|
|
288
|
+
* - toAmount is not supported
|
|
289
|
+
*/
|
|
290
|
+
const contractCallQuote = await getContractCallsQuote({
|
|
291
|
+
// Contract calls are enabled only when fromAddress is set
|
|
292
|
+
fromAddress: stepBase.action.fromAddress!,
|
|
293
|
+
fromChain: stepBase.action.fromChainId,
|
|
294
|
+
fromToken: stepBase.action.fromToken.address,
|
|
295
|
+
fromAmount: stepBase.action.fromAmount,
|
|
296
|
+
toChain: stepBase.action.toChainId,
|
|
297
|
+
toToken: stepBase.action.toToken.address,
|
|
298
|
+
contractCalls: contractCallsResult.contractCalls,
|
|
299
|
+
toFallbackAddress: stepBase.action.toAddress,
|
|
300
|
+
slippage: stepBase.action.slippage,
|
|
301
|
+
})
|
|
302
|
+
|
|
303
|
+
contractCallQuote.action.toToken = stepBase.action.toToken
|
|
304
|
+
|
|
305
|
+
const customStep = contractCallQuote.includedSteps?.find(
|
|
306
|
+
(step) => step.type === 'custom'
|
|
307
|
+
)
|
|
308
|
+
if (customStep && contractCallsResult?.contractTool) {
|
|
309
|
+
const toolDetails = {
|
|
310
|
+
key: contractCallsResult.contractTool.name,
|
|
311
|
+
name: contractCallsResult.contractTool.name,
|
|
312
|
+
logoURI: contractCallsResult.contractTool.logoURI,
|
|
313
|
+
}
|
|
314
|
+
customStep.toolDetails = toolDetails
|
|
315
|
+
contractCallQuote.toolDetails = toolDetails
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
const route = convertQuoteToRoute(contractCallQuote, {
|
|
319
|
+
adjustZeroOutputFromPreviousStep:
|
|
320
|
+
this.executionOptions?.adjustZeroOutputFromPreviousStep,
|
|
321
|
+
})
|
|
322
|
+
|
|
323
|
+
updatedStep = {
|
|
324
|
+
...route.steps[0],
|
|
325
|
+
id: stepBase.id,
|
|
326
|
+
}
|
|
327
|
+
} else if (relayerStep && gaslessStep) {
|
|
235
328
|
const updatedRelayedStep = await getRelayerQuote({
|
|
236
329
|
fromChain: stepBase.action.fromChainId,
|
|
237
330
|
fromToken: stepBase.action.fromToken.address,
|
|
@@ -426,10 +519,7 @@ export class EVMStepExecutor extends BaseStepExecutor {
|
|
|
426
519
|
// Check if message signing is disabled - useful for smart contract wallets
|
|
427
520
|
// We also disable message signing for custom steps
|
|
428
521
|
const disableMessageSigning =
|
|
429
|
-
this.executionOptions?.disableMessageSigning ||
|
|
430
|
-
step.type !== 'lifi' ||
|
|
431
|
-
// We disable message signing for tokens with '₮' symbol
|
|
432
|
-
!isTokenMessageSigningAllowed(step.action.fromToken)
|
|
522
|
+
this.executionOptions?.disableMessageSigning || step.type !== 'lifi'
|
|
433
523
|
|
|
434
524
|
// Check if chain has Permit2 contract deployed. Permit2 should not be available for atomic batch.
|
|
435
525
|
const permit2Supported =
|
|
@@ -533,9 +623,20 @@ export class EVMStepExecutor extends BaseStepExecutor {
|
|
|
533
623
|
return step
|
|
534
624
|
}
|
|
535
625
|
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
626
|
+
let transactionRequest = step.transactionRequest
|
|
627
|
+
? structuredClone(step.transactionRequest as TransactionParameters)
|
|
628
|
+
: undefined
|
|
629
|
+
let isRelayerTransaction: boolean = false
|
|
630
|
+
if (!transactionRequest) {
|
|
631
|
+
// Try to prepare a new transaction request and update the step with typed data
|
|
632
|
+
const result = await this.prepareUpdatedStep(
|
|
633
|
+
updatedClient,
|
|
634
|
+
step,
|
|
635
|
+
signedTypedData
|
|
636
|
+
)
|
|
637
|
+
transactionRequest = result.transactionRequest
|
|
638
|
+
isRelayerTransaction = result.isRelayerTransaction
|
|
639
|
+
}
|
|
539
640
|
|
|
540
641
|
process = this.statusManager.updateProcess(
|
|
541
642
|
step,
|
package/src/core/types.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type {
|
|
|
2
2
|
ChainId,
|
|
3
3
|
ChainType,
|
|
4
4
|
CoinKey,
|
|
5
|
+
ContractCall,
|
|
5
6
|
FeeCost,
|
|
6
7
|
GasCost,
|
|
7
8
|
LiFiStep,
|
|
@@ -114,11 +115,40 @@ export type AcceptExchangeRateUpdateHook = (
|
|
|
114
115
|
params: ExchangeRateUpdateParams
|
|
115
116
|
) => Promise<boolean | undefined>
|
|
116
117
|
|
|
118
|
+
export interface ContractCallParams {
|
|
119
|
+
fromChainId: number
|
|
120
|
+
toChainId: number
|
|
121
|
+
fromTokenAddress: string
|
|
122
|
+
toTokenAddress: string
|
|
123
|
+
fromAddress: string
|
|
124
|
+
toAddress?: string
|
|
125
|
+
fromAmount: bigint
|
|
126
|
+
toAmount: bigint
|
|
127
|
+
slippage?: number
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export interface ContractTool {
|
|
131
|
+
name: string
|
|
132
|
+
logoURI: string
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export interface GetContractCallsResult {
|
|
136
|
+
contractCalls: ContractCall[]
|
|
137
|
+
patcher?: boolean
|
|
138
|
+
contractTool?: ContractTool
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export type GetContractCallsHook = (
|
|
142
|
+
params: ContractCallParams
|
|
143
|
+
) => Promise<GetContractCallsResult>
|
|
144
|
+
|
|
117
145
|
export interface ExecutionOptions {
|
|
118
146
|
acceptExchangeRateUpdateHook?: AcceptExchangeRateUpdateHook
|
|
119
147
|
switchChainHook?: SwitchChainHook
|
|
120
148
|
updateRouteHook?: UpdateRouteHook
|
|
121
149
|
updateTransactionRequestHook?: TransactionRequestUpdateHook
|
|
150
|
+
getContractCalls?: GetContractCallsHook
|
|
151
|
+
adjustZeroOutputFromPreviousStep?: boolean
|
|
122
152
|
executeInBackground?: boolean
|
|
123
153
|
disableMessageSigning?: boolean
|
|
124
154
|
/**
|
package/src/core/utils.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LiFiStep
|
|
1
|
+
import type { LiFiStep } from '@lifi/types'
|
|
2
2
|
|
|
3
3
|
// Standard threshold for destination amount difference (0.5%)
|
|
4
4
|
const standardThreshold = 0.005
|
|
@@ -28,15 +28,3 @@ export function checkStepSlippageThreshold(
|
|
|
28
28
|
}
|
|
29
29
|
return actualSlippage <= setSlippage
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Checks whether a given token is eligible for message signing.
|
|
34
|
-
* Tokens with '₮' symbol in their name are disallowed,
|
|
35
|
-
* since such tokens may have non-standard signing requirements or compatibility issues with hardware wallets.
|
|
36
|
-
*
|
|
37
|
-
* @param token - The token object to check.
|
|
38
|
-
* @returns true if the token is allowed for message signing, false otherwise.
|
|
39
|
-
*/
|
|
40
|
-
export const isTokenMessageSigningAllowed = (token: Token): boolean => {
|
|
41
|
-
return !token.name?.includes('₮') && !token.symbol?.includes('₮')
|
|
42
|
-
}
|
package/src/index.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// biome-ignore lint/performance/noReExportAll: types
|
|
3
3
|
export * from '@lifi/types'
|
|
4
4
|
export { config } from './config.js'
|
|
5
|
+
export { PatcherMagicNumber } from './constants.js'
|
|
5
6
|
export { checkPermitSupport } from './core/EVM/checkPermitSupport.js'
|
|
6
7
|
export { EVM } from './core/EVM/EVM.js'
|
|
7
8
|
export {
|
|
@@ -57,10 +58,14 @@ export type {
|
|
|
57
58
|
AcceptExchangeRateUpdateHook,
|
|
58
59
|
AcceptSlippageUpdateHook,
|
|
59
60
|
AcceptSlippageUpdateHookParams,
|
|
61
|
+
ContractCallParams,
|
|
62
|
+
ContractTool,
|
|
60
63
|
ExchangeRateUpdateParams,
|
|
61
64
|
Execution,
|
|
62
65
|
ExecutionOptions,
|
|
63
66
|
ExecutionStatus,
|
|
67
|
+
GetContractCallsHook,
|
|
68
|
+
GetContractCallsResult,
|
|
64
69
|
InteractionSettings,
|
|
65
70
|
LiFiStepExtended,
|
|
66
71
|
Process,
|
|
@@ -83,7 +88,6 @@ export type {
|
|
|
83
88
|
export type { UTXOProvider, UTXOProviderOptions } from './core/UTXO/types.js'
|
|
84
89
|
export { isUTXO } from './core/UTXO/types.js'
|
|
85
90
|
export { UTXO } from './core/UTXO/UTXO.js'
|
|
86
|
-
export { isTokenMessageSigningAllowed } from './core/utils.js'
|
|
87
91
|
export { createConfig } from './createConfig.js'
|
|
88
92
|
export { BaseError } from './errors/baseError.js'
|
|
89
93
|
export type { ErrorCode } from './errors/constants.js'
|
|
@@ -114,6 +118,7 @@ export {
|
|
|
114
118
|
getTokens,
|
|
115
119
|
getTools,
|
|
116
120
|
getTransactionHistory,
|
|
121
|
+
patchContractCalls,
|
|
117
122
|
relayTransaction,
|
|
118
123
|
} from './services/api.js'
|
|
119
124
|
export {
|
|
@@ -138,3 +143,4 @@ export type {
|
|
|
138
143
|
export { checkPackageUpdates } from './utils/checkPackageUpdates.js'
|
|
139
144
|
export { convertQuoteToRoute } from './utils/convertQuoteToRoute.js'
|
|
140
145
|
export { fetchTxErrorDetails } from './utils/fetchTxErrorDetails.js'
|
|
146
|
+
export { isZeroAddress } from './utils/isZeroAddress.js'
|
package/src/services/api.ts
CHANGED
|
@@ -718,3 +718,40 @@ export const getTransactionHistory = async (
|
|
|
718
718
|
|
|
719
719
|
return await request<TransactionAnalyticsResponse>(url, options)
|
|
720
720
|
}
|
|
721
|
+
|
|
722
|
+
export type PatchContractCallsRequest = {
|
|
723
|
+
chainId: ChainId
|
|
724
|
+
fromTokenAddress: string
|
|
725
|
+
targetContractAddress: string
|
|
726
|
+
callDataToPatch: string
|
|
727
|
+
patches: {
|
|
728
|
+
amountToReplace: string
|
|
729
|
+
}[]
|
|
730
|
+
value?: string
|
|
731
|
+
delegateCall?: boolean
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
export interface PatchContractCallsResponse {
|
|
735
|
+
target: string
|
|
736
|
+
value: bigint
|
|
737
|
+
callData: string
|
|
738
|
+
allowFailure: boolean
|
|
739
|
+
isDelegateCall: boolean
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
export const patchContractCalls = async (
|
|
743
|
+
params: PatchContractCallsRequest[],
|
|
744
|
+
options?: RequestOptions
|
|
745
|
+
): Promise<PatchContractCallsResponse[]> => {
|
|
746
|
+
return await request<PatchContractCallsResponse[]>(
|
|
747
|
+
`${config.get().apiUrl}/patcher`,
|
|
748
|
+
{
|
|
749
|
+
method: 'POST',
|
|
750
|
+
headers: {
|
|
751
|
+
'Content-Type': 'application/json',
|
|
752
|
+
},
|
|
753
|
+
body: JSON.stringify(params),
|
|
754
|
+
signal: options?.signal,
|
|
755
|
+
}
|
|
756
|
+
)
|
|
757
|
+
}
|