@lifi/sdk 3.0.2-beta.0 → 3.1.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 +3 -3
- package/src/_cjs/core/EVM/EVMStepExecutor.js +12 -11
- package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_cjs/core/EVM/checkAllowance.js +5 -10
- package/src/_cjs/core/EVM/checkAllowance.js.map +1 -1
- package/src/_cjs/core/EVM/multisig.js +4 -3
- package/src/_cjs/core/EVM/multisig.js.map +1 -1
- package/src/_cjs/core/EVM/parseEVMErrors.js +38 -0
- package/src/_cjs/core/EVM/parseEVMErrors.js.map +1 -0
- package/src/_cjs/core/EVM/publicClient.js +8 -3
- package/src/_cjs/core/EVM/publicClient.js.map +1 -1
- package/src/_cjs/core/EVM/setAllowance.js +2 -3
- package/src/_cjs/core/EVM/setAllowance.js.map +1 -1
- package/src/_cjs/core/EVM/switchChain.js +4 -3
- package/src/_cjs/core/EVM/switchChain.js.map +1 -1
- package/src/_cjs/core/Solana/SolanaStepExecutor.js +42 -24
- package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -1
- package/src/_cjs/core/Solana/connection.js.map +1 -1
- package/src/_cjs/core/Solana/parseSolanaErrors.js +33 -0
- package/src/_cjs/core/Solana/parseSolanaErrors.js.map +1 -0
- package/src/_cjs/core/checkBalance.js +2 -2
- package/src/_cjs/core/checkBalance.js.map +1 -1
- package/src/_cjs/core/stepComparison.js +3 -3
- package/src/_cjs/core/stepComparison.js.map +1 -1
- package/src/_cjs/core/waitForReceivingTransaction.js +1 -1
- package/src/_cjs/core/waitForReceivingTransaction.js.map +1 -1
- package/src/_cjs/errors/SDKError.js +48 -0
- package/src/_cjs/errors/SDKError.js.map +1 -0
- package/src/_cjs/errors/baseError.js +30 -0
- package/src/_cjs/errors/baseError.js.map +1 -0
- package/src/_cjs/errors/constants.js +48 -0
- package/src/_cjs/errors/constants.js.map +1 -0
- package/src/_cjs/errors/errors.js +48 -0
- package/src/_cjs/errors/errors.js.map +1 -0
- package/src/_cjs/errors/httpError.js +101 -0
- package/src/_cjs/errors/httpError.js.map +1 -0
- package/src/_cjs/errors/index.js +11 -0
- package/src/_cjs/errors/index.js.map +1 -0
- package/src/_cjs/errors/utils/baseErrorRootCause.js +21 -0
- package/src/_cjs/errors/utils/baseErrorRootCause.js.map +1 -0
- package/src/_cjs/errors/utils/rootCause.js +12 -0
- package/src/_cjs/errors/utils/rootCause.js.map +1 -0
- package/src/_cjs/helpers.js +13 -8
- package/src/_cjs/helpers.js.map +1 -1
- package/src/_cjs/index.js +2 -4
- package/src/_cjs/index.js.map +1 -1
- package/src/_cjs/request.js +37 -34
- package/src/_cjs/request.js.map +1 -1
- package/src/_cjs/services/api.js +61 -132
- package/src/_cjs/services/api.js.map +1 -1
- package/src/_cjs/services/balance.js +1 -1
- package/src/_cjs/services/balance.js.map +1 -1
- package/src/_cjs/types/request.js +3 -0
- package/src/_cjs/types/request.js.map +1 -0
- package/src/_cjs/utils/errors.js +0 -183
- package/src/_cjs/utils/errors.js.map +1 -1
- package/src/_cjs/utils/index.js +1 -2
- package/src/_cjs/utils/index.js.map +1 -1
- package/src/_cjs/version.js +1 -1
- package/src/_cjs/version.js.map +1 -1
- package/src/_esm/core/EVM/EVMStepExecutor.js +8 -7
- package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_esm/core/EVM/checkAllowance.js +5 -10
- package/src/_esm/core/EVM/checkAllowance.js.map +1 -1
- package/src/_esm/core/EVM/multisig.js +2 -1
- package/src/_esm/core/EVM/multisig.js.map +1 -1
- package/src/_esm/core/EVM/parseEVMErrors.js +35 -0
- package/src/_esm/core/EVM/parseEVMErrors.js.map +1 -0
- package/src/_esm/core/EVM/publicClient.js +9 -4
- package/src/_esm/core/EVM/publicClient.js.map +1 -1
- package/src/_esm/core/EVM/setAllowance.js +3 -5
- package/src/_esm/core/EVM/setAllowance.js.map +1 -1
- package/src/_esm/core/EVM/switchChain.js +2 -1
- package/src/_esm/core/EVM/switchChain.js.map +1 -1
- package/src/_esm/core/Solana/SolanaStepExecutor.js +52 -25
- package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -1
- package/src/_esm/core/Solana/connection.js +2 -3
- package/src/_esm/core/Solana/connection.js.map +1 -1
- package/src/_esm/core/Solana/parseSolanaErrors.js +29 -0
- package/src/_esm/core/Solana/parseSolanaErrors.js.map +1 -0
- package/src/_esm/core/checkBalance.js +2 -2
- package/src/_esm/core/checkBalance.js.map +1 -1
- package/src/_esm/core/stepComparison.js +3 -3
- package/src/_esm/core/stepComparison.js.map +1 -1
- package/src/_esm/core/waitForReceivingTransaction.js +1 -1
- package/src/_esm/core/waitForReceivingTransaction.js.map +1 -1
- package/src/_esm/errors/SDKError.js +47 -0
- package/src/_esm/errors/SDKError.js.map +1 -0
- package/src/_esm/errors/baseError.js +28 -0
- package/src/_esm/errors/baseError.js.map +1 -0
- package/src/_esm/errors/constants.js +45 -0
- package/src/_esm/errors/constants.js.map +1 -0
- package/src/_esm/errors/errors.js +38 -0
- package/src/_esm/errors/errors.js.map +1 -0
- package/src/_esm/errors/httpError.js +97 -0
- package/src/_esm/errors/httpError.js.map +1 -0
- package/src/_esm/errors/index.js +8 -0
- package/src/_esm/errors/index.js.map +1 -0
- package/src/_esm/errors/utils/baseErrorRootCause.js +16 -0
- package/src/_esm/errors/utils/baseErrorRootCause.js.map +1 -0
- package/src/_esm/errors/utils/rootCause.js +8 -0
- package/src/_esm/errors/utils/rootCause.js.map +1 -0
- package/src/_esm/helpers.js +16 -9
- package/src/_esm/helpers.js.map +1 -1
- package/src/_esm/index.js +2 -2
- package/src/_esm/index.js.map +1 -1
- package/src/_esm/request.js +38 -35
- package/src/_esm/request.js.map +1 -1
- package/src/_esm/services/api.js +61 -133
- package/src/_esm/services/api.js.map +1 -1
- package/src/_esm/services/balance.js +4 -4
- package/src/_esm/services/balance.js.map +1 -1
- package/src/_esm/types/request.js +2 -0
- package/src/_esm/types/request.js.map +1 -0
- package/src/_esm/utils/errors.js +1 -173
- package/src/_esm/utils/errors.js.map +1 -1
- package/src/_esm/utils/index.js +1 -2
- package/src/_esm/utils/index.js.map +1 -1
- package/src/_esm/version.js +1 -1
- package/src/_esm/version.js.map +1 -1
- package/src/_types/core/EVM/EVMStepExecutor.d.ts.map +1 -1
- package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
- package/src/_types/core/EVM/multisig.d.ts.map +1 -1
- package/src/_types/core/EVM/parseEVMErrors.d.ts +4 -0
- package/src/_types/core/EVM/parseEVMErrors.d.ts.map +1 -0
- package/src/_types/core/EVM/publicClient.d.ts.map +1 -1
- package/src/_types/core/EVM/setAllowance.d.ts +1 -2
- package/src/_types/core/EVM/setAllowance.d.ts.map +1 -1
- package/src/_types/core/EVM/switchChain.d.ts.map +1 -1
- package/src/_types/core/EVM/types.d.ts +3 -0
- package/src/_types/core/EVM/types.d.ts.map +1 -1
- package/src/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -1
- package/src/_types/core/Solana/connection.d.ts +2 -3
- package/src/_types/core/Solana/connection.d.ts.map +1 -1
- package/src/_types/core/Solana/parseSolanaErrors.d.ts +4 -0
- package/src/_types/core/Solana/parseSolanaErrors.d.ts.map +1 -0
- package/src/_types/core/stepComparison.d.ts.map +1 -1
- package/src/_types/core/types.d.ts +3 -0
- package/src/_types/core/types.d.ts.map +1 -1
- package/src/_types/errors/SDKError.d.ts +12 -0
- package/src/_types/errors/SDKError.d.ts.map +1 -0
- package/src/_types/errors/baseError.d.ts +7 -0
- package/src/_types/errors/baseError.d.ts.map +1 -0
- package/src/_types/errors/constants.d.ts +43 -0
- package/src/_types/errors/constants.d.ts.map +1 -0
- package/src/_types/errors/errors.d.ts +24 -0
- package/src/_types/errors/errors.d.ts.map +1 -0
- package/src/_types/errors/httpError.d.ts +21 -0
- package/src/_types/errors/httpError.d.ts.map +1 -0
- package/src/_types/errors/index.d.ts +8 -0
- package/src/_types/errors/index.d.ts.map +1 -0
- package/src/_types/errors/utils/baseErrorRootCause.d.ts +4 -0
- package/src/_types/errors/utils/baseErrorRootCause.d.ts.map +1 -0
- package/src/_types/errors/utils/rootCause.d.ts +2 -0
- package/src/_types/errors/utils/rootCause.d.ts.map +1 -0
- package/src/_types/helpers.d.ts +5 -4
- package/src/_types/helpers.d.ts.map +1 -1
- package/src/_types/index.d.ts +2 -2
- package/src/_types/index.d.ts.map +1 -1
- package/src/_types/request.d.ts +1 -5
- package/src/_types/request.d.ts.map +1 -1
- package/src/_types/services/api.d.ts.map +1 -1
- package/src/_types/services/balance.d.ts +3 -3
- package/src/_types/types/request.d.ts +4 -0
- package/src/_types/types/request.d.ts.map +1 -0
- package/src/_types/utils/errors.d.ts +0 -109
- package/src/_types/utils/errors.d.ts.map +1 -1
- package/src/_types/utils/index.d.ts +1 -2
- package/src/_types/utils/index.d.ts.map +1 -1
- package/src/_types/version.d.ts +1 -1
- package/src/_types/version.d.ts.map +1 -1
- package/src/core/EVM/EVMStepExecutor.ts +14 -12
- package/src/core/EVM/checkAllowance.ts +5 -10
- package/src/core/EVM/multisig.ts +2 -1
- package/src/core/EVM/parseEVMErrors.ts +60 -0
- package/src/core/EVM/publicClient.ts +9 -4
- package/src/core/EVM/setAllowance.ts +2 -6
- package/src/core/EVM/switchChain.ts +2 -1
- package/src/core/EVM/types.ts +3 -0
- package/src/core/Solana/SolanaStepExecutor.ts +67 -34
- package/src/core/Solana/connection.ts +2 -3
- package/src/core/Solana/parseSolanaErrors.ts +45 -0
- package/src/core/checkBalance.ts +2 -2
- package/src/core/stepComparison.ts +3 -4
- package/src/core/types.ts +3 -0
- package/src/core/waitForReceivingTransaction.ts +1 -1
- package/src/errors/SDKError.ts +25 -0
- package/src/errors/baseError.ts +22 -0
- package/src/errors/constants.ts +45 -0
- package/src/errors/errors.ts +44 -0
- package/src/errors/httpError.ts +93 -0
- package/src/errors/index.ts +7 -0
- package/src/errors/utils/baseErrorRootCause.ts +18 -0
- package/src/errors/utils/rootCause.ts +7 -0
- package/src/helpers.ts +23 -16
- package/src/index.ts +2 -2
- package/src/request.ts +52 -38
- package/src/services/api.ts +109 -157
- package/src/services/balance.ts +4 -4
- package/src/types/request.ts +3 -0
- package/src/utils/errors.ts +0 -233
- package/src/utils/index.ts +1 -2
- package/src/version.ts +1 -1
- package/src/_cjs/utils/parseBackendError.js +0 -27
- package/src/_cjs/utils/parseBackendError.js.map +0 -1
- package/src/_cjs/utils/parseError.js +0 -69
- package/src/_cjs/utils/parseError.js.map +0 -1
- package/src/_esm/utils/parseBackendError.js +0 -24
- package/src/_esm/utils/parseBackendError.js.map +0 -1
- package/src/_esm/utils/parseError.js +0 -100
- package/src/_esm/utils/parseError.js.map +0 -1
- package/src/_types/utils/parseBackendError.d.ts +0 -3
- package/src/_types/utils/parseBackendError.d.ts.map +0 -1
- package/src/_types/utils/parseError.d.ts +0 -35
- package/src/_types/utils/parseError.d.ts.map +0 -1
- package/src/utils/parseBackendError.ts +0 -50
- package/src/utils/parseError.ts +0 -210
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import {} from '@solana/wallet-adapter-base';
|
|
2
2
|
import { TransactionExpiredBlockheightExceededError, VersionedTransaction, } from '@solana/web3.js';
|
|
3
|
+
import bs58 from 'bs58';
|
|
3
4
|
import { config } from '../../config.js';
|
|
5
|
+
import { LiFiErrorCode } from '../../errors/constants.js';
|
|
6
|
+
import { TransactionError } from '../../errors/errors.js';
|
|
4
7
|
import { getStepTransaction } from '../../services/api.js';
|
|
5
8
|
import { base64ToUint8Array } from '../../utils/base64ToUint8Array.js';
|
|
6
|
-
import {
|
|
9
|
+
import { getTransactionFailedMessage } from '../../utils/index.js';
|
|
7
10
|
import { BaseStepExecutor } from '../BaseStepExecutor.js';
|
|
8
11
|
import { checkBalance } from '../checkBalance.js';
|
|
9
12
|
import { getSubstatusMessage } from '../processMessages.js';
|
|
@@ -11,9 +14,7 @@ import { stepComparison } from '../stepComparison.js';
|
|
|
11
14
|
import { sleep } from '../utils.js';
|
|
12
15
|
import { waitForReceivingTransaction } from '../waitForReceivingTransaction.js';
|
|
13
16
|
import { getSolanaConnection } from './connection.js';
|
|
14
|
-
|
|
15
|
-
// https://solana.com/docs/advanced/confirmation
|
|
16
|
-
const TIMEOUT_PERIOD = 60_000;
|
|
17
|
+
import { parseSolanaErrors } from './parseSolanaErrors.js';
|
|
17
18
|
export class SolanaStepExecutor extends BaseStepExecutor {
|
|
18
19
|
constructor(options) {
|
|
19
20
|
super(options);
|
|
@@ -89,19 +90,34 @@ export class SolanaStepExecutor extends BaseStepExecutor {
|
|
|
89
90
|
}
|
|
90
91
|
const versionedTransaction = VersionedTransaction.deserialize(base64ToUint8Array(transactionRequest.data));
|
|
91
92
|
this.checkWalletAdapter(step);
|
|
92
|
-
const
|
|
93
|
+
const signedTxPromise = this.walletAdapter.signTransaction(versionedTransaction);
|
|
94
|
+
// We give users 2 minutes to sign the transaction or it should be considered expired
|
|
95
|
+
const signedTx = await Promise.race([
|
|
96
|
+
signedTxPromise,
|
|
97
|
+
// https://solana.com/docs/advanced/confirmation#transaction-expiration
|
|
98
|
+
// Use 2 minutes to account for fluctuations
|
|
99
|
+
sleep(120_000),
|
|
100
|
+
]);
|
|
101
|
+
if (!signedTx) {
|
|
102
|
+
throw new TransactionError(LiFiErrorCode.TransactionExpired, 'Transaction has expired: blockhash is no longer recent enough.');
|
|
103
|
+
}
|
|
93
104
|
process = this.statusManager.updateProcess(step, process.type, 'PENDING');
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
+
const simulationResult = await connection.simulateTransaction(signedTx, {
|
|
106
|
+
commitment: 'processed',
|
|
107
|
+
replaceRecentBlockhash: true,
|
|
108
|
+
});
|
|
109
|
+
if (simulationResult.value.err) {
|
|
110
|
+
throw new TransactionError(LiFiErrorCode.TransactionSimulationFailed, 'Transaction simulation failed');
|
|
111
|
+
}
|
|
112
|
+
// Create transaction hash (signature)
|
|
113
|
+
const txSignature = bs58.encode(signedTx.signatures[0]);
|
|
114
|
+
// A known weirdness - MAX_RECENT_BLOCKHASHES is 300
|
|
115
|
+
// https://github.com/solana-labs/solana/blob/master/sdk/program/src/clock.rs#L123
|
|
116
|
+
// but MAX_PROCESSING_AGE is 150
|
|
117
|
+
// https://github.com/solana-labs/solana/blob/master/sdk/program/src/clock.rs#L129
|
|
118
|
+
// the blockhash queue in the bank tells you 300 + current slot, but it won't be accepted 150 blocks later.
|
|
119
|
+
// https://solana.com/docs/advanced/confirmation#transaction-expiration
|
|
120
|
+
const lastValidBlockHeight = blockhashResult.lastValidBlockHeight - 150;
|
|
105
121
|
// In the following section, we wait and constantly check for the transaction to be confirmed
|
|
106
122
|
// and resend the transaction if it is not confirmed within a certain time interval
|
|
107
123
|
// thus handling tx retries on the client side rather than relying on the RPC
|
|
@@ -110,21 +126,33 @@ export class SolanaStepExecutor extends BaseStepExecutor {
|
|
|
110
126
|
.confirmTransaction({
|
|
111
127
|
signature: txSignature,
|
|
112
128
|
blockhash: blockhashResult.blockhash,
|
|
113
|
-
lastValidBlockHeight:
|
|
129
|
+
lastValidBlockHeight: lastValidBlockHeight,
|
|
114
130
|
abortSignal: abortController.signal,
|
|
115
131
|
}, 'confirmed')
|
|
116
132
|
.then((result) => result.value);
|
|
117
133
|
let confirmedTx = null;
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
134
|
+
let blockHeight = await connection.getBlockHeight();
|
|
135
|
+
const rawTransactionOptions = {
|
|
136
|
+
// We can skip preflight check after the first transaction has been sent
|
|
137
|
+
// https://solana.com/docs/advanced/retry#the-cost-of-skipping-preflight
|
|
138
|
+
skipPreflight: true,
|
|
139
|
+
// Setting max retries to 0 as we are handling retries manually
|
|
140
|
+
maxRetries: 0,
|
|
141
|
+
// https://solana.com/docs/advanced/confirmation#use-an-appropriate-preflight-commitment-level
|
|
142
|
+
preflightCommitment: 'confirmed',
|
|
143
|
+
};
|
|
144
|
+
const signedTxSerialized = signedTx.serialize();
|
|
145
|
+
// https://solana.com/docs/advanced/retry#customizing-rebroadcast-logic
|
|
146
|
+
while (!confirmedTx && blockHeight < lastValidBlockHeight) {
|
|
147
|
+
await connection.sendRawTransaction(signedTxSerialized, rawTransactionOptions);
|
|
121
148
|
confirmedTx = await Promise.race([
|
|
122
149
|
confirmTransactionPromise,
|
|
123
|
-
sleep(
|
|
150
|
+
sleep(1000),
|
|
124
151
|
]);
|
|
125
152
|
if (confirmedTx) {
|
|
126
153
|
break;
|
|
127
154
|
}
|
|
155
|
+
blockHeight = await connection.getBlockHeight();
|
|
128
156
|
}
|
|
129
157
|
// Stop waiting for tx confirmation
|
|
130
158
|
abortController.abort();
|
|
@@ -139,7 +167,7 @@ export class SolanaStepExecutor extends BaseStepExecutor {
|
|
|
139
167
|
throw new TransactionError(LiFiErrorCode.TransactionFailed, `Transaction failed: ${reason}`);
|
|
140
168
|
}
|
|
141
169
|
if (!confirmedTx) {
|
|
142
|
-
throw new TransactionError(LiFiErrorCode.TransactionExpired, '
|
|
170
|
+
throw new TransactionError(LiFiErrorCode.TransactionExpired, 'Transaction has expired: The block height has exceeded the maximum allowed limit.');
|
|
143
171
|
}
|
|
144
172
|
// Transaction has been confirmed and we can update the process
|
|
145
173
|
process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
|
|
@@ -151,11 +179,10 @@ export class SolanaStepExecutor extends BaseStepExecutor {
|
|
|
151
179
|
}
|
|
152
180
|
}
|
|
153
181
|
catch (e) {
|
|
154
|
-
const error = await
|
|
182
|
+
const error = await parseSolanaErrors(e, step, process);
|
|
155
183
|
process = this.statusManager.updateProcess(step, process.type, 'FAILED', {
|
|
156
184
|
error: {
|
|
157
|
-
message: error.message,
|
|
158
|
-
htmlMessage: error.htmlMessage,
|
|
185
|
+
message: error.cause.message,
|
|
159
186
|
code: error.code,
|
|
160
187
|
},
|
|
161
188
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolanaStepExecutor.js","sourceRoot":"","sources":["../../../core/Solana/SolanaStepExecutor.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,MAAM,6BAA6B,CAAA;AACtE,OAAO,EACL,0CAA0C,EAC1C,oBAAoB,GAGrB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,
|
|
1
|
+
{"version":3,"file":"SolanaStepExecutor.js","sourceRoot":"","sources":["../../../core/Solana/SolanaStepExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,8 @@ import { Connection } from '@solana/web3.js';
|
|
|
3
3
|
import { getRpcUrl } from '../rpc.js';
|
|
4
4
|
let connection = undefined;
|
|
5
5
|
/**
|
|
6
|
-
* getSolanaConnection is just a thin wrapper around getting the
|
|
7
|
-
*
|
|
8
|
-
* @returns - Solana rpc connection
|
|
6
|
+
* getSolanaConnection is just a thin wrapper around getting the connection (RPC provider) for Solana
|
|
7
|
+
* @returns - Solana RPC connection
|
|
9
8
|
*/
|
|
10
9
|
export const getSolanaConnection = async () => {
|
|
11
10
|
if (!connection) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../core/Solana/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,IAAI,UAAU,GAA2B,SAAS,CAAA;AAElD
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../core/Solana/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,IAAI,UAAU,GAA2B,SAAS,CAAA;AAElD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,IAAyB,EAAE;IACjE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3C,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QACnC,OAAO,UAAU,CAAA;IACnB,CAAC;SAAM,CAAC;QACN,OAAO,UAAU,CAAA;IACnB,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BaseError } from '../../errors/baseError.js';
|
|
2
|
+
import { ErrorMessage, LiFiErrorCode } from '../../errors/constants.js';
|
|
3
|
+
import { TransactionError, UnknownError } from '../../errors/errors.js';
|
|
4
|
+
import { SDKError } from '../../errors/SDKError.js';
|
|
5
|
+
export const parseSolanaErrors = async (e, step, process) => {
|
|
6
|
+
if (e instanceof SDKError) {
|
|
7
|
+
e.step = e.step ?? step;
|
|
8
|
+
e.process = e.process ?? process;
|
|
9
|
+
return e;
|
|
10
|
+
}
|
|
11
|
+
const baseError = handleSpecificErrors(e);
|
|
12
|
+
return new SDKError(baseError, step, process);
|
|
13
|
+
};
|
|
14
|
+
const handleSpecificErrors = (e) => {
|
|
15
|
+
if (e.name === 'WalletSignTransactionError') {
|
|
16
|
+
return new TransactionError(LiFiErrorCode.SignatureRejected, e.message, e);
|
|
17
|
+
}
|
|
18
|
+
if (e.name === 'SendTransactionError') {
|
|
19
|
+
return new TransactionError(LiFiErrorCode.TransactionFailed, e.message, e);
|
|
20
|
+
}
|
|
21
|
+
if (e.message?.includes('simulate')) {
|
|
22
|
+
return new TransactionError(LiFiErrorCode.TransactionSimulationFailed, e.message, e);
|
|
23
|
+
}
|
|
24
|
+
if (e instanceof BaseError) {
|
|
25
|
+
return e;
|
|
26
|
+
}
|
|
27
|
+
return new UnknownError(e.message || ErrorMessage.UnknownError, e);
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=parseSolanaErrors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseSolanaErrors.js","sourceRoot":"","sources":["../../../core/Solana/parseSolanaErrors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,CAAQ,EACR,IAAe,EACf,OAAiB,EACE,EAAE;IACrB,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC;QAC1B,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAA;QACvB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,OAAO,CAAA;QAChC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,SAAS,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;IAEzC,OAAO,IAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,CAAM,EAAE,EAAE;IACtC,IAAI,CAAC,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;QAC5C,OAAO,IAAI,gBAAgB,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;QACtC,OAAO,IAAI,gBAAgB,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,gBAAgB,CACzB,aAAa,CAAC,2BAA2B,EACzC,CAAC,CAAC,OAAO,EACT,CAAC,CACF,CAAA;IACH,CAAC;IAED,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAA;IACV,CAAC;IAED,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;AACpE,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { formatUnits } from 'viem';
|
|
2
2
|
import { getTokenBalance } from '../services/balance.js';
|
|
3
|
-
import { BalanceError } from '../
|
|
3
|
+
import { BalanceError } from '../errors/errors.js';
|
|
4
4
|
import { sleep } from './utils.js';
|
|
5
5
|
export const checkBalance = async (walletAddress, step, depth = 0) => {
|
|
6
6
|
const token = await getTokenBalance(walletAddress, step.action.fromToken);
|
|
@@ -30,7 +30,7 @@ export const checkBalance = async (walletAddress, step, depth = 0) => {
|
|
|
30
30
|
`If the problem consists, please delete this transfer and ` +
|
|
31
31
|
`start a new one with a maximum of ${current} ${token.symbol}.`;
|
|
32
32
|
}
|
|
33
|
-
throw new BalanceError('The balance is too low.'
|
|
33
|
+
throw new BalanceError('The balance is too low.');
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkBalance.js","sourceRoot":"","sources":["../../core/checkBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"checkBalance.js","sourceRoot":"","sources":["../../core/checkBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,aAAqB,EACrB,IAAc,EACd,KAAK,GAAG,CAAC,EACM,EAAE;IACjB,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACzE,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA;QACzC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEpD,IAAI,cAAc,GAAG,aAAa,EAAE,CAAC;YACnC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;gBAChB,MAAM,YAAY,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YACpD,CAAC;iBAAM,IACL,CAAC,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,CAAC;gBAClE,WAAc;gBAChB,cAAc,EACd,CAAC;gBACD,mCAAmC;gBACnC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAA;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC1D,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC3D,IAAI,YAAY,GACd,QAAQ,KAAK,CAAC,MAAM,uBAAuB;oBAC3C,uBAAuB,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI;oBAClD,8BAA8B,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI;oBACzD,0BAA0B,CAAA;gBAE5B,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;oBAC1B,YAAY;wBACV,2DAA2D;4BAC3D,qCAAqC,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAA;gBACnE,CAAC;gBAED,MAAM,IAAI,YAAY,CAAC,yBAAyB,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { LiFiErrorCode
|
|
1
|
+
import { LiFiErrorCode } from '../errors/constants.js';
|
|
2
|
+
import { TransactionError } from '../errors/errors.js';
|
|
2
3
|
import { checkStepSlippageThreshold } from './utils.js';
|
|
3
4
|
/**
|
|
4
5
|
* This method checks whether the new and updated Step meets the required exchange rate conditions.
|
|
@@ -27,8 +28,7 @@ export const stepComparison = async (statusManager, oldStep, newStep, allowUserI
|
|
|
27
28
|
}
|
|
28
29
|
if (!allowStepUpdate) {
|
|
29
30
|
// The user declined the new exchange rate, so we are not going to proceed
|
|
30
|
-
throw new TransactionError(LiFiErrorCode.ExchangeRateUpdateCanceled,
|
|
31
|
-
The exchange rate has changed and the previous estimation can not be fulfilled due to value loss.`);
|
|
31
|
+
throw new TransactionError(LiFiErrorCode.ExchangeRateUpdateCanceled, `Exchange rate has changed!\nTransaction was not sent, your funds are still in your wallet.\nThe exchange rate has changed and the previous estimation can not be fulfilled due to value loss.`);
|
|
32
32
|
}
|
|
33
33
|
return statusManager.updateStepInRoute(newStep);
|
|
34
34
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepComparison.js","sourceRoot":"","sources":["../../core/stepComparison.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"stepComparison.js","sourceRoot":"","sources":["../../core/stepComparison.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AAEvD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,aAA4B,EAC5B,OAAiB,EACjB,OAAiB,EACjB,oBAA6B,EAC7B,gBAAmC,EAChB,EAAE;IACrB,uEAAuE;IACvE,IAAI,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QACjD,OAAO,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,eAAoC,CAAA;IACxC,IAAI,oBAAoB,EAAE,CAAC;QACzB,eAAe,GAAG,MAAM,gBAAgB,EAAE,4BAA4B,EAAE,CAAC;YACvE,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;YACtC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;YACtC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;SAChC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,0EAA0E;QAC1E,MAAM,IAAI,gBAAgB,CACxB,aAAa,CAAC,0BAA0B,EACxC,+LAA+L,CAChM,CAAA;IACH,CAAC;IAED,OAAO,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACjD,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getStatus } from '../services/api.js';
|
|
2
|
-
import { ServerError } from '../
|
|
2
|
+
import { ServerError } from '../errors/errors.js';
|
|
3
3
|
import { repeatUntilDone } from '../utils/utils.js';
|
|
4
4
|
import { getSubstatusMessage } from './processMessages.js';
|
|
5
5
|
const TRANSACTION_HASH_OBSERVERS = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waitForReceivingTransaction.js","sourceRoot":"","sources":["../../core/waitForReceivingTransaction.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"waitForReceivingTransaction.js","sourceRoot":"","sources":["../../core/waitForReceivingTransaction.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,0BAA0B,GAA4C,EAAE,CAAA;AAE9E,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAc,EACd,aAA4B,EAC5B,WAAwB,EACxB,IAAc;IAEd,MAAM,UAAU,GAAG,GAAwC,EAAE,CAC3D,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QACpC,IAAI,cAA8B,CAAA;QAClC,IAAI,CAAC;YACH,cAAc,GAAG,MAAM,SAAS,CAAC;gBAC/B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBAClC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAC9B,MAAM;gBACN,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;aACrD,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAA;YACxD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;QAC3B,CAAC;QAED,QAAQ,cAAc,CAAC,MAAM,EAAE,CAAC;YAC9B,KAAK,MAAM;gBACT,OAAO,OAAO,CAAC,cAAc,CAAC,CAAA;YAChC,KAAK,SAAS;gBACZ,aAAa,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE;oBACzD,SAAS,EAAE,cAAc,CAAC,SAAS;oBACnC,gBAAgB,EACd,cAAc,CAAC,gBAAgB;wBAC/B,mBAAmB,CACjB,cAAc,CAAC,MAAM,EACrB,cAAc,CAAC,SAAS,CACzB;oBACH,MAAM,EAAG,cAAiC,CAAC,kBAAkB;iBAC9D,CAAC,CAAA;gBACF,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;YAC3B,KAAK,WAAW;gBACd,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;YAC3B,KAAK,SAAS,CAAC;YACf,KAAK,QAAQ,CAAC;YACd;gBACE,OAAO,MAAM,EAAE,CAAA;QACnB,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,IAAI,MAAM,CAAA;IAEV,IAAI,MAAM,IAAI,0BAA0B,EAAE,CAAC;QACzC,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC;SAAM,CAAC;QACN,0BAA0B,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACvE,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC;IAED,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,WAAW,CAAC,+CAA+C,CAAC,CAAA;IACxE,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { version } from '../version.js';
|
|
2
|
+
import {} from './constants.js';
|
|
3
|
+
// Note: SDKError is used to wrapper and present errors at the top level
|
|
4
|
+
// Where opportunity allows we also add the step and the process related to the error
|
|
5
|
+
export class SDKError extends Error {
|
|
6
|
+
constructor(cause, step, process) {
|
|
7
|
+
const errorMessage = `${cause.message ? `[${cause.name}] ${cause.message}` : 'Unknown error occurred'}\nLI.FI SDK version: ${version}`;
|
|
8
|
+
super(errorMessage);
|
|
9
|
+
Object.defineProperty(this, "step", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: void 0
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(this, "process", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: void 0
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(this, "code", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
configurable: true,
|
|
24
|
+
writable: true,
|
|
25
|
+
value: void 0
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(this, "name", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
configurable: true,
|
|
30
|
+
writable: true,
|
|
31
|
+
value: 'SDKError'
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(this, "cause", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true,
|
|
37
|
+
value: void 0
|
|
38
|
+
});
|
|
39
|
+
this.name = 'SDKError';
|
|
40
|
+
this.step = step;
|
|
41
|
+
this.process = process;
|
|
42
|
+
this.cause = cause;
|
|
43
|
+
this.stack = this.cause.stack;
|
|
44
|
+
this.code = cause.code;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=SDKError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SDKError.js","sourceRoot":"","sources":["../../errors/SDKError.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAkB,MAAM,gBAAgB,CAAA;AAE/C,wEAAwE;AACxE,qFAAqF;AACrF,MAAM,OAAO,QAAS,SAAQ,KAAK;IAOjC,YAAY,KAAgB,EAAE,IAAe,EAAE,OAAiB;QAC9D,MAAM,YAAY,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,wBAAwB,wBAAwB,OAAO,EAAE,CAAA;QACtI,KAAK,CAAC,YAAY,CAAC,CAAA;QARrB;;;;;WAAe;QACf;;;;;WAAiB;QACjB;;;;;WAAe;QACN;;;;mBAAO,UAAU;WAAA;QACjB;;;;;WAAgB;QAKvB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;QAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACxB,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { getRootCause } from './utils/rootCause.js';
|
|
2
|
+
// Note: we use the BaseErrors to capture errors at specific points in the code
|
|
3
|
+
// they can carry addition to help give more context
|
|
4
|
+
export class BaseError extends Error {
|
|
5
|
+
constructor(name, code, message, cause) {
|
|
6
|
+
super(message);
|
|
7
|
+
Object.defineProperty(this, "code", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
configurable: true,
|
|
10
|
+
writable: true,
|
|
11
|
+
value: void 0
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(this, "cause", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
configurable: true,
|
|
16
|
+
writable: true,
|
|
17
|
+
value: void 0
|
|
18
|
+
});
|
|
19
|
+
this.name = name;
|
|
20
|
+
this.code = code;
|
|
21
|
+
this.cause = cause;
|
|
22
|
+
const rootCause = getRootCause(this.cause);
|
|
23
|
+
if (rootCause && rootCause.stack) {
|
|
24
|
+
this.stack = rootCause.stack;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=baseError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseError.js","sourceRoot":"","sources":["../../errors/baseError.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,+EAA+E;AAC/E,qDAAqD;AACrD,MAAM,OAAO,SAAU,SAAQ,KAAK;IAIlC,YAAY,IAAe,EAAE,IAAY,EAAE,OAAe,EAAE,KAAa;QACvE,KAAK,CAAC,OAAO,CAAC,CAAA;QAJhB;;;;;WAAe;QACN;;;;;WAAa;QAKpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAElB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1C,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;QAC9B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export var ErrorName;
|
|
2
|
+
(function (ErrorName) {
|
|
3
|
+
ErrorName["RPCError"] = "RPCError";
|
|
4
|
+
ErrorName["ProviderError"] = "ProviderError";
|
|
5
|
+
ErrorName["ServerError"] = "ServerError";
|
|
6
|
+
ErrorName["TransactionError"] = "TransactionError";
|
|
7
|
+
ErrorName["ValidationError"] = "ValidationError";
|
|
8
|
+
ErrorName["BalanceError"] = "BalanceError";
|
|
9
|
+
ErrorName["NotFoundError"] = "NotFoundError";
|
|
10
|
+
ErrorName["UnknownError"] = "UnknownError";
|
|
11
|
+
ErrorName["SlippageError"] = "SlippageError";
|
|
12
|
+
ErrorName["HTTPError"] = "HTTPError";
|
|
13
|
+
})(ErrorName || (ErrorName = {}));
|
|
14
|
+
export var LiFiErrorCode;
|
|
15
|
+
(function (LiFiErrorCode) {
|
|
16
|
+
LiFiErrorCode[LiFiErrorCode["InternalError"] = 1000] = "InternalError";
|
|
17
|
+
LiFiErrorCode[LiFiErrorCode["ValidationError"] = 1001] = "ValidationError";
|
|
18
|
+
LiFiErrorCode[LiFiErrorCode["TransactionUnderpriced"] = 1002] = "TransactionUnderpriced";
|
|
19
|
+
LiFiErrorCode[LiFiErrorCode["TransactionFailed"] = 1003] = "TransactionFailed";
|
|
20
|
+
LiFiErrorCode[LiFiErrorCode["Timeout"] = 1004] = "Timeout";
|
|
21
|
+
LiFiErrorCode[LiFiErrorCode["ProviderUnavailable"] = 1005] = "ProviderUnavailable";
|
|
22
|
+
LiFiErrorCode[LiFiErrorCode["NotFound"] = 1006] = "NotFound";
|
|
23
|
+
LiFiErrorCode[LiFiErrorCode["ChainSwitchError"] = 1007] = "ChainSwitchError";
|
|
24
|
+
LiFiErrorCode[LiFiErrorCode["TransactionUnprepared"] = 1008] = "TransactionUnprepared";
|
|
25
|
+
LiFiErrorCode[LiFiErrorCode["GasLimitError"] = 1009] = "GasLimitError";
|
|
26
|
+
LiFiErrorCode[LiFiErrorCode["TransactionCanceled"] = 1010] = "TransactionCanceled";
|
|
27
|
+
LiFiErrorCode[LiFiErrorCode["SlippageError"] = 1011] = "SlippageError";
|
|
28
|
+
LiFiErrorCode[LiFiErrorCode["SignatureRejected"] = 1012] = "SignatureRejected";
|
|
29
|
+
LiFiErrorCode[LiFiErrorCode["BalanceError"] = 1013] = "BalanceError";
|
|
30
|
+
LiFiErrorCode[LiFiErrorCode["AllowanceRequired"] = 1014] = "AllowanceRequired";
|
|
31
|
+
LiFiErrorCode[LiFiErrorCode["InsufficientFunds"] = 1015] = "InsufficientFunds";
|
|
32
|
+
LiFiErrorCode[LiFiErrorCode["ExchangeRateUpdateCanceled"] = 1016] = "ExchangeRateUpdateCanceled";
|
|
33
|
+
LiFiErrorCode[LiFiErrorCode["WalletChangedDuringExecution"] = 1017] = "WalletChangedDuringExecution";
|
|
34
|
+
LiFiErrorCode[LiFiErrorCode["TransactionExpired"] = 1018] = "TransactionExpired";
|
|
35
|
+
LiFiErrorCode[LiFiErrorCode["TransactionSimulationFailed"] = 1019] = "TransactionSimulationFailed";
|
|
36
|
+
})(LiFiErrorCode || (LiFiErrorCode = {}));
|
|
37
|
+
export var ErrorMessage;
|
|
38
|
+
(function (ErrorMessage) {
|
|
39
|
+
ErrorMessage["UnknownError"] = "Unknown error occurred.";
|
|
40
|
+
ErrorMessage["SlippageError"] = "The slippage is larger than the defined threshold. Please request a new route to get a fresh quote.";
|
|
41
|
+
ErrorMessage["GasLimitLow"] = "Gas limit is too low.";
|
|
42
|
+
ErrorMessage["TransactionUnderpriced"] = "Transaction is underpriced.";
|
|
43
|
+
ErrorMessage["TransactionReverted"] = "Transaction was reverted.";
|
|
44
|
+
})(ErrorMessage || (ErrorMessage = {}));
|
|
45
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../errors/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,kCAAqB,CAAA;IACrB,4CAA+B,CAAA;IAC/B,wCAA2B,CAAA;IAC3B,kDAAqC,CAAA;IACrC,gDAAmC,CAAA;IACnC,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;IAC/B,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;IAC/B,oCAAuB,CAAA;AACzB,CAAC,EAXW,SAAS,KAAT,SAAS,QAWpB;AAID,MAAM,CAAN,IAAY,aAqBX;AArBD,WAAY,aAAa;IACvB,sEAAoB,CAAA;IACpB,0EAAsB,CAAA;IACtB,wFAA6B,CAAA;IAC7B,8EAAwB,CAAA;IACxB,0DAAc,CAAA;IACd,kFAA0B,CAAA;IAC1B,4DAAe,CAAA;IACf,4EAAuB,CAAA;IACvB,sFAA4B,CAAA;IAC5B,sEAAoB,CAAA;IACpB,kFAA0B,CAAA;IAC1B,sEAAoB,CAAA;IACpB,8EAAwB,CAAA;IACxB,oEAAmB,CAAA;IACnB,8EAAwB,CAAA;IACxB,8EAAwB,CAAA;IACxB,gGAAiC,CAAA;IACjC,oGAAmC,CAAA;IACnC,gFAAyB,CAAA;IACzB,kGAAkC,CAAA;AACpC,CAAC,EArBW,aAAa,KAAb,aAAa,QAqBxB;AAED,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,wDAAwC,CAAA;IACxC,qIAAqH,CAAA;IACrH,qDAAqC,CAAA;IACrC,sEAAsD,CAAA;IACtD,iEAAiD,CAAA;AACnD,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ErrorName, LiFiErrorCode } from './constants.js';
|
|
2
|
+
import { BaseError } from './baseError.js';
|
|
3
|
+
export class RPCError extends BaseError {
|
|
4
|
+
constructor(code, message, cause) {
|
|
5
|
+
super(ErrorName.RPCError, code, message, cause);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export class ProviderError extends BaseError {
|
|
9
|
+
constructor(code, message, cause) {
|
|
10
|
+
super(ErrorName.ProviderError, code, message, cause);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export class TransactionError extends BaseError {
|
|
14
|
+
constructor(code, message, cause) {
|
|
15
|
+
super(ErrorName.TransactionError, code, message, cause);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class UnknownError extends BaseError {
|
|
19
|
+
constructor(message, cause) {
|
|
20
|
+
super(ErrorName.UnknownError, LiFiErrorCode.InternalError, message, cause);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class BalanceError extends BaseError {
|
|
24
|
+
constructor(message, cause) {
|
|
25
|
+
super(ErrorName.BalanceError, LiFiErrorCode.BalanceError, message, cause);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export class ServerError extends BaseError {
|
|
29
|
+
constructor(message) {
|
|
30
|
+
super(ErrorName.ServerError, LiFiErrorCode.InternalError, message);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export class ValidationError extends BaseError {
|
|
34
|
+
constructor(message) {
|
|
35
|
+
super(ErrorName.ValidationError, LiFiErrorCode.ValidationError, message);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../errors/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,OAAO,QAAS,SAAQ,SAAS;IACrC,YAAY,IAAmB,EAAE,OAAe,EAAE,KAAa;QAC7D,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IACjD,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C,YAAY,IAAmB,EAAE,OAAe,EAAE,KAAa;QAC7D,KAAK,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IACtD,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAC7C,YAAY,IAAmB,EAAE,OAAe,EAAE,KAAa;QAC7D,KAAK,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IACzD,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,SAAS;IACzC,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC5E,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,SAAS;IACzC,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;IAC3E,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,SAAS;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IACpE,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;IAC1E,CAAC;CACF"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { LiFiErrorCode } from './constants.js';
|
|
2
|
+
import { BaseError } from './baseError.js';
|
|
3
|
+
import { ErrorName, ErrorMessage } from './constants.js';
|
|
4
|
+
const statusCodeToErrorClassificationMap = new Map([
|
|
5
|
+
[
|
|
6
|
+
400,
|
|
7
|
+
{ type: ErrorName.ValidationError, code: LiFiErrorCode.ValidationError },
|
|
8
|
+
],
|
|
9
|
+
[404, { type: ErrorName.NotFoundError, code: LiFiErrorCode.NotFound }],
|
|
10
|
+
[
|
|
11
|
+
409,
|
|
12
|
+
{
|
|
13
|
+
type: ErrorName.SlippageError,
|
|
14
|
+
code: LiFiErrorCode.SlippageError,
|
|
15
|
+
message: ErrorMessage.SlippageError,
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
[500, { type: ErrorName.ServerError, code: LiFiErrorCode.InternalError }],
|
|
19
|
+
]);
|
|
20
|
+
const getErrorClassificationFromStatusCode = (code) => statusCodeToErrorClassificationMap.get(code) ?? {
|
|
21
|
+
type: ErrorName.ServerError,
|
|
22
|
+
code: LiFiErrorCode.InternalError,
|
|
23
|
+
};
|
|
24
|
+
const createInitialMessage = (response) => {
|
|
25
|
+
const statusCode = response.status || response.status === 0 ? response.status : '';
|
|
26
|
+
const title = response.statusText || '';
|
|
27
|
+
const status = `${statusCode} ${title}`.trim();
|
|
28
|
+
const reason = status ? `status code ${status}` : 'an unknown error';
|
|
29
|
+
return `Request failed with ${reason}`;
|
|
30
|
+
};
|
|
31
|
+
export class HTTPError extends BaseError {
|
|
32
|
+
constructor(response, url, options) {
|
|
33
|
+
const errorClassification = getErrorClassificationFromStatusCode(response.status);
|
|
34
|
+
const additionalMessage = errorClassification?.message
|
|
35
|
+
? `\n${errorClassification.message}`
|
|
36
|
+
: '';
|
|
37
|
+
const message = createInitialMessage(response) + additionalMessage;
|
|
38
|
+
super(ErrorName.HTTPError, errorClassification.code, message);
|
|
39
|
+
Object.defineProperty(this, "response", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
configurable: true,
|
|
42
|
+
writable: true,
|
|
43
|
+
value: void 0
|
|
44
|
+
});
|
|
45
|
+
Object.defineProperty(this, "status", {
|
|
46
|
+
enumerable: true,
|
|
47
|
+
configurable: true,
|
|
48
|
+
writable: true,
|
|
49
|
+
value: void 0
|
|
50
|
+
});
|
|
51
|
+
Object.defineProperty(this, "url", {
|
|
52
|
+
enumerable: true,
|
|
53
|
+
configurable: true,
|
|
54
|
+
writable: true,
|
|
55
|
+
value: void 0
|
|
56
|
+
});
|
|
57
|
+
Object.defineProperty(this, "fetchOptions", {
|
|
58
|
+
enumerable: true,
|
|
59
|
+
configurable: true,
|
|
60
|
+
writable: true,
|
|
61
|
+
value: void 0
|
|
62
|
+
});
|
|
63
|
+
Object.defineProperty(this, "type", {
|
|
64
|
+
enumerable: true,
|
|
65
|
+
configurable: true,
|
|
66
|
+
writable: true,
|
|
67
|
+
value: void 0
|
|
68
|
+
});
|
|
69
|
+
Object.defineProperty(this, "responseBody", {
|
|
70
|
+
enumerable: true,
|
|
71
|
+
configurable: true,
|
|
72
|
+
writable: true,
|
|
73
|
+
value: void 0
|
|
74
|
+
});
|
|
75
|
+
this.type = errorClassification.type;
|
|
76
|
+
this.response = response;
|
|
77
|
+
this.status = response.status;
|
|
78
|
+
this.message = message;
|
|
79
|
+
this.url = url;
|
|
80
|
+
this.fetchOptions = options;
|
|
81
|
+
}
|
|
82
|
+
async buildAdditionalDetails() {
|
|
83
|
+
if (this.type) {
|
|
84
|
+
this.message = `[${this.type}] ${this.message}`;
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
this.responseBody = await this.response.json();
|
|
88
|
+
const spacer = '\n ';
|
|
89
|
+
if (this.responseBody) {
|
|
90
|
+
this.message += `${spacer}responseMessage: ${this.responseBody?.message.toString().replaceAll('\n', spacer)}`;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch { }
|
|
94
|
+
return this;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=httpError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpError.js","sourceRoot":"","sources":["../../errors/httpError.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './baseError.js';
|
|
2
|
+
export * from './constants.js';
|
|
3
|
+
export * from './errors.js';
|
|
4
|
+
export * from './httpError.js';
|
|
5
|
+
export * from './SDKError.js';
|
|
6
|
+
export * from './utils/rootCause.js';
|
|
7
|
+
export * from './utils/baseErrorRootCause.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BaseError } from '../baseError.js';
|
|
2
|
+
import { HTTPError } from '../httpError.js';
|
|
3
|
+
export const getRootCauseBaseError = (e) => {
|
|
4
|
+
let rootCause = e;
|
|
5
|
+
while (rootCause.cause && rootCause.cause instanceof BaseError) {
|
|
6
|
+
rootCause = rootCause.cause;
|
|
7
|
+
}
|
|
8
|
+
return rootCause;
|
|
9
|
+
};
|
|
10
|
+
export const getRootCauseBaseErrorMessage = (e) => {
|
|
11
|
+
const rootCause = getRootCauseBaseError(e);
|
|
12
|
+
return rootCause instanceof HTTPError
|
|
13
|
+
? rootCause.responseBody?.message || rootCause.message
|
|
14
|
+
: rootCause.message;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=baseErrorRootCause.js.map
|