@lifi/sdk 4.0.0-alpha.9 → 4.0.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.
Files changed (239) hide show
  1. package/dist/cjs/actions/getQuote.js +2 -1
  2. package/dist/cjs/actions/getQuote.js.map +1 -1
  3. package/dist/cjs/actions/getRelayedTransactionStatus.js +1 -1
  4. package/dist/cjs/actions/getRelayedTransactionStatus.js.map +1 -1
  5. package/dist/cjs/actions/getRelayerQuote.js +2 -1
  6. package/dist/cjs/actions/getRelayerQuote.js.map +1 -1
  7. package/dist/cjs/actions/getStepTransaction.js +18 -1
  8. package/dist/cjs/actions/getStepTransaction.js.map +1 -1
  9. package/dist/cjs/core/BaseStepExecutionTask.d.ts +5 -0
  10. package/dist/cjs/core/BaseStepExecutionTask.js +10 -0
  11. package/dist/cjs/core/BaseStepExecutionTask.js.map +1 -0
  12. package/dist/cjs/core/BaseStepExecutor.d.ts +10 -3
  13. package/dist/cjs/core/BaseStepExecutor.js +53 -0
  14. package/dist/cjs/core/BaseStepExecutor.js.map +1 -1
  15. package/dist/cjs/core/StatusManager.d.ts +12 -10
  16. package/dist/cjs/core/StatusManager.js +35 -33
  17. package/dist/cjs/core/StatusManager.js.map +1 -1
  18. package/dist/cjs/core/TaskPipeline.d.ts +7 -0
  19. package/dist/cjs/core/TaskPipeline.js +27 -0
  20. package/dist/cjs/core/TaskPipeline.js.map +1 -0
  21. package/dist/cjs/core/actionMessages.js +19 -3
  22. package/dist/cjs/core/actionMessages.js.map +1 -1
  23. package/dist/cjs/core/execution.js +13 -1
  24. package/dist/cjs/core/execution.js.map +1 -1
  25. package/dist/cjs/core/prepareRestart.js +3 -3
  26. package/dist/cjs/core/prepareRestart.js.map +1 -1
  27. package/dist/cjs/core/storage.d.ts +17 -0
  28. package/dist/cjs/core/storage.js +36 -0
  29. package/dist/cjs/core/storage.js.map +1 -0
  30. package/dist/cjs/core/tasks/CheckBalanceTask.d.ts +5 -0
  31. package/dist/cjs/core/tasks/CheckBalanceTask.js +26 -0
  32. package/dist/cjs/core/tasks/CheckBalanceTask.js.map +1 -0
  33. package/dist/cjs/core/tasks/PrepareTransactionTask.d.ts +5 -0
  34. package/dist/cjs/core/tasks/PrepareTransactionTask.js +36 -0
  35. package/dist/cjs/core/tasks/PrepareTransactionTask.js.map +1 -0
  36. package/dist/cjs/core/tasks/WaitForTransactionStatusTask.d.ts +8 -0
  37. package/dist/cjs/core/tasks/WaitForTransactionStatusTask.js +73 -0
  38. package/dist/cjs/core/tasks/WaitForTransactionStatusTask.js.map +1 -0
  39. package/dist/cjs/core/{checkBalance.d.ts → tasks/helpers/checkBalance.d.ts} +1 -1
  40. package/dist/cjs/core/{checkBalance.js → tasks/helpers/checkBalance.js} +4 -4
  41. package/dist/cjs/core/tasks/helpers/checkBalance.js.map +1 -0
  42. package/dist/cjs/core/tasks/helpers/getTransactionRequestData.d.ts +2 -0
  43. package/dist/cjs/core/tasks/helpers/getTransactionRequestData.js +30 -0
  44. package/dist/cjs/core/tasks/helpers/getTransactionRequestData.js.map +1 -0
  45. package/dist/cjs/core/{stepComparison.d.ts → tasks/helpers/stepComparison.d.ts} +2 -2
  46. package/dist/cjs/core/{stepComparison.js → tasks/helpers/stepComparison.js} +3 -3
  47. package/dist/cjs/core/tasks/helpers/stepComparison.js.map +1 -0
  48. package/dist/cjs/core/{waitForTransactionStatus.d.ts → tasks/helpers/waitForTransactionStatus.d.ts} +2 -2
  49. package/dist/cjs/core/{waitForTransactionStatus.js → tasks/helpers/waitForTransactionStatus.js} +7 -5
  50. package/dist/cjs/core/tasks/helpers/waitForTransactionStatus.js.map +1 -0
  51. package/dist/cjs/core/utils.d.ts +6 -1
  52. package/dist/cjs/errors/constants.d.ts +2 -1
  53. package/dist/cjs/errors/constants.js +1 -0
  54. package/dist/cjs/errors/constants.js.map +1 -1
  55. package/dist/cjs/errors/errors.d.ts +5 -0
  56. package/dist/cjs/errors/errors.js +9 -1
  57. package/dist/cjs/errors/errors.js.map +1 -1
  58. package/dist/cjs/index.d.ts +15 -6
  59. package/dist/cjs/index.js +26 -7
  60. package/dist/cjs/index.js.map +1 -1
  61. package/dist/cjs/types/core.d.ts +15 -6
  62. package/dist/cjs/types/execution.d.ts +22 -0
  63. package/dist/cjs/types/execution.js +3 -0
  64. package/dist/cjs/types/execution.js.map +1 -0
  65. package/dist/cjs/utils/waitForResult.d.ts +1 -1
  66. package/dist/cjs/utils/waitForResult.js +6 -2
  67. package/dist/cjs/utils/waitForResult.js.map +1 -1
  68. package/dist/cjs/utils/withDedupe.d.ts +5 -0
  69. package/dist/cjs/utils/withDedupe.js +2 -0
  70. package/dist/cjs/utils/withDedupe.js.map +1 -1
  71. package/dist/cjs/version.d.ts +1 -1
  72. package/dist/cjs/version.js +1 -1
  73. package/dist/cjs/version.js.map +1 -1
  74. package/dist/esm/actions/getQuote.js +2 -1
  75. package/dist/esm/actions/getQuote.js.map +1 -1
  76. package/dist/esm/actions/getRelayedTransactionStatus.js +1 -1
  77. package/dist/esm/actions/getRelayedTransactionStatus.js.map +1 -1
  78. package/dist/esm/actions/getRelayerQuote.js +2 -1
  79. package/dist/esm/actions/getRelayerQuote.js.map +1 -1
  80. package/dist/esm/actions/getStepTransaction.js +18 -1
  81. package/dist/esm/actions/getStepTransaction.js.map +1 -1
  82. package/dist/esm/core/BaseStepExecutionTask.d.ts +5 -0
  83. package/dist/esm/core/BaseStepExecutionTask.js +6 -0
  84. package/dist/esm/core/BaseStepExecutionTask.js.map +1 -0
  85. package/dist/esm/core/BaseStepExecutor.d.ts +10 -3
  86. package/dist/esm/core/BaseStepExecutor.js +53 -0
  87. package/dist/esm/core/BaseStepExecutor.js.map +1 -1
  88. package/dist/esm/core/StatusManager.d.ts +29 -27
  89. package/dist/esm/core/StatusManager.js +52 -50
  90. package/dist/esm/core/StatusManager.js.map +1 -1
  91. package/dist/esm/core/TaskPipeline.d.ts +7 -0
  92. package/dist/esm/core/TaskPipeline.js +23 -0
  93. package/dist/esm/core/TaskPipeline.js.map +1 -0
  94. package/dist/esm/core/actionMessages.js +19 -3
  95. package/dist/esm/core/actionMessages.js.map +1 -1
  96. package/dist/esm/core/execution.js +14 -3
  97. package/dist/esm/core/execution.js.map +1 -1
  98. package/dist/esm/core/prepareRestart.js +4 -3
  99. package/dist/esm/core/prepareRestart.js.map +1 -1
  100. package/dist/esm/core/storage.d.ts +17 -0
  101. package/dist/esm/core/storage.js +30 -0
  102. package/dist/esm/core/storage.js.map +1 -0
  103. package/dist/esm/core/tasks/CheckBalanceTask.d.ts +5 -0
  104. package/dist/esm/core/tasks/CheckBalanceTask.js +22 -0
  105. package/dist/esm/core/tasks/CheckBalanceTask.js.map +1 -0
  106. package/dist/esm/core/tasks/PrepareTransactionTask.d.ts +5 -0
  107. package/dist/esm/core/tasks/PrepareTransactionTask.js +32 -0
  108. package/dist/esm/core/tasks/PrepareTransactionTask.js.map +1 -0
  109. package/dist/esm/core/tasks/WaitForTransactionStatusTask.d.ts +8 -0
  110. package/dist/esm/core/tasks/WaitForTransactionStatusTask.js +74 -0
  111. package/dist/esm/core/tasks/WaitForTransactionStatusTask.js.map +1 -0
  112. package/dist/esm/core/{checkBalance.d.ts → tasks/helpers/checkBalance.d.ts} +1 -1
  113. package/dist/esm/core/{checkBalance.js → tasks/helpers/checkBalance.js} +4 -4
  114. package/dist/esm/core/tasks/helpers/checkBalance.js.map +1 -0
  115. package/dist/esm/core/tasks/helpers/getTransactionRequestData.d.ts +2 -0
  116. package/dist/esm/core/tasks/helpers/getTransactionRequestData.js +26 -0
  117. package/dist/esm/core/tasks/helpers/getTransactionRequestData.js.map +1 -0
  118. package/dist/esm/core/{stepComparison.d.ts → tasks/helpers/stepComparison.d.ts} +2 -2
  119. package/dist/esm/core/{stepComparison.js → tasks/helpers/stepComparison.js} +3 -3
  120. package/dist/esm/core/tasks/helpers/stepComparison.js.map +1 -0
  121. package/dist/esm/core/{waitForTransactionStatus.d.ts → tasks/helpers/waitForTransactionStatus.d.ts} +2 -2
  122. package/dist/esm/core/{waitForTransactionStatus.js → tasks/helpers/waitForTransactionStatus.js} +7 -5
  123. package/dist/esm/core/tasks/helpers/waitForTransactionStatus.js.map +1 -0
  124. package/dist/esm/core/utils.d.ts +6 -1
  125. package/dist/esm/errors/constants.d.ts +2 -1
  126. package/dist/esm/errors/constants.js +1 -0
  127. package/dist/esm/errors/constants.js.map +1 -1
  128. package/dist/esm/errors/errors.d.ts +10 -0
  129. package/dist/esm/errors/errors.js +12 -0
  130. package/dist/esm/errors/errors.js.map +1 -1
  131. package/dist/esm/index.d.ts +15 -6
  132. package/dist/esm/index.js +12 -5
  133. package/dist/esm/index.js.map +1 -1
  134. package/dist/esm/types/core.d.ts +19 -6
  135. package/dist/esm/types/execution.d.ts +23 -0
  136. package/dist/esm/types/execution.js +2 -0
  137. package/dist/esm/types/execution.js.map +1 -0
  138. package/dist/esm/utils/waitForResult.d.ts +2 -2
  139. package/dist/esm/utils/waitForResult.js +7 -3
  140. package/dist/esm/utils/waitForResult.js.map +1 -1
  141. package/dist/esm/utils/withDedupe.d.ts +10 -0
  142. package/dist/esm/utils/withDedupe.js +1 -1
  143. package/dist/esm/utils/withDedupe.js.map +1 -1
  144. package/dist/esm/version.d.ts +1 -1
  145. package/dist/esm/version.js +1 -1
  146. package/dist/esm/version.js.map +1 -1
  147. package/dist/types/actions/getRelayerQuote.d.ts.map +1 -1
  148. package/dist/types/actions/getStepTransaction.d.ts.map +1 -1
  149. package/dist/types/core/BaseStepExecutionTask.d.ts +6 -0
  150. package/dist/types/core/BaseStepExecutionTask.d.ts.map +1 -0
  151. package/dist/types/core/BaseStepExecutor.d.ts +10 -3
  152. package/dist/types/core/BaseStepExecutor.d.ts.map +1 -1
  153. package/dist/types/core/StatusManager.d.ts +29 -27
  154. package/dist/types/core/StatusManager.d.ts.map +1 -1
  155. package/dist/types/core/TaskPipeline.d.ts +8 -0
  156. package/dist/types/core/TaskPipeline.d.ts.map +1 -0
  157. package/dist/types/core/actionMessages.d.ts.map +1 -1
  158. package/dist/types/core/execution.d.ts.map +1 -1
  159. package/dist/types/core/prepareRestart.d.ts.map +1 -1
  160. package/dist/types/core/storage.d.ts +18 -0
  161. package/dist/types/core/storage.d.ts.map +1 -0
  162. package/dist/types/core/tasks/CheckBalanceTask.d.ts +6 -0
  163. package/dist/types/core/tasks/CheckBalanceTask.d.ts.map +1 -0
  164. package/dist/types/core/tasks/PrepareTransactionTask.d.ts +6 -0
  165. package/dist/types/core/tasks/PrepareTransactionTask.d.ts.map +1 -0
  166. package/dist/types/core/tasks/WaitForTransactionStatusTask.d.ts +9 -0
  167. package/dist/types/core/tasks/WaitForTransactionStatusTask.d.ts.map +1 -0
  168. package/dist/types/core/{checkBalance.d.ts → tasks/helpers/checkBalance.d.ts} +1 -1
  169. package/dist/types/core/tasks/helpers/checkBalance.d.ts.map +1 -0
  170. package/dist/types/core/tasks/helpers/getTransactionRequestData.d.ts +3 -0
  171. package/dist/types/core/tasks/helpers/getTransactionRequestData.d.ts.map +1 -0
  172. package/dist/types/core/{stepComparison.d.ts → tasks/helpers/stepComparison.d.ts} +2 -2
  173. package/dist/types/core/tasks/helpers/stepComparison.d.ts.map +1 -0
  174. package/dist/types/core/{waitForTransactionStatus.d.ts → tasks/helpers/waitForTransactionStatus.d.ts} +2 -2
  175. package/dist/types/core/tasks/helpers/waitForTransactionStatus.d.ts.map +1 -0
  176. package/dist/types/core/utils.d.ts +6 -1
  177. package/dist/types/core/utils.d.ts.map +1 -1
  178. package/dist/types/errors/constants.d.ts +2 -1
  179. package/dist/types/errors/constants.d.ts.map +1 -1
  180. package/dist/types/errors/errors.d.ts +10 -0
  181. package/dist/types/errors/errors.d.ts.map +1 -1
  182. package/dist/types/index.d.ts +15 -6
  183. package/dist/types/index.d.ts.map +1 -1
  184. package/dist/types/types/core.d.ts +19 -6
  185. package/dist/types/types/core.d.ts.map +1 -1
  186. package/dist/types/types/execution.d.ts +24 -0
  187. package/dist/types/types/execution.d.ts.map +1 -0
  188. package/dist/types/utils/waitForResult.d.ts +2 -2
  189. package/dist/types/utils/waitForResult.d.ts.map +1 -1
  190. package/dist/types/utils/withDedupe.d.ts +10 -0
  191. package/dist/types/utils/withDedupe.d.ts.map +1 -1
  192. package/dist/types/version.d.ts +1 -1
  193. package/dist/types/version.d.ts.map +1 -1
  194. package/package.json +2 -2
  195. package/src/actions/getQuote.ts +4 -1
  196. package/src/actions/getRelayedTransactionStatus.ts +1 -1
  197. package/src/actions/getRelayerQuote.ts +4 -1
  198. package/src/actions/getStepTransaction.ts +27 -11
  199. package/src/core/BaseStepExecutionTask.ts +9 -0
  200. package/src/core/BaseStepExecutor.ts +91 -2
  201. package/src/core/StatusManager.ts +66 -61
  202. package/src/core/TaskPipeline.ts +28 -0
  203. package/src/core/actionMessages.ts +20 -3
  204. package/src/core/execution.ts +17 -3
  205. package/src/core/prepareRestart.ts +4 -3
  206. package/src/core/storage.ts +42 -0
  207. package/src/core/tasks/CheckBalanceTask.ts +29 -0
  208. package/src/core/tasks/PrepareTransactionTask.ts +62 -0
  209. package/src/core/tasks/WaitForTransactionStatusTask.ts +114 -0
  210. package/src/core/{checkBalance.ts → tasks/helpers/checkBalance.ts} +5 -5
  211. package/src/core/tasks/helpers/getTransactionRequestData.ts +47 -0
  212. package/src/core/{stepComparison.ts → tasks/helpers/stepComparison.ts} +5 -5
  213. package/src/core/{waitForTransactionStatus.ts → tasks/helpers/waitForTransactionStatus.ts} +9 -7
  214. package/src/errors/constants.ts +1 -0
  215. package/src/errors/errors.ts +24 -0
  216. package/src/index.ts +24 -4
  217. package/src/types/core.ts +23 -13
  218. package/src/types/execution.ts +32 -0
  219. package/src/utils/waitForResult.ts +9 -4
  220. package/src/utils/withDedupe.ts +1 -1
  221. package/src/version.ts +1 -1
  222. package/dist/cjs/core/checkBalance.js.map +0 -1
  223. package/dist/cjs/core/stepComparison.js.map +0 -1
  224. package/dist/cjs/core/waitForDestinationChainTransaction.d.ts +0 -4
  225. package/dist/cjs/core/waitForDestinationChainTransaction.js +0 -71
  226. package/dist/cjs/core/waitForDestinationChainTransaction.js.map +0 -1
  227. package/dist/cjs/core/waitForTransactionStatus.js.map +0 -1
  228. package/dist/esm/core/checkBalance.js.map +0 -1
  229. package/dist/esm/core/stepComparison.js.map +0 -1
  230. package/dist/esm/core/waitForDestinationChainTransaction.d.ts +0 -4
  231. package/dist/esm/core/waitForDestinationChainTransaction.js +0 -74
  232. package/dist/esm/core/waitForDestinationChainTransaction.js.map +0 -1
  233. package/dist/esm/core/waitForTransactionStatus.js.map +0 -1
  234. package/dist/types/core/checkBalance.d.ts.map +0 -1
  235. package/dist/types/core/stepComparison.d.ts.map +0 -1
  236. package/dist/types/core/waitForDestinationChainTransaction.d.ts +0 -5
  237. package/dist/types/core/waitForDestinationChainTransaction.d.ts.map +0 -1
  238. package/dist/types/core/waitForTransactionStatus.d.ts.map +0 -1
  239. package/src/core/waitForDestinationChainTransaction.ts +0 -112
