@lifi/sdk 3.6.0-beta.2 → 3.6.0-beta.4

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 (114) hide show
  1. package/package.json +4 -4
  2. package/src/_cjs/core/EVM/EVMStepExecutor.js +250 -211
  3. package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
  4. package/src/_cjs/core/EVM/getNativePermit.js +127 -59
  5. package/src/_cjs/core/EVM/getNativePermit.js.map +1 -1
  6. package/src/_cjs/core/EVM/parseEVMErrors.js +2 -1
  7. package/src/_cjs/core/EVM/parseEVMErrors.js.map +1 -1
  8. package/src/_cjs/core/EVM/signPermitMessage.js +1 -7
  9. package/src/_cjs/core/EVM/signPermitMessage.js.map +1 -1
  10. package/src/_cjs/core/EVM/typeguards.js +3 -3
  11. package/src/_cjs/core/EVM/typeguards.js.map +1 -1
  12. package/src/_cjs/core/Solana/SolanaStepExecutor.js +1 -13
  13. package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -1
  14. package/src/_cjs/core/Solana/parseSolanaErrors.js.map +1 -1
  15. package/src/_cjs/core/StatusManager.js +13 -9
  16. package/src/_cjs/core/StatusManager.js.map +1 -1
  17. package/src/_cjs/core/UTXO/UTXOStepExecutor.js +1 -13
  18. package/src/_cjs/core/UTXO/UTXOStepExecutor.js.map +1 -1
  19. package/src/_cjs/core/UTXO/getUTXOAPIPublicClient.js +3 -3
  20. package/src/_cjs/core/UTXO/getUTXOAPIPublicClient.js.map +1 -1
  21. package/src/_cjs/core/UTXO/parseUTXOErrors.js.map +1 -1
  22. package/src/_cjs/core/processMessages.js +22 -15
  23. package/src/_cjs/core/processMessages.js.map +1 -1
  24. package/src/_cjs/core/waitForDestinationChainTransaction.js +16 -1
  25. package/src/_cjs/core/waitForDestinationChainTransaction.js.map +1 -1
  26. package/src/_cjs/core/waitForTransactionStatus.js.map +1 -1
  27. package/src/_cjs/errors/SDKError.js.map +1 -1
  28. package/src/_cjs/index.js +2 -2
  29. package/src/_cjs/index.js.map +1 -1
  30. package/src/_cjs/utils/getTransactionMessage.js.map +1 -1
  31. package/src/_cjs/version.js +1 -1
  32. package/src/_esm/core/EVM/EVMStepExecutor.js +273 -233
  33. package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
  34. package/src/_esm/core/EVM/getNativePermit.js +147 -60
  35. package/src/_esm/core/EVM/getNativePermit.js.map +1 -1
  36. package/src/_esm/core/EVM/parseEVMErrors.js +2 -1
  37. package/src/_esm/core/EVM/parseEVMErrors.js.map +1 -1
  38. package/src/_esm/core/EVM/signPermitMessage.js +1 -7
  39. package/src/_esm/core/EVM/signPermitMessage.js.map +1 -1
  40. package/src/_esm/core/EVM/typeguards.js +2 -2
  41. package/src/_esm/core/EVM/typeguards.js.map +1 -1
  42. package/src/_esm/core/Solana/SolanaStepExecutor.js +1 -14
  43. package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -1
  44. package/src/_esm/core/Solana/parseSolanaErrors.js.map +1 -1
  45. package/src/_esm/core/StatusManager.js +24 -18
  46. package/src/_esm/core/StatusManager.js.map +1 -1
  47. package/src/_esm/core/UTXO/UTXOStepExecutor.js +1 -14
  48. package/src/_esm/core/UTXO/UTXOStepExecutor.js.map +1 -1
  49. package/src/_esm/core/UTXO/getUTXOAPIPublicClient.js +3 -3
  50. package/src/_esm/core/UTXO/getUTXOAPIPublicClient.js.map +1 -1
  51. package/src/_esm/core/UTXO/parseUTXOErrors.js.map +1 -1
  52. package/src/_esm/core/processMessages.js +22 -15
  53. package/src/_esm/core/processMessages.js.map +1 -1
  54. package/src/_esm/core/waitForDestinationChainTransaction.js +17 -1
  55. package/src/_esm/core/waitForDestinationChainTransaction.js.map +1 -1
  56. package/src/_esm/core/waitForTransactionStatus.js.map +1 -1
  57. package/src/_esm/errors/SDKError.js.map +1 -1
  58. package/src/_esm/index.js +1 -1
  59. package/src/_esm/index.js.map +1 -1
  60. package/src/_esm/utils/getTransactionMessage.js.map +1 -1
  61. package/src/_esm/version.js +1 -1
  62. package/src/_types/core/EVM/EVMStepExecutor.d.ts +13 -3
  63. package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
  64. package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
  65. package/src/_types/core/EVM/getNativePermit.d.ts +2 -0
  66. package/src/_types/core/EVM/getNativePermit.d.ts.map +1 -1
  67. package/src/_types/core/EVM/parseEVMErrors.d.ts +2 -1
  68. package/src/_types/core/EVM/parseEVMErrors.d.ts.map +1 -1
  69. package/src/_types/core/EVM/signPermitMessage.d.ts.map +1 -1
  70. package/src/_types/core/EVM/typeguards.d.ts +1 -1
  71. package/src/_types/core/EVM/typeguards.d.ts.map +1 -1
  72. package/src/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -1
  73. package/src/_types/core/Solana/parseSolanaErrors.d.ts +2 -1
  74. package/src/_types/core/Solana/parseSolanaErrors.d.ts.map +1 -1
  75. package/src/_types/core/StatusManager.d.ts +14 -11
  76. package/src/_types/core/StatusManager.d.ts.map +1 -1
  77. package/src/_types/core/UTXO/UTXOStepExecutor.d.ts.map +1 -1
  78. package/src/_types/core/UTXO/parseUTXOErrors.d.ts +2 -1
  79. package/src/_types/core/UTXO/parseUTXOErrors.d.ts.map +1 -1
  80. package/src/_types/core/processMessages.d.ts +3 -1
  81. package/src/_types/core/processMessages.d.ts.map +1 -1
  82. package/src/_types/core/types.d.ts +32 -1
  83. package/src/_types/core/types.d.ts.map +1 -1
  84. package/src/_types/core/waitForDestinationChainTransaction.d.ts +3 -3
  85. package/src/_types/core/waitForDestinationChainTransaction.d.ts.map +1 -1
  86. package/src/_types/core/waitForTransactionStatus.d.ts +2 -1
  87. package/src/_types/core/waitForTransactionStatus.d.ts.map +1 -1
  88. package/src/_types/errors/SDKError.d.ts +2 -1
  89. package/src/_types/errors/SDKError.d.ts.map +1 -1
  90. package/src/_types/index.d.ts +2 -2
  91. package/src/_types/index.d.ts.map +1 -1
  92. package/src/_types/utils/getTransactionMessage.d.ts +2 -1
  93. package/src/_types/utils/getTransactionMessage.d.ts.map +1 -1
  94. package/src/_types/version.d.ts +1 -1
  95. package/src/core/EVM/EVMStepExecutor.ts +353 -293
  96. package/src/core/EVM/checkAllowance.ts +2 -2
  97. package/src/core/EVM/getNativePermit.ts +219 -66
  98. package/src/core/EVM/parseEVMErrors.ts +6 -2
  99. package/src/core/EVM/signPermitMessage.ts +1 -8
  100. package/src/core/EVM/typeguards.ts +2 -2
  101. package/src/core/Solana/SolanaStepExecutor.ts +2 -16
  102. package/src/core/Solana/parseSolanaErrors.ts +2 -1
  103. package/src/core/StatusManager.ts +38 -26
  104. package/src/core/UTXO/UTXOStepExecutor.ts +2 -16
  105. package/src/core/UTXO/getUTXOAPIPublicClient.ts +3 -3
  106. package/src/core/UTXO/parseUTXOErrors.ts +2 -1
  107. package/src/core/processMessages.ts +25 -21
  108. package/src/core/types.ts +54 -1
  109. package/src/core/waitForDestinationChainTransaction.ts +21 -4
  110. package/src/core/waitForTransactionStatus.ts +2 -6
  111. package/src/errors/SDKError.ts +2 -1
  112. package/src/index.ts +6 -1
  113. package/src/utils/getTransactionMessage.ts +2 -1
  114. package/src/version.ts +1 -1
