@lifi/sdk 4.0.1 → 4.2.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/CHANGELOG.md +20 -0
- package/dist/cjs/actions/getChains.d.ts +7 -8
- package/dist/cjs/actions/getConnections.d.ts +6 -7
- package/dist/cjs/actions/getContractCallsQuote.d.ts +7 -8
- package/dist/cjs/actions/getGasRecommendation.d.ts +7 -8
- package/dist/cjs/actions/getNameServiceAddress.d.ts +6 -7
- package/dist/cjs/actions/getQuote.d.ts +7 -8
- package/dist/cjs/actions/getQuote.js +2 -1
- package/dist/cjs/actions/getQuote.js.map +1 -1
- package/dist/cjs/actions/getRelayedTransactionStatus.d.ts +7 -8
- package/dist/cjs/actions/getRelayerQuote.d.ts +7 -8
- package/dist/cjs/actions/getRoutes.d.ts +10 -10
- package/dist/cjs/actions/getRoutes.js.map +1 -1
- package/dist/cjs/actions/getStatus.d.ts +7 -8
- package/dist/cjs/actions/getStepTransaction.d.ts +10 -10
- package/dist/cjs/actions/getStepTransaction.js +2 -0
- package/dist/cjs/actions/getStepTransaction.js.map +1 -1
- package/dist/cjs/actions/getToken.d.ts +8 -9
- package/dist/cjs/actions/getTokenBalance.d.ts +8 -9
- package/dist/cjs/actions/getTokenBalances.d.ts +8 -9
- package/dist/cjs/actions/getTokenBalancesByChain.d.ts +8 -9
- package/dist/cjs/actions/getTokenBalancesByChain.js +4 -2
- package/dist/cjs/actions/getTokenBalancesByChain.js.map +1 -1
- package/dist/cjs/actions/getTokens.d.ts +6 -7
- package/dist/cjs/actions/getTools.d.ts +6 -7
- package/dist/cjs/actions/getTransactionHistory.d.ts +13 -19
- package/dist/cjs/actions/getWalletBalances.d.ts +7 -8
- package/dist/cjs/actions/index.d.ts +115 -113
- package/dist/cjs/actions/index.js.map +1 -1
- package/dist/cjs/actions/patchContractCalls.d.ts +0 -1
- package/dist/cjs/actions/relayTransaction.d.ts +7 -8
- package/dist/cjs/client/createClient.d.ts +0 -1
- package/dist/cjs/client/getClientStorage.d.ts +0 -1
- package/dist/cjs/core/BaseStepExecutionTask.d.ts +0 -1
- package/dist/cjs/core/BaseStepExecutor.d.ts +0 -1
- package/dist/cjs/core/StatusManager.d.ts +40 -51
- package/dist/cjs/core/TaskPipeline.d.ts +0 -1
- package/dist/cjs/core/actionMessages.d.ts +0 -1
- package/dist/cjs/core/execution.d.ts +29 -30
- package/dist/cjs/core/executionState.d.ts +0 -1
- package/dist/cjs/core/prepareRestart.d.ts +0 -1
- package/dist/cjs/core/tasks/CheckBalanceTask.d.ts +6 -7
- package/dist/cjs/core/tasks/PrepareTransactionTask.d.ts +0 -1
- package/dist/cjs/core/tasks/WaitForTransactionStatusTask.d.ts +0 -1
- package/dist/cjs/core/tasks/helpers/checkBalance.d.ts +17 -18
- package/dist/cjs/core/tasks/helpers/getTransactionRequestData.d.ts +0 -1
- package/dist/cjs/core/tasks/helpers/stepComparison.d.ts +11 -12
- package/dist/cjs/core/tasks/helpers/waitForTransactionStatus.d.ts +0 -1
- package/dist/cjs/core/utils.d.ts +7 -8
- package/dist/cjs/errors/SDKError.d.ts +0 -1
- package/dist/cjs/errors/baseError.d.ts +0 -1
- package/dist/cjs/errors/errors.d.ts +4 -5
- package/dist/cjs/errors/httpError.d.ts +0 -1
- package/dist/cjs/errors/httpError.js +1 -1
- package/dist/cjs/errors/httpError.js.map +1 -1
- package/dist/cjs/errors/utils/baseErrorRootCause.d.ts +0 -1
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/types/actions.d.ts +23 -3
- package/dist/cjs/types/core.d.ts +3 -4
- package/dist/cjs/types/execution.d.ts +0 -1
- package/dist/cjs/utils/checkPackageUpdates.js +1 -1
- package/dist/cjs/utils/convertQuoteToRoute.d.ts +9 -10
- package/dist/cjs/utils/formatUnits.d.ts +2 -2
- package/dist/cjs/utils/getTransactionMessage.d.ts +0 -1
- package/dist/cjs/utils/isHex.d.ts +1 -3
- package/dist/cjs/utils/isRoutesRequest.d.ts +0 -1
- package/dist/cjs/utils/isStep.d.ts +0 -1
- package/dist/cjs/utils/isStep.js +2 -1
- package/dist/cjs/utils/isStep.js.map +1 -1
- package/dist/cjs/utils/isToken.d.ts +0 -1
- package/dist/cjs/utils/parseUnits.d.ts +2 -2
- package/dist/cjs/utils/request.d.ts +0 -1
- package/dist/cjs/utils/toQueryString.d.ts +5 -0
- package/dist/cjs/utils/toQueryString.js +17 -0
- package/dist/cjs/utils/toQueryString.js.map +1 -0
- package/dist/cjs/utils/waitForResult.d.ts +8 -8
- package/dist/cjs/utils/withDedupe.d.ts +5 -8
- package/dist/cjs/utils/withTimeout.d.ts +10 -16
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/actions/getChains.d.ts +7 -8
- package/dist/esm/actions/getChains.d.ts.map +1 -1
- package/dist/esm/actions/getConnections.d.ts +6 -7
- package/dist/esm/actions/getConnections.d.ts.map +1 -1
- package/dist/esm/actions/getContractCallsQuote.d.ts +7 -8
- package/dist/esm/actions/getContractCallsQuote.d.ts.map +1 -1
- package/dist/esm/actions/getGasRecommendation.d.ts +7 -8
- package/dist/esm/actions/getGasRecommendation.d.ts.map +1 -1
- package/dist/esm/actions/getNameServiceAddress.d.ts +6 -7
- package/dist/esm/actions/getNameServiceAddress.d.ts.map +1 -1
- package/dist/esm/actions/getQuote.d.ts +7 -8
- package/dist/esm/actions/getQuote.d.ts.map +1 -1
- package/dist/esm/actions/getQuote.js +2 -1
- package/dist/esm/actions/getQuote.js.map +1 -1
- package/dist/esm/actions/getRelayedTransactionStatus.d.ts +7 -8
- package/dist/esm/actions/getRelayedTransactionStatus.d.ts.map +1 -1
- package/dist/esm/actions/getRelayerQuote.d.ts +7 -8
- package/dist/esm/actions/getRelayerQuote.d.ts.map +1 -1
- package/dist/esm/actions/getRoutes.d.ts +10 -10
- package/dist/esm/actions/getRoutes.d.ts.map +1 -1
- package/dist/esm/actions/getRoutes.js.map +1 -1
- package/dist/esm/actions/getStatus.d.ts +7 -8
- package/dist/esm/actions/getStatus.d.ts.map +1 -1
- package/dist/esm/actions/getStepTransaction.d.ts +10 -10
- package/dist/esm/actions/getStepTransaction.d.ts.map +1 -1
- package/dist/esm/actions/getStepTransaction.js +2 -0
- package/dist/esm/actions/getStepTransaction.js.map +1 -1
- package/dist/esm/actions/getToken.d.ts +8 -9
- package/dist/esm/actions/getToken.d.ts.map +1 -1
- package/dist/esm/actions/getTokenBalance.d.ts +8 -9
- package/dist/esm/actions/getTokenBalance.d.ts.map +1 -1
- package/dist/esm/actions/getTokenBalances.d.ts +8 -9
- package/dist/esm/actions/getTokenBalances.d.ts.map +1 -1
- package/dist/esm/actions/getTokenBalancesByChain.d.ts +8 -9
- package/dist/esm/actions/getTokenBalancesByChain.d.ts.map +1 -1
- package/dist/esm/actions/getTokenBalancesByChain.js +4 -2
- package/dist/esm/actions/getTokenBalancesByChain.js.map +1 -1
- package/dist/esm/actions/getTokens.d.ts +6 -7
- package/dist/esm/actions/getTokens.d.ts.map +1 -1
- package/dist/esm/actions/getTools.d.ts +6 -7
- package/dist/esm/actions/getTools.d.ts.map +1 -1
- package/dist/esm/actions/getTransactionHistory.d.ts +13 -19
- package/dist/esm/actions/getTransactionHistory.d.ts.map +1 -1
- package/dist/esm/actions/getWalletBalances.d.ts +7 -8
- package/dist/esm/actions/getWalletBalances.d.ts.map +1 -1
- package/dist/esm/actions/index.d.ts +115 -113
- package/dist/esm/actions/index.d.ts.map +1 -1
- package/dist/esm/actions/index.js.map +1 -1
- package/dist/esm/actions/patchContractCalls.d.ts +0 -1
- package/dist/esm/actions/patchContractCalls.d.ts.map +1 -1
- package/dist/esm/actions/relayTransaction.d.ts +7 -8
- package/dist/esm/actions/relayTransaction.d.ts.map +1 -1
- package/dist/esm/client/createClient.d.ts +0 -1
- package/dist/esm/client/createClient.d.ts.map +1 -1
- package/dist/esm/client/getClientStorage.d.ts +0 -1
- package/dist/esm/client/getClientStorage.d.ts.map +1 -1
- package/dist/esm/core/BaseStepExecutionTask.d.ts +0 -1
- package/dist/esm/core/BaseStepExecutionTask.d.ts.map +1 -1
- package/dist/esm/core/BaseStepExecutor.d.ts +0 -1
- package/dist/esm/core/BaseStepExecutor.d.ts.map +1 -1
- package/dist/esm/core/StatusManager.d.ts +40 -51
- package/dist/esm/core/StatusManager.d.ts.map +1 -1
- package/dist/esm/core/TaskPipeline.d.ts +0 -1
- package/dist/esm/core/TaskPipeline.d.ts.map +1 -1
- package/dist/esm/core/actionMessages.d.ts +0 -1
- package/dist/esm/core/actionMessages.d.ts.map +1 -1
- package/dist/esm/core/execution.d.ts +29 -30
- package/dist/esm/core/execution.d.ts.map +1 -1
- package/dist/esm/core/executionState.d.ts +0 -1
- package/dist/esm/core/executionState.d.ts.map +1 -1
- package/dist/esm/core/prepareRestart.d.ts +0 -1
- package/dist/esm/core/prepareRestart.d.ts.map +1 -1
- package/dist/esm/core/storage.d.ts.map +1 -1
- package/dist/esm/core/tasks/CheckBalanceTask.d.ts +6 -7
- package/dist/esm/core/tasks/CheckBalanceTask.d.ts.map +1 -1
- package/dist/esm/core/tasks/PrepareTransactionTask.d.ts +0 -1
- package/dist/esm/core/tasks/PrepareTransactionTask.d.ts.map +1 -1
- package/dist/esm/core/tasks/WaitForTransactionStatusTask.d.ts +0 -1
- package/dist/esm/core/tasks/WaitForTransactionStatusTask.d.ts.map +1 -1
- package/dist/esm/core/tasks/helpers/checkBalance.d.ts +17 -18
- package/dist/esm/core/tasks/helpers/checkBalance.d.ts.map +1 -1
- package/dist/esm/core/tasks/helpers/getTransactionRequestData.d.ts +0 -1
- package/dist/esm/core/tasks/helpers/getTransactionRequestData.d.ts.map +1 -1
- package/dist/esm/core/tasks/helpers/stepComparison.d.ts +11 -12
- package/dist/esm/core/tasks/helpers/stepComparison.d.ts.map +1 -1
- package/dist/esm/core/tasks/helpers/waitForTransactionStatus.d.ts +0 -1
- package/dist/esm/core/tasks/helpers/waitForTransactionStatus.d.ts.map +1 -1
- package/dist/esm/core/utils.d.ts +7 -8
- package/dist/esm/core/utils.d.ts.map +1 -1
- package/dist/esm/errors/SDKError.d.ts +0 -1
- package/dist/esm/errors/SDKError.d.ts.map +1 -1
- package/dist/esm/errors/baseError.d.ts +0 -1
- package/dist/esm/errors/baseError.d.ts.map +1 -1
- package/dist/esm/errors/constants.d.ts.map +1 -1
- package/dist/esm/errors/errors.d.ts +4 -5
- package/dist/esm/errors/errors.d.ts.map +1 -1
- package/dist/esm/errors/httpError.d.ts +0 -1
- package/dist/esm/errors/httpError.d.ts.map +1 -1
- package/dist/esm/errors/httpError.js +1 -1
- package/dist/esm/errors/httpError.js.map +1 -1
- package/dist/esm/errors/utils/baseErrorRootCause.d.ts +0 -1
- package/dist/esm/errors/utils/baseErrorRootCause.d.ts.map +1 -1
- package/dist/esm/errors/utils/rootCause.d.ts.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/types/actions.d.ts +23 -3
- package/dist/esm/types/actions.d.ts.map +1 -1
- package/dist/esm/types/core.d.ts +3 -4
- package/dist/esm/types/core.d.ts.map +1 -1
- package/dist/esm/types/execution.d.ts +0 -1
- package/dist/esm/types/execution.d.ts.map +1 -1
- package/dist/esm/types/request.d.ts.map +1 -1
- package/dist/esm/utils/checkPackageUpdates.d.ts.map +1 -1
- package/dist/esm/utils/checkPackageUpdates.js +1 -1
- package/dist/esm/utils/convertQuoteToRoute.d.ts +9 -10
- package/dist/esm/utils/convertQuoteToRoute.d.ts.map +1 -1
- package/dist/esm/utils/decode.d.ts.map +1 -1
- package/dist/esm/utils/fetchTxErrorDetails.d.ts.map +1 -1
- package/dist/esm/utils/formatUnits.d.ts +2 -2
- package/dist/esm/utils/formatUnits.d.ts.map +1 -1
- package/dist/esm/utils/getTransactionMessage.d.ts +0 -1
- package/dist/esm/utils/getTransactionMessage.d.ts.map +1 -1
- package/dist/esm/utils/isHex.d.ts +1 -3
- package/dist/esm/utils/isHex.d.ts.map +1 -1
- package/dist/esm/utils/isRoutesRequest.d.ts +0 -1
- package/dist/esm/utils/isRoutesRequest.d.ts.map +1 -1
- package/dist/esm/utils/isStep.d.ts +0 -1
- package/dist/esm/utils/isStep.d.ts.map +1 -1
- package/dist/esm/utils/isStep.js +2 -1
- package/dist/esm/utils/isStep.js.map +1 -1
- package/dist/esm/utils/isToken.d.ts +0 -1
- package/dist/esm/utils/isToken.d.ts.map +1 -1
- package/dist/esm/utils/parseUnits.d.ts +2 -2
- package/dist/esm/utils/parseUnits.d.ts.map +1 -1
- package/dist/esm/utils/request.d.ts +0 -1
- package/dist/esm/utils/request.d.ts.map +1 -1
- package/dist/esm/utils/sleep.d.ts.map +1 -1
- package/dist/esm/utils/toQueryString.d.ts +5 -0
- package/dist/esm/utils/toQueryString.d.ts.map +1 -0
- package/dist/esm/utils/toQueryString.js +16 -0
- package/dist/esm/utils/toQueryString.js.map +1 -0
- package/dist/esm/utils/waitForResult.d.ts +8 -8
- package/dist/esm/utils/waitForResult.d.ts.map +1 -1
- package/dist/esm/utils/withDedupe.d.ts +5 -8
- package/dist/esm/utils/withDedupe.d.ts.map +1 -1
- package/dist/esm/utils/withTimeout.d.ts +10 -16
- package/dist/esm/utils/withTimeout.d.ts.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.d.ts.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/package.json +1 -1
- package/src/actions/getQuote.ts +3 -2
- package/src/actions/getRoutes.ts +2 -1
- package/src/actions/getStepTransaction.ts +7 -2
- package/src/actions/index.ts +8 -5
- package/src/index.ts +7 -0
- package/src/types/actions.ts +29 -0
- package/src/utils/isStep.ts +4 -1
- package/src/utils/toQueryString.ts +35 -0
- package/src/version.ts +1 -1
package/dist/esm/version.js
CHANGED
package/dist/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","names":[],"sources":["../../src/version.ts"],"sourcesContent":["export const name = '@lifi/sdk'\nexport const version = '4.0
|
|
1
|
+
{"version":3,"file":"version.js","names":[],"sources":["../../src/version.ts"],"sourcesContent":["export const name = '@lifi/sdk'\nexport const version = '4.2.0'\n"],"mappings":";AAAA,MAAa,OAAO;AACpB,MAAa,UAAU"}
|
package/package.json
CHANGED
package/src/actions/getQuote.ts
CHANGED
|
@@ -8,6 +8,7 @@ import type {
|
|
|
8
8
|
} from '../types/actions.js'
|
|
9
9
|
import type { SDKClient } from '../types/core.js'
|
|
10
10
|
import { request } from '../utils/request.js'
|
|
11
|
+
import { toQueryString } from '../utils/toQueryString.js'
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Get a quote for a token transfer
|
|
@@ -95,8 +96,8 @@ export async function getQuote(
|
|
|
95
96
|
|
|
96
97
|
return await request<LiFiStep>(
|
|
97
98
|
client.config,
|
|
98
|
-
`${client.config.apiUrl}/${isFromAmountRequest ? 'quote' : 'quote/toAmount'}?${
|
|
99
|
-
params as
|
|
99
|
+
`${client.config.apiUrl}/${isFromAmountRequest ? 'quote' : 'quote/toAmount'}?${toQueryString(
|
|
100
|
+
params as Record<string, unknown>
|
|
100
101
|
)}`,
|
|
101
102
|
{
|
|
102
103
|
signal: options?.signal,
|
package/src/actions/getRoutes.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { RequestOptions,
|
|
1
|
+
import type { RequestOptions, RoutesResponse } from '@lifi/types'
|
|
2
2
|
import { ValidationError } from '../errors/errors.js'
|
|
3
3
|
import { SDKError } from '../errors/SDKError.js'
|
|
4
|
+
import type { RoutesRequest } from '../types/actions.js'
|
|
4
5
|
import type { SDKClient } from '../types/core.js'
|
|
5
6
|
import { isRoutesRequest } from '../utils/isRoutesRequest.js'
|
|
6
7
|
import { request } from '../utils/request.js'
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { LiFiStep, RequestOptions
|
|
1
|
+
import type { LiFiStep, RequestOptions } from '@lifi/types'
|
|
2
2
|
import { ChainId } from '@lifi/types'
|
|
3
|
+
import type { LiFiStepRequest } from '../types/actions.js'
|
|
3
4
|
import type { SDKClient } from '../types/core.js'
|
|
4
5
|
import { isStep } from '../utils/isStep.js'
|
|
5
6
|
import { request } from '../utils/request.js'
|
|
@@ -14,7 +15,7 @@ import { request } from '../utils/request.js'
|
|
|
14
15
|
*/
|
|
15
16
|
export const getStepTransaction = async (
|
|
16
17
|
client: SDKClient,
|
|
17
|
-
step:
|
|
18
|
+
step: LiFiStepRequest,
|
|
18
19
|
options?: RequestOptions
|
|
19
20
|
): Promise<LiFiStep> => {
|
|
20
21
|
if (!isStep(step)) {
|
|
@@ -27,6 +28,7 @@ export const getStepTransaction = async (
|
|
|
27
28
|
let requestUrl = `${config.apiUrl}/advanced/stepTransaction`
|
|
28
29
|
const jitoBundle = config.routeOptions?.jitoBundle
|
|
29
30
|
const svmSponsor = config.routeOptions?.svmSponsor
|
|
31
|
+
const svmPriorityFeeLevel = config.routeOptions?.svmPriorityFeeLevel
|
|
30
32
|
|
|
31
33
|
if (step.action.fromChainId === ChainId.SOL) {
|
|
32
34
|
const queryParams = new URLSearchParams()
|
|
@@ -36,6 +38,9 @@ export const getStepTransaction = async (
|
|
|
36
38
|
if (svmSponsor) {
|
|
37
39
|
queryParams.set('svmSponsor', svmSponsor)
|
|
38
40
|
}
|
|
41
|
+
if (svmPriorityFeeLevel) {
|
|
42
|
+
queryParams.set('svmPriorityFeeLevel', svmPriorityFeeLevel)
|
|
43
|
+
}
|
|
39
44
|
if (queryParams.size > 0) {
|
|
40
45
|
requestUrl = `${requestUrl}?${queryParams}`
|
|
41
46
|
}
|
package/src/actions/index.ts
CHANGED
|
@@ -16,9 +16,7 @@ import type {
|
|
|
16
16
|
RelayStatusRequest,
|
|
17
17
|
RelayStatusResponseData,
|
|
18
18
|
RequestOptions,
|
|
19
|
-
RoutesRequest,
|
|
20
19
|
RoutesResponse,
|
|
21
|
-
SignedLiFiStep,
|
|
22
20
|
StatusResponse,
|
|
23
21
|
Token,
|
|
24
22
|
TokenAmount,
|
|
@@ -34,7 +32,9 @@ import type {
|
|
|
34
32
|
} from '@lifi/types'
|
|
35
33
|
import type {
|
|
36
34
|
GetStatusRequestExtended,
|
|
35
|
+
LiFiStepRequest,
|
|
37
36
|
QuoteRequestFromAmount,
|
|
37
|
+
RoutesRequest,
|
|
38
38
|
} from '../types/actions.js'
|
|
39
39
|
import type { SDKClient } from '../types/core.js'
|
|
40
40
|
import { getChains } from './getChains.js'
|
|
@@ -152,7 +152,9 @@ export type Actions = {
|
|
|
152
152
|
) => Promise<LiFiStep>
|
|
153
153
|
|
|
154
154
|
/**
|
|
155
|
-
* Get a set of routes for a request that describes a transfer of tokens
|
|
155
|
+
* Get a set of routes for a request that describes a transfer of tokens.
|
|
156
|
+
* Optional limit-order fields (`toAmount`, `validUntil`, `partiallyFillable`)
|
|
157
|
+
* may be supplied and are resolved on the backend.
|
|
156
158
|
* @param params - A description of the transfer
|
|
157
159
|
* @param options - Request options
|
|
158
160
|
* @returns The resulting routes that can be used to realize the described transfer
|
|
@@ -174,13 +176,14 @@ export type Actions = {
|
|
|
174
176
|
) => Promise<StatusResponse>
|
|
175
177
|
|
|
176
178
|
/**
|
|
177
|
-
* Get a step transaction
|
|
179
|
+
* Get a step transaction. The step's `action` may carry the optional
|
|
180
|
+
* limit-order fields, which are resolved on the backend.
|
|
178
181
|
* @param params - The configuration of the requested step transaction
|
|
179
182
|
* @param options - Request options
|
|
180
183
|
* @returns Step transaction
|
|
181
184
|
*/
|
|
182
185
|
getStepTransaction: (
|
|
183
|
-
params:
|
|
186
|
+
params: LiFiStepRequest,
|
|
184
187
|
options?: RequestOptions
|
|
185
188
|
) => Promise<LiFiStep>
|
|
186
189
|
|
package/src/index.ts
CHANGED
|
@@ -67,6 +67,13 @@ export {
|
|
|
67
67
|
} from './errors/errors.js'
|
|
68
68
|
export { HTTPError } from './errors/httpError.js'
|
|
69
69
|
export { SDKError } from './errors/SDKError.js'
|
|
70
|
+
export type {
|
|
71
|
+
GetStatusRequestExtended,
|
|
72
|
+
LiFiStepRequest,
|
|
73
|
+
QuoteRequest,
|
|
74
|
+
QuoteRequestFromAmount,
|
|
75
|
+
QuoteRequestToAmount,
|
|
76
|
+
} from './types/actions.js'
|
|
70
77
|
export type {
|
|
71
78
|
AcceptExchangeRateUpdateHook,
|
|
72
79
|
AcceptSlippageUpdateHook,
|
package/src/types/actions.ts
CHANGED
|
@@ -1,12 +1,41 @@
|
|
|
1
1
|
import type {
|
|
2
|
+
Action,
|
|
2
3
|
GetStatusRequest,
|
|
4
|
+
LiFiStep,
|
|
3
5
|
QuoteRequest as QuoteRequestBase,
|
|
6
|
+
RoutesRequest as RoutesRequestBase,
|
|
7
|
+
SignedLiFiStep,
|
|
4
8
|
} from '@lifi/types'
|
|
5
9
|
|
|
6
10
|
export type GetStatusRequestExtended = GetStatusRequest & {
|
|
7
11
|
fromAddress?: string
|
|
8
12
|
}
|
|
9
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Optional limit-order fields. Supplying them opts a request into limit-order
|
|
16
|
+
* handling; resolution happens on the backend.
|
|
17
|
+
*/
|
|
18
|
+
type OrderFields = {
|
|
19
|
+
toAmount?: string
|
|
20
|
+
validUntil?: number
|
|
21
|
+
partiallyFillable?: boolean
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export type RoutesRequest = Omit<RoutesRequestBase, 'options'> &
|
|
25
|
+
OrderFields & {
|
|
26
|
+
options?: RoutesRequestBase['options'] & {
|
|
27
|
+
/** (default: false) Whether to request private routes */
|
|
28
|
+
private?: boolean
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* A step request that may carry the optional limit-order `action` fields.
|
|
34
|
+
*/
|
|
35
|
+
export type LiFiStepRequest = (LiFiStep | SignedLiFiStep) & {
|
|
36
|
+
action: Action & OrderFields
|
|
37
|
+
}
|
|
38
|
+
|
|
10
39
|
export type QuoteRequestFromAmount = QuoteRequestBase
|
|
11
40
|
|
|
12
41
|
export type QuoteRequestToAmount = Omit<QuoteRequestBase, 'fromAmount'> & {
|
package/src/utils/isStep.ts
CHANGED
|
@@ -15,6 +15,9 @@ const isAction = (action: Action): action is Action => {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
const isEstimate = (estimate: Estimate): estimate is Estimate => {
|
|
18
|
+
if (!estimate) {
|
|
19
|
+
return false
|
|
20
|
+
}
|
|
18
21
|
const { fromAmount, toAmount, toAmountMin, approvalAddress } = estimate
|
|
19
22
|
|
|
20
23
|
return (
|
|
@@ -36,6 +39,6 @@ export const isStep = (step: LiFiStep): step is LiFiStep => {
|
|
|
36
39
|
['swap', 'cross', 'lifi'].includes(type) &&
|
|
37
40
|
typeof tool === 'string' &&
|
|
38
41
|
isAction(action) &&
|
|
39
|
-
isEstimate(estimate)
|
|
42
|
+
(!estimate || isEstimate(estimate))
|
|
40
43
|
)
|
|
41
44
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
type QueryPrimitive = string | number | boolean | bigint
|
|
2
|
+
|
|
3
|
+
const isPrimitive = (value: unknown): value is QueryPrimitive =>
|
|
4
|
+
typeof value === 'string' ||
|
|
5
|
+
typeof value === 'number' ||
|
|
6
|
+
typeof value === 'boolean' ||
|
|
7
|
+
typeof value === 'bigint'
|
|
8
|
+
|
|
9
|
+
// Arrays of objects use qs indices notation (`key[0][subKey]=value`) to match
|
|
10
|
+
// the backend's `qs.parse(str, { comma: true })`; only values are encoded.
|
|
11
|
+
const serialize = (key: string, value: unknown): string[] => {
|
|
12
|
+
if (value === undefined || value === null) {
|
|
13
|
+
return []
|
|
14
|
+
}
|
|
15
|
+
if (isPrimitive(value)) {
|
|
16
|
+
return [`${key}=${encodeURIComponent(String(value))}`]
|
|
17
|
+
}
|
|
18
|
+
if (Array.isArray(value)) {
|
|
19
|
+
// Scalar arrays stay comma-joined (backend splits on `comma: true`).
|
|
20
|
+
if (value.every(isPrimitive)) {
|
|
21
|
+
return [`${key}=${encodeURIComponent(value.join(','))}`]
|
|
22
|
+
}
|
|
23
|
+
return value.flatMap((item, index) => serialize(`${key}[${index}]`, item))
|
|
24
|
+
}
|
|
25
|
+
return Object.entries(value as Record<string, unknown>).flatMap(
|
|
26
|
+
([subKey, subValue]) => serialize(`${key}[${subKey}]`, subValue)
|
|
27
|
+
)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Encode params into a query string (no leading `?`). Drop-in for
|
|
31
|
+
// `URLSearchParams` that handles nested array/object params; skips null/undefined.
|
|
32
|
+
export const toQueryString = (params: Record<string, unknown>): string =>
|
|
33
|
+
Object.entries(params)
|
|
34
|
+
.flatMap(([key, value]) => serialize(key, value))
|
|
35
|
+
.join('&')
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/sdk'
|
|
2
|
-
export const version = '4.0
|
|
2
|
+
export const version = '4.2.0'
|