@@ -1,4 +1,5 @@
1
1
  import type { ChainId, ChainType, CoinKey, ContractCall, ExtendedChain, FeeCost, GasCost, LiFiStep, Route, RouteOptions, Step, Substatus, Token, TokenAmount } from '@lifi/types';
2
+ import type { SDKStorage } from '../core/storage.js';
2
3
  import type { ExtendedRequestInit } from './request.js';
3
4
  export type RequestInterceptor = (request: ExtendedRequestInit) => ExtendedRequestInit | Promise<ExtendedRequestInit>;
4
5
  export interface SDKBaseConfig {
@@ -15,6 +16,7 @@ export interface SDKBaseConfig {
15
16
  preloadChains?: boolean;
16
17
  chainsRefetchInterval?: number;
17
18
  requestInterceptor?: RequestInterceptor;
19
+ storage?: SDKStorage;
18
20
  }
19
21
  export interface SDKConfig extends Partial<Omit<SDKBaseConfig, 'integrator'>> {
20
22
  integrator: string;
@@ -47,11 +49,12 @@ export interface InteractionSettings {
47
49
  allowUpdates?: boolean;
48
50
  allowExecution?: boolean;
49
51
  }
52
+ export type ExecuteStepRetryParams = Record<string, unknown>;
50
53
  export interface StepExecutor {
51
54
  allowUserInteraction: boolean;
52
55
  allowExecution: boolean;
53
56
  setInteraction(settings?: InteractionSettings): void;
54
- executeStep(client: SDKClient, step: LiFiStepExtended): Promise<LiFiStepExtended>;
57
+ executeStep(client: SDKClient, step: LiFiStepExtended, retryParams?: ExecuteStepRetryParams): Promise<LiFiStepExtended>;
55
58
  }
56
59
  export interface RouteExecutionData {
57
60
  route: Route;
@@ -128,34 +131,35 @@ export interface ExecutionOptions {
128
131
  getContractCalls?: GetContractCallsHook;
129
132
  adjustZeroOutputFromPreviousStep?: boolean;
130
133
  executeInBackground?: boolean;
131
- disableMessageSigning?: boolean;
132
134
  infiniteApproval?: boolean;
133
135
  }
134
136
  export type ExecutionStatus = 'ACTION_REQUIRED' | 'PENDING' | 'FAILED' | 'DONE';
135
137
  export type ExecutionActionStatus = 'STARTED' | 'ACTION_REQUIRED' | 'MESSAGE_REQUIRED' | 'RESET_REQUIRED' | 'PENDING' | 'FAILED' | 'DONE' | 'CANCELLED';
136
- export type ExecutionActionType = 'TOKEN_ALLOWANCE' | 'PERMIT' | 'SWAP' | 'CROSS_CHAIN' | 'RECEIVING_CHAIN';
138
+ export type ExecutionActionType = 'PERMIT' | 'CHECK_ALLOWANCE' | 'NATIVE_PERMIT' | 'RESET_ALLOWANCE' | 'SET_ALLOWANCE' | 'SWAP' | 'CROSS_CHAIN' | 'RECEIVING_CHAIN';
137
139
  export type ExecutionAction = {
138
140
  type: ExecutionActionType;
139
141
  status: ExecutionActionStatus;
142
+ message?: string;
140
143
  substatus?: Substatus;
144
+ substatusMessage?: string;
141
145
  chainId?: number;
142
146
  txHash?: string;
143
- taskId?: string;
144
147
  txLink?: string;
148
+ taskId?: string;
145
149
  txType?: TransactionMethodType;
146
- message?: string;
150
+ txHex?: string;
147
151
  error?: {
148
152
  code: string | number;
149
153
  message: string;
150
154
  htmlMessage?: string;
151
155
  };
152
- [key: string]: any;
153
156
  };
154
157
  export interface Execution {
155
158
  startedAt: number;
156
159
  signedAt?: number;
157
160
  status: ExecutionStatus;
158
161
  actions: Array<ExecutionAction>;
162
+ lastActionType?: ExecutionActionType;
159
163
  fromAmount?: string;
160
164
  toAmount?: string;
161
165
  toToken?: Token;
@@ -163,5 +167,10 @@ export interface Execution {
163
167
  gasCosts?: GasCost[];
164
168
  internalTxLink?: string;
165
169
  externalTxLink?: string;
170
+ error?: {
171
+ code: string | number;
172
+ message: string;
173
+ htmlMessage?: string;
174
+ };
166
175
  }
167
176
  export type TransactionMethodType = 'standard' | 'relayed' | 'batched';
@@ -0,0 +1,22 @@
1
+ import type { ExtendedChain } from '@lifi/types';
2
+ import type { StatusManager } from '../core/StatusManager.js';
3
+ import type { ExecuteStepRetryParams, ExecutionOptions, LiFiStepExtended, SDKClient } from './core.js';
4
+ export interface StepExecutorBaseContext {
5
+ statusManager: StatusManager;
6
+ executionOptions?: ExecutionOptions;
7
+ fromChain: ExtendedChain;
8
+ toChain: ExtendedChain;
9
+ isBridgeExecution: boolean;
10
+ client: SDKClient;
11
+ step: LiFiStepExtended;
12
+ allowUserInteraction: boolean;
13
+ retryParams?: ExecuteStepRetryParams;
14
+ }
15
+ export interface StepExecutorContext extends StepExecutorBaseContext {
16
+ pollingIntervalMs?: number;
17
+ }
18
+ export interface TaskResult<TContext = Record<string, unknown>> {
19
+ status: TaskStatus;
20
+ context?: TContext;
21
+ }
22
+ export type TaskStatus = 'COMPLETED' | 'PAUSED';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../src/types/execution.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- export declare const waitForResult: <T>(fn: () => Promise<T | undefined>, interval?: number, maxRetries?: number, shouldRetry?: (count: number, error: unknown) => boolean) => Promise<T>;
1
+ export declare const waitForResult: <T>(fn: () => Promise<T | undefined>, interval?: number | ((poll: number) => number), maxRetries?: number, shouldRetry?: (count: number, error: unknown) => boolean) => Promise<T>;
@@ -5,11 +5,14 @@ const sleep_js_1 = require("./sleep.js");
5
5
  const waitForResult = async (fn, interval = 5000, maxRetries = 3, shouldRetry = () => true) => {
6
6
  let result;
7
7
  let attempts = 0;
8
+ let polls = 0;
9
+ const getInterval = typeof interval === 'function' ? interval : () => interval;
8
10
  while (!result) {
9
11
  try {
10
12
  result = await fn();
11
13
  if (!result) {
12
- await (0, sleep_js_1.sleep)(interval);
14
+ await (0, sleep_js_1.sleep)(getInterval(polls));
15
+ polls++;
13
16
  }
14
17
  }
15
18
  catch (error) {
@@ -20,7 +23,8 @@ const waitForResult = async (fn, interval = 5000, maxRetries = 3, shouldRetry =
20
23
  if (attempts === maxRetries) {
21
24
  throw error;
22
25
  }
23
- await (0, sleep_js_1.sleep)(interval);
26
+ await (0, sleep_js_1.sleep)(getInterval(polls));
27
+ polls++;
24
28
  }
25
29
  }
26
30
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"waitForResult.js","sourceRoot":"","sources":["../../../src/utils/waitForResult.ts"],"names":[],"mappings":";;;AAAA,yCAAkC;AAW3B,MAAM,aAAa,GAAG,KAAK,EAChC,EAAgC,EAChC,QAAQ,GAAG,IAAI,EACf,UAAU,GAAG,CAAC,EACd,cAA0D,GAAG,EAAE,CAAC,IAAI,EACxD,EAAE;IACd,IAAI,MAAqB,CAAA;IACzB,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,OAAO,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,EAAE,EAAE,CAAA;YACnB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAA,gBAAK,EAAC,QAAQ,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;gBAClC,MAAM,KAAK,CAAA;YACb,CAAC;YACD,QAAQ,EAAE,CAAA;YACV,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC5B,MAAM,KAAK,CAAA;YACb,CAAC;YACD,MAAM,IAAA,gBAAK,EAAC,QAAQ,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AA5BY,QAAA,aAAa,iBA4BzB"}
1
+ {"version":3,"file":"waitForResult.js","sourceRoot":"","sources":["../../../src/utils/waitForResult.ts"],"names":[],"mappings":";;;AAAA,yCAAkC;AAW3B,MAAM,aAAa,GAAG,KAAK,EAChC,EAAgC,EAChC,WAAgD,IAAI,EACpD,UAAU,GAAG,CAAC,EACd,cAA0D,GAAG,EAAE,CAAC,IAAI,EACxD,EAAE;IACd,IAAI,MAAqB,CAAA;IACzB,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,MAAM,WAAW,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAA;IAE9E,OAAO,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,EAAE,EAAE,CAAA;YACnB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAA,gBAAK,EAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC/B,KAAK,EAAE,CAAA;YACT,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;gBAClC,MAAM,KAAK,CAAA;YACb,CAAC;YACD,QAAQ,EAAE,CAAA;YACV,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC5B,MAAM,KAAK,CAAA;YACb,CAAC;YACD,MAAM,IAAA,gBAAK,EAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;YAC/B,KAAK,EAAE,CAAA;QACT,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAjCY,QAAA,aAAa,iBAiCzB"}
@@ -1,3 +1,8 @@
1
+ export declare class LruMap<value = unknown> extends Map<string, value> {
2
+ maxSize: number;
3
+ constructor(size: number);
4
+ set(key: string, value: value): this;
5
+ }
1
6
  type WithDedupeOptions = {
2
7
  enabled?: boolean | undefined;
3
8
  id?: string | undefined;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LruMap = void 0;
3
4
  exports.withDedupe = withDedupe;
4
5
  class LruMap extends Map {
5
6
  maxSize;
@@ -15,6 +16,7 @@ class LruMap extends Map {
15
16
  return this;
16
17
  }
17
18
  }
19
+ exports.LruMap = LruMap;
18
20
  const promiseCache = new LruMap(8192);
19
21
  function withDedupe(fn, { enabled = true, id }) {
20
22
  if (!enabled || !id) {
@@ -1 +1 @@
1
- {"version":3,"file":"withDedupe.js","sourceRoot":"","sources":["../../../src/utils/withDedupe.ts"],"names":[],"mappings":";;AA+BA,gCAaC;AAvCD,MAAM,MAAwB,SAAQ,GAAkB;IACtD,OAAO,CAAQ;IAEf,YAAY,IAAY;QACtB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;IAEQ,GAAG,CAAC,GAAW,EAAE,KAAY;QACpC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACrB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,CAAC,CAAA;QACxC,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAGD,MAAM,YAAY,GAAiB,IAAI,MAAM,CAAe,IAAI,CAAC,CAAA;AAQjE,SAAgB,UAAU,CACxB,EAAoB,EACpB,EAAE,OAAO,GAAG,IAAI,EAAE,EAAE,EAAqB;IAEzC,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,CAAA;IACb,CAAC;IACD,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACzB,OAAO,YAAY,CAAC,GAAG,CAAC,EAAE,CAAE,CAAA;IAC9B,CAAC;IACD,MAAM,OAAO,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3D,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"withDedupe.js","sourceRoot":"","sources":["../../../src/utils/withDedupe.ts"],"names":[],"mappings":";;;AA+BA,gCAaC;AAvCD,MAAa,MAAwB,SAAQ,GAAkB;IAC7D,OAAO,CAAQ;IAEf,YAAY,IAAY;QACtB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;IAEQ,GAAG,CAAC,GAAW,EAAE,KAAY;QACpC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACrB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,CAAC,CAAA;QACxC,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAfD,wBAeC;AAGD,MAAM,YAAY,GAAiB,IAAI,MAAM,CAAe,IAAI,CAAC,CAAA;AAQjE,SAAgB,UAAU,CACxB,EAAoB,EACpB,EAAE,OAAO,GAAG,IAAI,EAAE,EAAE,EAAqB;IAEzC,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,CAAA;IACb,CAAC;IACD,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACzB,OAAO,YAAY,CAAC,GAAG,CAAC,EAAE,CAAE,CAAA;IAC9B,CAAC;IACD,MAAM,OAAO,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3D,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export declare const name = "@lifi/sdk";
2
- export declare const version = "4.0.0-alpha.9";
2
+ export declare const version = "4.0.0-beta.0";
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = exports.name = void 0;
4
4
  exports.name = '@lifi/sdk';
5
- exports.version = '4.0.0-alpha.9';
5
+ exports.version = '4.0.0-beta.0';
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,IAAI,GAAG,WAAW,CAAA;AAClB,QAAA,OAAO,GAAG,eAAe,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,IAAI,GAAG,WAAW,CAAA;AAClB,QAAA,OAAO,GAAG,cAAc,CAAA"}
@@ -35,7 +35,8 @@ export async function getQuote(client, params, options) {
35
35
  params.denyExchanges ??= client.config.routeOptions?.exchanges?.deny;
36
36
  params.preferExchanges ??= client.config.routeOptions?.exchanges?.prefer;
37
37
  for (const key of Object.keys(params)) {
38
- if (!params[key]) {
38
+ if (params[key] === undefined ||
39
+ params[key] === null) {
39
40
  delete params[key];
40
41
  }
41
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getQuote.js","sourceRoot":"","sources":["../../../src/actions/getQuote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getQuote.js","sourceRoot":"","sources":["../../../src/actions/getQuote.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export const getRelayedTransactionStatus = async (client, params, options) => {
21
21
  const queryParams = new URLSearchParams(otherParams);
22
22
  const decodedTaskId = decodeTaskId(taskId);
23
23
  // Temporary solution during the transition between status endpoints
24
- if (decodedTaskId.length === 3) {
24
+ if (decodedTaskId.length >= 3) {
25
25
  return (await getStatus(client, params, options));
26
26
  }
27
27
  const result = await request(client.config, `${client.config.apiUrl}/relayer/status/${taskId}?${queryParams}`, {
@@ -1 +1 @@
1
- {"version":3,"file":"getRelayedTransactionStatus.js","sourceRoot":"","sources":["../../../src/actions/getRelayedTransactionStatus.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAC9C,MAAiB,EACjB,MAA0B,EAC1B,OAAwB,EACU,EAAE;IACpC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,QAAQ,CAChB,IAAI,eAAe,CAAC,yCAAyC,CAAC,CAC/D,CAAA;IACH,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,CAAA;IACzC,MAAM,WAAW,GAAG,IAAI,eAAe,CACrC,WAAgD,CACjD,CAAA;IAED,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAC1C,oEAAoE;IACpE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,SAAS,CACrB,MAAM,EACN,MAAM,EACN,OAAO,CACR,CAAuC,CAAA;IAC1C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,MAAM,CAAC,MAAM,EACb,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,mBAAmB,MAAM,IAAI,WAAW,EAAE,EACjE;QACE,MAAM,EAAE,OAAO,EAAE,MAAM;KACxB,CACF,CAAA;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CACjB,SAAS,CAAC,WAAW,EACrB,MAAM,CAAC,IAAI,CAAC,IAAI,EAChB,MAAM,CAAC,IAAI,CAAC,OAAO,CACpB,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC,CAAA"}
1
+ {"version":3,"file":"getRelayedTransactionStatus.js","sourceRoot":"","sources":["../../../src/actions/getRelayedTransactionStatus.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAC9C,MAAiB,EACjB,MAA0B,EAC1B,OAAwB,EACU,EAAE;IACpC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,QAAQ,CAChB,IAAI,eAAe,CAAC,yCAAyC,CAAC,CAC/D,CAAA;IACH,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,CAAA;IACzC,MAAM,WAAW,GAAG,IAAI,eAAe,CACrC,WAAgD,CACjD,CAAA;IAED,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAC1C,oEAAoE;IACpE,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,SAAS,CACrB,MAAM,EACN,MAAM,EACN,OAAO,CACR,CAAuC,CAAA;IAC1C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,MAAM,CAAC,MAAM,EACb,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,mBAAmB,MAAM,IAAI,WAAW,EAAE,EACjE;QACE,MAAM,EAAE,OAAO,EAAE,MAAM;KACxB,CACF,CAAA;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CACjB,SAAS,CAAC,WAAW,EACrB,MAAM,CAAC,IAAI,CAAC,IAAI,EAChB,MAAM,CAAC,IAAI,CAAC,OAAO,CACpB,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC,CAAA"}
@@ -38,7 +38,8 @@ export const getRelayerQuote = async (client, params, options) => {
38
38
  params.denyExchanges ??= client.config.routeOptions?.exchanges?.deny;
39
39
  params.preferExchanges ??= client.config.routeOptions?.exchanges?.prefer;
40
40
  for (const key of Object.keys(params)) {
41
- if (!params[key]) {
41
+ if (params[key] === undefined ||
42
+ params[key] === null) {
42
43
  delete params[key];
43
44
  }
44
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getRelayerQuote.js","sourceRoot":"","sources":["../../../src/actions/getRelayerQuote.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGhD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,MAAiB,EACjB,MAA8B,EAC9B,OAAwB,EACL,EAAE;IACrB,MAAM,kBAAkB,GAAwC;QAC9D,WAAW;QACX,WAAW;QACX,aAAa;QACb,YAAY;QACZ,SAAS;QACT,SAAS;KACV,CAAA;IACD,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,QAAQ,CAChB,IAAI,eAAe,CACjB,uBAAuB,iBAAiB,eAAe,CACxD,CACF,CAAA;QACH,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAA;IAC9C,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAA;IAClD,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAA;IACxD,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAA;IACxD,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAA;IAC9C,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAA;IAClE,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAA;IAChE,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAA;IACpE,MAAM,CAAC,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAA;IACtE,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAA;IACpE,MAAM,CAAC,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAA;IAExE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,GAAyB,CAAC,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,GAAyB,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,MAAM,CAAC,MAAM,EACb,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,kBAAkB,IAAI,eAAe,CAC1D,MAA2C,CAC5C,EAAE,EACH;QACE,MAAM,EAAE,OAAO,EAAE,MAAM;KACxB,CACF,CAAA;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CACjB,SAAS,CAAC,WAAW,EACrB,MAAM,CAAC,IAAI,CAAC,IAAI,EAChB,MAAM,CAAC,IAAI,CAAC,OAAO,CACpB,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC,CAAA"}
1
+ {"version":3,"file":"getRelayerQuote.js","sourceRoot":"","sources":["../../../src/actions/getRelayerQuote.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGhD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,MAAiB,EACjB,MAA8B,EAC9B,OAAwB,EACL,EAAE;IACrB,MAAM,kBAAkB,GAAwC;QAC9D,WAAW;QACX,WAAW;QACX,aAAa;QACb,YAAY;QACZ,SAAS;QACT,SAAS;KACV,CAAA;IACD,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,QAAQ,CAChB,IAAI,eAAe,CACjB,uBAAuB,iBAAiB,eAAe,CACxD,CACF,CAAA;QACH,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAA;IAC9C,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAA;IAClD,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAA;IACxD,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAA;IACxD,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAA;IAC9C,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAA;IAClE,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAA;IAChE,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAA;IACpE,MAAM,CAAC,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAA;IACtE,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAA;IACpE,MAAM,CAAC,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAA;IAExE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IACE,MAAM,CAAC,GAAyB,CAAC,KAAK,SAAS;YAC/C,MAAM,CAAC,GAAyB,CAAC,KAAK,IAAI,EAC1C,CAAC;YACD,OAAO,MAAM,CAAC,GAAyB,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,MAAM,CAAC,MAAM,EACb,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,kBAAkB,IAAI,eAAe,CAC1D,MAA2C,CAC5C,EAAE,EACH;QACE,MAAM,EAAE,OAAO,EAAE,MAAM;KACxB,CACF,CAAA;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CACjB,SAAS,CAAC,WAAW,EACrB,MAAM,CAAC,IAAI,CAAC,IAAI,EAChB,MAAM,CAAC,IAAI,CAAC,OAAO,CACpB,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { ChainId } from '@lifi/types';
1
2
  import { isStep } from '../utils/isStep.js';
2
3
  import { request } from '../utils/request.js';
3
4
  /**
@@ -13,7 +14,23 @@ export const getStepTransaction = async (client, step, options) => {
13
14
  // While the validation fails for some users we should not enforce it
14
15
  console.warn('SDK Validation: Invalid Step', step);
15
16
  }
16
- return await request(client.config, `${client.config.apiUrl}/advanced/stepTransaction`, {
17
+ const { config } = client;
18
+ let requestUrl = `${config.apiUrl}/advanced/stepTransaction`;
19
+ const jitoBundle = config.routeOptions?.jitoBundle;
20
+ const svmSponsor = config.routeOptions?.svmSponsor;
21
+ if (step.action.fromChainId === ChainId.SOL) {
22
+ const queryParams = new URLSearchParams();
23
+ if (jitoBundle) {
24
+ queryParams.set('jitoBundle', jitoBundle.toString());
25
+ }
26
+ if (svmSponsor) {
27
+ queryParams.set('svmSponsor', svmSponsor);
28
+ }
29
+ if (queryParams.size > 0) {
30
+ requestUrl = `${requestUrl}?${queryParams}`;
31
+ }
32
+ }
33
+ return await request(config, requestUrl, {
17
34
  method: 'POST',
18
35
  headers: {
19
36
  'Content-Type': 'application/json',
@@ -1 +1 @@
1
- {"version":3,"file":"getStepTransaction.js","sourceRoot":"","sources":["../../../src/actions/getStepTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,MAAiB,EACjB,IAA+B,EAC/B,OAAwB,EACL,EAAE;IACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,qEAAqE;QACrE,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAA;IACpD,CAAC;IAED,OAAO,MAAM,OAAO,CAClB,MAAM,CAAC,MAAM,EACb,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,2BAA2B,EAClD;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC1B,MAAM,EAAE,OAAO,EAAE,MAAM;KACxB,CACF,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"getStepTransaction.js","sourceRoot":"","sources":["../../../src/actions/getStepTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,MAAiB,EACjB,IAA+B,EAC/B,OAAwB,EACL,EAAE;IACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,qEAAqE;QACrE,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAEzB,IAAI,UAAU,GAAG,GAAG,MAAM,CAAC,MAAM,2BAA2B,CAAA;IAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,EAAE,UAAU,CAAA;IAClD,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,EAAE,UAAU,CAAA;IAElD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAA;QACzC,IAAI,UAAU,EAAE,CAAC;YACf,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAA;QACtD,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;QAC3C,CAAC;QACD,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACzB,UAAU,GAAG,GAAG,UAAU,IAAI,WAAW,EAAE,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,MAAM,OAAO,CAAW,MAAM,EAAE,UAAU,EAAE;QACjD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC1B,MAAM,EAAE,OAAO,EAAE,MAAM;KACxB,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { StepExecutorContext, TaskResult } from '../types/execution.js';
2
+ export declare abstract class BaseStepExecutionTask {
3
+ shouldRun(_context: StepExecutorContext): Promise<boolean>;
4
+ abstract run(context: StepExecutorContext): Promise<TaskResult>;
5
+ }
@@ -0,0 +1,6 @@
1
+ export class BaseStepExecutionTask {
2
+ shouldRun(_context) {
3
+ return Promise.resolve(true);
4
+ }
5
+ }
6
+ //# sourceMappingURL=BaseStepExecutionTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseStepExecutionTask.js","sourceRoot":"","sources":["../../../src/core/BaseStepExecutionTask.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,qBAAqB;IACzC,SAAS,CAAC,QAA6B;QACrC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;CAGF"}
@@ -1,6 +1,9 @@
1
- import type { LiFiStep } from '@lifi/types';
2
- import type { ExecutionOptions, InteractionSettings, SDKClient, StepExecutor, StepExecutorOptions } from '../types/core.js';
1
+ import { ExecuteStepRetryError } from '../errors/errors.js';
2
+ import type { SDKError } from '../errors/SDKError.js';
3
+ import type { ExecuteStepRetryParams, ExecutionAction, ExecutionOptions, InteractionSettings, LiFiStepExtended, SDKClient, StepExecutor, StepExecutorOptions } from '../types/core.js';
4
+ import type { StepExecutorBaseContext, StepExecutorContext } from '../types/execution.js';
3
5
  import { StatusManager } from './StatusManager.js';
6
+ import type { TaskPipeline } from './TaskPipeline.js';
4
7
  export declare abstract class BaseStepExecutor implements StepExecutor {
5
8
  protected executionOptions?: ExecutionOptions;
6
9
  protected statusManager: StatusManager;
@@ -8,5 +11,9 @@ export declare abstract class BaseStepExecutor implements StepExecutor {
8
11
  allowExecution: boolean;
9
12
  constructor(options: StepExecutorOptions);
10
13
  setInteraction: (settings?: InteractionSettings) => void;
11
- abstract executeStep(client: SDKClient, step: LiFiStep): Promise<LiFiStep>;
14
+ private createBaseContext;
15
+ abstract createContext(baseContext: StepExecutorBaseContext): Promise<StepExecutorContext>;
16
+ abstract createPipeline(context: StepExecutorContext): TaskPipeline;
17
+ abstract parseErrors(error: Error, step?: LiFiStepExtended, action?: ExecutionAction, retryParams?: ExecuteStepRetryParams): Promise<SDKError | ExecuteStepRetryError>;
18
+ executeStep: (client: SDKClient, step: LiFiStepExtended, retryParams?: ExecuteStepRetryParams) => Promise<LiFiStepExtended>;
12
19
  }
@@ -1,3 +1,4 @@
1
+ import { ExecuteStepRetryError } from '../errors/errors.js';
1
2
  import { StatusManager } from './StatusManager.js';
2
3
  // Please be careful when changing the defaults as it may break the behavior (e.g., background execution)
3
4
  const defaultInteractionSettings = {
@@ -23,5 +24,57 @@ export class BaseStepExecutor {
23
24
  this.statusManager.allowUpdates(interactionSettings.allowUpdates);
24
25
  this.allowExecution = interactionSettings.allowExecution;
25
26
  };
27
+ createBaseContext = async (client, step, retryParams) => {
28
+ const fromChain = await client.getChainById(step.action.fromChainId);
29
+ const toChain = await client.getChainById(step.action.toChainId);
30
+ const isBridgeExecution = fromChain.id !== toChain.id;
31
+ return {
32
+ client,
33
+ step,
34
+ fromChain,
35
+ toChain,
36
+ isBridgeExecution,
37
+ retryParams,
38
+ statusManager: this.statusManager,
39
+ executionOptions: this.executionOptions,
40
+ allowUserInteraction: this.allowUserInteraction,
41
+ };
42
+ };
43
+ executeStep = async (client, step, retryParams) => {
44
+ try {
45
+ step.execution = this.statusManager.initializeExecution(step);
46
+ const baseContext = await this.createBaseContext(client, step, retryParams);
47
+ const context = await this.createContext(baseContext);
48
+ const pipeline = this.createPipeline(context);
49
+ await pipeline.run(context);
50
+ return step;
51
+ }
52
+ catch (error) {
53
+ const action = step.execution?.lastActionType
54
+ ? this.statusManager.findAction(step, step.execution.lastActionType)
55
+ : undefined;
56
+ const parsed = await this.parseErrors(error, step, action, retryParams);
57
+ if (!(parsed instanceof ExecuteStepRetryError)) {
58
+ if (action) {
59
+ this.statusManager.updateAction(step, action.type, 'FAILED', {
60
+ error: {
61
+ message: parsed.cause?.message,
62
+ code: parsed.code,
63
+ },
64
+ });
65
+ }
66
+ else {
67
+ this.statusManager.updateExecution(step, {
68
+ status: 'FAILED',
69
+ error: {
70
+ message: parsed.cause?.message,
71
+ code: parsed.code,
72
+ },
73
+ });
74
+ }
75
+ }
76
+ throw parsed;
77
+ }
78
+ };
26
79
  }
27
80
  //# sourceMappingURL=BaseStepExecutor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseStepExecutor.js","sourceRoot":"","sources":["../../../src/core/BaseStepExecutor.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,yGAAyG;AACzG,MAAM,0BAA0B,GAAG;IACjC,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,IAAI;IAClB,cAAc,EAAE,IAAI;CACrB,CAAA;AAED,MAAM,OAAgB,gBAAgB;IAC1B,gBAAgB,CAAmB;IACnC,aAAa,CAAe;IAE/B,oBAAoB,GAAG,IAAI,CAAA;IAC3B,cAAc,GAAG,IAAI,CAAA;IAE5B,YAAY,OAA4B;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACvD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAA;IAClD,CAAC;IAED,cAAc,GAAG,CAAC,QAA8B,EAAQ,EAAE;QACxD,MAAM,mBAAmB,GAAG;YAC1B,GAAG,0BAA0B;YAC7B,GAAG,QAAQ;SACZ,CAAA;QACD,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC,gBAAgB,CAAA;QAChE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAA;QACjE,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAA;IAC1D,CAAC,CAAA;CAGF"}
1
+ {"version":3,"file":"BaseStepExecutor.js","sourceRoot":"","sources":["../../../src/core/BaseStepExecutor.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,13 @@
1
1
  import type { ChainId, LiFiStep } from '@lifi/types';
2
- import type { Execution, ExecutionAction, ExecutionActionStatus, ExecutionActionType, ExecutionStatus, LiFiStepExtended } from '../types/core.js';
3
- type FindOrCreateActionProps = {
2
+ import type { Execution, ExecutionAction, ExecutionActionStatus, ExecutionActionType, LiFiStepExtended } from '../types/core.js';
3
+ type ActionProps = {
4
4
  step: LiFiStepExtended;
5
5
  type: ExecutionActionType;
6
- chainId?: ChainId;
7
- status?: ExecutionActionStatus;
6
+ chainId: ChainId;
7
+ status: ExecutionActionStatus;
8
8
  };
9
9
  /**
10
- * Manages status updates of a route and provides various functions for tracking actions
11
- * @param {string} routeId The route dd this StatusManger belongs to.
12
- * @returns {StatusManager} An instance of StatusManager.
10
+ * Manages status updates of a route and provides various functions for tracking actions.
13
11
  */
14
12
  export declare class StatusManager {
15
13
  private readonly routeId;
@@ -17,35 +15,43 @@ export declare class StatusManager {
17
15
  constructor(routeId: string);
18
16
  /**
19
17
  * Initializes the execution object of a Step.
20
- * @param step The current step in execution
21
- * @returns The initialized execution object for this step and a function to update this step
18
+ * @param step The current step in execution
19
+ * @returns The initialized execution object for this step
22
20
  */
23
- initExecutionObject: (step: LiFiStepExtended) => Execution;
21
+ initializeExecution: (step: LiFiStepExtended) => Execution;
24
22
  /**
25
23
  * Updates the execution object of a Step.
26
- * @param step The current step in execution
27
- * @param status The status for the execution
28
- * @param execution Optional. Information about received tokens
24
+ * @param step The current step in execution
25
+ * @param execution Partial execution data to merge
29
26
  * @returns The step with the updated execution object
30
27
  */
31
- updateExecution(step: LiFiStepExtended, status: ExecutionStatus, execution?: Partial<Execution>): LiFiStep;
28
+ updateExecution(step: LiFiStepExtended, execution: Partial<Execution>): LiFiStep;
32
29
  /**
33
30
  * Finds an action of the specified type in the step's execution
34
31
  * @param step The step to search in
35
32
  * @param type The action type to find
36
- * @param status Optional status to update the action with if found
37
33
  * @returns The found action or undefined if not found
38
34
  */
39
- findAction(step: LiFiStepExtended, type: ExecutionActionType, status?: ExecutionActionStatus): ExecutionAction | undefined;
35
+ findAction(step: LiFiStepExtended, type: ExecutionActionType): ExecutionAction | undefined;
40
36
  /**
41
37
  * Create and push a new action into the execution.
38
+ * Caller is responsible for ensuring an action of this type does not already exist.
42
39
  * @param step The step that should contain the new action.
43
- * @param type Type of the action. Used to identify already existing actions.
40
+ * @param type Type of the action.
44
41
  * @param chainId Chain Id of the action.
45
- * @param status By default created action is set to the STARTED status. We can override new action with the needed status.
46
- * @returns Returns action.
42
+ * @param status The initial status for the new action.
43
+ * @returns The created action.
44
+ */
45
+ createAction: ({ step, type, chainId, status, }: ActionProps) => ExecutionAction;
46
+ /**
47
+ * Find an existing action by type and update it, or create a new one if none exists.
48
+ * @param step The step that should contain the action.
49
+ * @param type Type of the action. Used to identify already existing actions.
50
+ * @param chainId Chain Id of the action (used when creating).
51
+ * @param status The status to set on the found or newly created action.
52
+ * @returns The updated or newly created action.
47
53
  */
48
- findOrCreateAction: ({ step, type, chainId, status, }: FindOrCreateActionProps) => ExecutionAction;
54
+ initializeAction: ({ step, type, chainId, status, }: ActionProps) => ExecutionAction;
49
55
  /**
50
56
  * Update an action object.
51
57
  * @param step The step where the action should be updated
@@ -54,13 +60,9 @@ export declare class StatusManager {
54
60
  * @param [params] Additional parameters to append to the action.
55
61
  * @returns The updated action
56
62
  */
57
- updateAction: (step: LiFiStepExtended, type: ExecutionActionType, status: ExecutionActionStatus, params?: Partial<ExecutionAction>) => ExecutionAction;
58
- /**
59
- * Remove an action from the execution
60
- * @param step The step where the action should be removed from
61
- * @param type The action type to remove
62
- */
63
- removeAction: (step: LiFiStepExtended, type: ExecutionActionType) => void;
63
+ updateAction: (step: LiFiStepExtended, type: ExecutionActionType, status: ExecutionActionStatus, params?: Partial<ExecutionAction & {
64
+ signedAt?: number;
65
+ }>) => ExecutionAction;
64
66
  updateStepInRoute: (step: LiFiStep) => LiFiStep;
65
67
  allowUpdates(value: boolean): void;
66
68
  }