package/src/core/types.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import type {
2
2
  ChainType,
3
- Execution,
3
+ FeeCost,
4
+ GasCost,
4
5
  LiFiStep,
5
6
  Route,
6
7
  Step,
8
+ Substatus,
7
9
  Token,
8
10
  TokenAmount,
9
11
  } from '@lifi/types'
@@ -117,3 +119,54 @@ export interface ExecutionOptions {
117
119
  */
118
120
  infiniteApproval?: boolean
119
121
  }
122
+
123
+ export type ExecutionStatus = 'ACTION_REQUIRED' | 'PENDING' | 'FAILED' | 'DONE'
124
+
125
+ export type ProcessStatus =
126
+ | 'STARTED'
127
+ | 'ACTION_REQUIRED'
128
+ | 'PENDING'
129
+ | 'FAILED'
130
+ | 'DONE'
131
+ | 'CANCELLED'
132
+
133
+ export type ProcessType =
134
+ | 'TOKEN_ALLOWANCE'
135
+ | 'PERMIT'
136
+ | 'SWITCH_CHAIN'
137
+ | 'SWAP'
138
+ | 'CROSS_CHAIN'
139
+ | 'RECEIVING_CHAIN'
140
+ | 'TRANSACTION'
141
+
142
+ export type Process = {
143
+ type: ProcessType
144
+ status: ProcessStatus
145
+ substatus?: Substatus
146
+ chainId?: number
147
+ txHash?: string
148
+ multisigTxHash?: string
149
+ txLink?: string
150
+ startedAt: number
151
+ doneAt?: number
152
+ failedAt?: number
153
+ message?: string
154
+ error?: {
155
+ code: string | number
156
+ message: string
157
+ htmlMessage?: string
158
+ }
159
+
160
+ // additional information
161
+ [key: string]: any
162
+ }
163
+
164
+ export interface Execution {
165
+ status: ExecutionStatus
166
+ process: Array<Process>
167
+ fromAmount?: string
168
+ toAmount?: string
169
+ toToken?: Token
170
+ feeCosts?: FeeCost[]
171
+ gasCosts?: GasCost[]
172
+ }
@@ -2,23 +2,40 @@ import type {
2
2
  ExtendedChain,
3
3
  ExtendedTransactionInfo,
4
4
  FullStatusData,
5
- ProcessType,
6
5
  } from '@lifi/types'
7
6
  import { LiFiErrorCode } from '../errors/constants.js'
8
7
  import { getTransactionFailedMessage } from '../utils/getTransactionMessage.js'
9
8
  import type { StatusManager } from './StatusManager.js'
10
- import type { LiFiStepExtended } from './types.js'
9
+ import type { LiFiStepExtended, Process } from './types.js'
11
10
  import { waitForTransactionStatus } from './waitForTransactionStatus.js'
12
11
 
13
12
  export async function waitForDestinationChainTransaction(
14
13
  step: LiFiStepExtended,
15
- processType: ProcessType,
16
- transactionHash: string,
14
+ process: Process,
15
+ fromChain: ExtendedChain,
17
16
  toChain: ExtendedChain,
18
17
  statusManager: StatusManager,
19
18
  pollingInterval?: number
20
19
  ): Promise<LiFiStepExtended> {
20
+ const transactionHash = process.txHash
21
+ let processType = process.type
21
22
  try {
23
+ // Wait for the transaction status on the destination chain
24
+ if (!transactionHash) {
25
+ throw new Error('Transaction hash is undefined.')
26
+ }
27
+
28
+ const isBridgeExecution = fromChain.id !== toChain.id
29
+ if (isBridgeExecution) {
30
+ const receivingChainProcess = statusManager.findOrCreateProcess({
31
+ step,
32
+ type: 'RECEIVING_CHAIN',
33
+ status: 'PENDING',
34
+ chainId: toChain.id,
35
+ })
36
+ processType = receivingChainProcess.type
37
+ }
38
+
22
39
  const statusResponse = (await waitForTransactionStatus(
23
40
  transactionHash,
24
41
  statusManager,
@@ -1,14 +1,10 @@
1
- import type {
2
- FullStatusData,
3
- LiFiStep,
4
- ProcessType,
5
- StatusResponse,
6
- } from '@lifi/types'
1
+ import type { FullStatusData, LiFiStep, StatusResponse } from '@lifi/types'
7
2
  import { ServerError } from '../errors/errors.js'
8
3
  import { getStatus } from '../services/api.js'
9
4
  import { waitForResult } from '../utils/waitForResult.js'
10
5
  import type { StatusManager } from './StatusManager.js'
11
6
  import { getSubstatusMessage } from './processMessages.js'
7
+ import type { ProcessType } from './types.js'
12
8
 
13
9
  const TRANSACTION_HASH_OBSERVERS: Record<string, Promise<StatusResponse>> = {}
14
10
 
@@ -1,4 +1,5 @@
1
- import type { LiFiStep, Process } from '@lifi/types'
1
+ import type { LiFiStep } from '@lifi/types'
2
+ import type { Process } from '../core/types.js'
2
3
  import { version } from '../version.js'
3
4
  import type { BaseError } from './baseError.js'
4
5
  import type { ErrorCode } from './constants.js'
package/src/index.ts CHANGED
@@ -12,7 +12,7 @@ export {
12
12
  setTokenAllowance,
13
13
  } from './core/EVM/setAllowance.js'
14
14
  export { isEVM } from './core/EVM/types.js'
15
- export { isEVMPermitStep } from './core/EVM/typeguards.js'
15
+ export { isRelayerStep } from './core/EVM/typeguards.js'
16
16
  export type {
17
17
  EVMProvider,
18
18
  EVMProviderOptions,
@@ -31,9 +31,14 @@ export type {
31
31
  AcceptSlippageUpdateHook,
32
32
  AcceptSlippageUpdateHookParams,
33
33
  ExchangeRateUpdateParams,
34
+ Execution,
34
35
  ExecutionOptions,
36
+ ExecutionStatus,
35
37
  InteractionSettings,
36
38
  LiFiStepExtended,
39
+ Process,
40
+ ProcessStatus,
41
+ ProcessType,
37
42
  RouteExecutionData,
38
43
  RouteExecutionDataDictionary,
39
44
  RouteExecutionDictionary,
@@ -1,6 +1,7 @@
1
- import type { LiFiStep, Process } from '@lifi/types'
1
+ import type { LiFiStep } from '@lifi/types'
2
2
  import { formatUnits } from 'viem'
3
3
  import { config } from '../config.js'
4
+ import type { Process } from '../core/types.js'
4
5
 
5
6
  export const getTransactionNotSentMessage = async (
6
7
  step?: LiFiStep,
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export const name = '@lifi/sdk'
2
- export const version = '3.6.0-beta.2'
2
+ export const version = '3.6.0-beta.4'