@lifi/sdk 3.6.1 → 3.6.2-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/_cjs/core/BaseStepExecutor.js +13 -38
- package/src/_cjs/core/BaseStepExecutor.js.map +1 -1
- package/src/_cjs/core/EVM/EVMStepExecutor.js +329 -359
- package/src/_cjs/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_cjs/core/EVM/checkAllowance.js +18 -9
- package/src/_cjs/core/EVM/checkAllowance.js.map +1 -1
- package/src/_cjs/core/EVM/checkPermitSupport.js +2 -2
- package/src/_cjs/core/EVM/checkPermitSupport.js.map +1 -1
- package/src/_cjs/core/EVM/permits/allowanceTransfer.js +8 -8
- package/src/_cjs/core/EVM/permits/allowanceTransfer.js.map +1 -1
- package/src/_cjs/core/EVM/permits/getNativePermit.js +12 -10
- package/src/_cjs/core/EVM/permits/getNativePermit.js.map +1 -1
- package/src/_cjs/core/EVM/permits/signPermit2Message.js +27 -26
- package/src/_cjs/core/EVM/permits/signPermit2Message.js.map +1 -1
- package/src/_cjs/core/EVM/permits/signatureTransfer.js +8 -8
- package/src/_cjs/core/EVM/permits/signatureTransfer.js.map +1 -1
- package/src/_cjs/core/EVM/typeguards.js +5 -2
- package/src/_cjs/core/EVM/typeguards.js.map +1 -1
- package/src/_cjs/core/EVM/types.js.map +1 -1
- package/src/_cjs/core/Solana/KeypairWalletAdapter.js +8 -33
- package/src/_cjs/core/Solana/KeypairWalletAdapter.js.map +1 -1
- package/src/_cjs/core/Solana/SolanaStepExecutor.js +97 -112
- package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -1
- package/src/_cjs/core/StatusManager.js +100 -135
- package/src/_cjs/core/StatusManager.js.map +1 -1
- package/src/_cjs/core/UTXO/UTXOStepExecutor.js +136 -151
- package/src/_cjs/core/UTXO/UTXOStepExecutor.js.map +1 -1
- package/src/_cjs/core/prepareRestart.js +7 -1
- package/src/_cjs/core/prepareRestart.js.map +1 -1
- package/src/_cjs/errors/SDKError.js +5 -30
- package/src/_cjs/errors/SDKError.js.map +1 -1
- package/src/_cjs/errors/baseError.js +2 -12
- package/src/_cjs/errors/baseError.js.map +1 -1
- package/src/_cjs/errors/httpError.js +6 -36
- package/src/_cjs/errors/httpError.js.map +1 -1
- package/src/_cjs/index.js +3 -2
- package/src/_cjs/index.js.map +1 -1
- package/src/_cjs/services/api.js +2 -4
- package/src/_cjs/services/api.js.map +1 -1
- package/src/_cjs/utils/withDedupe.js +1 -6
- package/src/_cjs/utils/withDedupe.js.map +1 -1
- package/src/_cjs/version.js +1 -1
- package/src/_cjs/version.js.map +1 -1
- package/src/_esm/core/BaseStepExecutor.js +13 -38
- package/src/_esm/core/BaseStepExecutor.js.map +1 -1
- package/src/_esm/core/EVM/EVMStepExecutor.js +367 -397
- package/src/_esm/core/EVM/EVMStepExecutor.js.map +1 -1
- package/src/_esm/core/EVM/checkAllowance.js +18 -9
- package/src/_esm/core/EVM/checkAllowance.js.map +1 -1
- package/src/_esm/core/EVM/checkPermitSupport.js +2 -2
- package/src/_esm/core/EVM/checkPermitSupport.js.map +1 -1
- package/src/_esm/core/EVM/permits/allowanceTransfer.js +8 -8
- package/src/_esm/core/EVM/permits/allowanceTransfer.js.map +1 -1
- package/src/_esm/core/EVM/permits/getNativePermit.js +12 -10
- package/src/_esm/core/EVM/permits/getNativePermit.js.map +1 -1
- package/src/_esm/core/EVM/permits/signPermit2Message.js +29 -28
- package/src/_esm/core/EVM/permits/signPermit2Message.js.map +1 -1
- package/src/_esm/core/EVM/permits/signatureTransfer.js +8 -8
- package/src/_esm/core/EVM/permits/signatureTransfer.js.map +1 -1
- package/src/_esm/core/EVM/typeguards.js +4 -2
- package/src/_esm/core/EVM/typeguards.js.map +1 -1
- package/src/_esm/core/EVM/types.js.map +1 -1
- package/src/_esm/core/Solana/KeypairWalletAdapter.js +12 -37
- package/src/_esm/core/Solana/KeypairWalletAdapter.js.map +1 -1
- package/src/_esm/core/Solana/SolanaStepExecutor.js +105 -120
- package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -1
- package/src/_esm/core/StatusManager.js +129 -164
- package/src/_esm/core/StatusManager.js.map +1 -1
- package/src/_esm/core/UTXO/UTXOStepExecutor.js +144 -159
- package/src/_esm/core/UTXO/UTXOStepExecutor.js.map +1 -1
- package/src/_esm/core/prepareRestart.js +10 -1
- package/src/_esm/core/prepareRestart.js.map +1 -1
- package/src/_esm/errors/SDKError.js +5 -30
- package/src/_esm/errors/SDKError.js.map +1 -1
- package/src/_esm/errors/baseError.js +2 -12
- package/src/_esm/errors/baseError.js.map +1 -1
- package/src/_esm/errors/httpError.js +6 -36
- package/src/_esm/errors/httpError.js.map +1 -1
- package/src/_esm/index.js +1 -1
- package/src/_esm/index.js.map +1 -1
- package/src/_esm/services/api.js +2 -4
- package/src/_esm/services/api.js.map +1 -1
- package/src/_esm/utils/withDedupe.js +1 -6
- package/src/_esm/utils/withDedupe.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 +2 -3
- package/src/_types/core/EVM/checkAllowance.d.ts.map +1 -1
- package/src/_types/core/EVM/checkPermitSupport.d.ts.map +1 -1
- package/src/_types/core/EVM/permits/allowanceTransfer.d.ts +4 -4
- package/src/_types/core/EVM/permits/allowanceTransfer.d.ts.map +1 -1
- package/src/_types/core/EVM/permits/getNativePermit.d.ts +1 -2
- package/src/_types/core/EVM/permits/getNativePermit.d.ts.map +1 -1
- package/src/_types/core/EVM/permits/signPermit2Message.d.ts +2 -11
- package/src/_types/core/EVM/permits/signPermit2Message.d.ts.map +1 -1
- package/src/_types/core/EVM/permits/signatureTransfer.d.ts +2 -2
- package/src/_types/core/EVM/permits/signatureTransfer.d.ts.map +1 -1
- package/src/_types/core/EVM/permits/types.d.ts +3 -9
- package/src/_types/core/EVM/permits/types.d.ts.map +1 -1
- package/src/_types/core/EVM/typeguards.d.ts +6 -2
- package/src/_types/core/EVM/typeguards.d.ts.map +1 -1
- package/src/_types/core/EVM/types.d.ts +2 -5
- package/src/_types/core/EVM/types.d.ts.map +1 -1
- package/src/_types/core/prepareRestart.d.ts.map +1 -1
- package/src/_types/index.d.ts +1 -1
- package/src/_types/index.d.ts.map +1 -1
- package/src/_types/services/api.d.ts +2 -2
- package/src/_types/services/api.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 +39 -44
- package/src/core/EVM/checkAllowance.ts +28 -19
- package/src/core/EVM/checkPermitSupport.ts +14 -2
- package/src/core/EVM/permits/allowanceTransfer.ts +14 -10
- package/src/core/EVM/permits/getNativePermit.ts +13 -11
- package/src/core/EVM/permits/signPermit2Message.ts +43 -63
- package/src/core/EVM/permits/signatureTransfer.ts +10 -10
- package/src/core/EVM/permits/types.ts +3 -16
- package/src/core/EVM/typeguards.ts +14 -4
- package/src/core/EVM/types.ts +2 -6
- package/src/core/prepareRestart.ts +14 -2
- package/src/index.ts +1 -1
- package/src/services/api.ts +3 -6
- package/src/version.ts +1 -1
- package/src/_cjs/core/EVM/permits/signNativePermitMessage.js +0 -20
- package/src/_cjs/core/EVM/permits/signNativePermitMessage.js.map +0 -1
- package/src/_cjs/core/EVM/permits/utils.js +0 -31
- package/src/_cjs/core/EVM/permits/utils.js.map +0 -1
- package/src/_esm/core/EVM/permits/signNativePermitMessage.js +0 -16
- package/src/_esm/core/EVM/permits/signNativePermitMessage.js.map +0 -1
- package/src/_esm/core/EVM/permits/utils.js +0 -26
- package/src/_esm/core/EVM/permits/utils.js.map +0 -1
- package/src/_types/core/EVM/permits/signNativePermitMessage.d.ts +0 -4
- package/src/_types/core/EVM/permits/signNativePermitMessage.d.ts.map +0 -1
- package/src/_types/core/EVM/permits/utils.d.ts +0 -6
- package/src/_types/core/EVM/permits/utils.d.ts.map +0 -1
- package/src/core/EVM/permits/signNativePermitMessage.ts +0 -27
- package/src/core/EVM/permits/utils.ts +0 -40
|
@@ -13,175 +13,160 @@ import { waitForDestinationChainTransaction } from '../waitForDestinationChainTr
|
|
|
13
13
|
import { getUTXOPublicClient } from './getUTXOPublicClient.js';
|
|
14
14
|
import { parseUTXOErrors } from './parseUTXOErrors.js';
|
|
15
15
|
export class UTXOStepExecutor extends BaseStepExecutor {
|
|
16
|
+
client;
|
|
16
17
|
constructor(options) {
|
|
17
18
|
super(options);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
this.client = options.client;
|
|
20
|
+
}
|
|
21
|
+
checkClient = (step) => {
|
|
22
|
+
// TODO: check chain and possibly implement chain switch?
|
|
23
|
+
// Prevent execution of the quote by wallet different from the one which requested the quote
|
|
24
|
+
if (this.client.account?.address !== step.action.fromAddress) {
|
|
25
|
+
throw new TransactionError(LiFiErrorCode.WalletChangedDuringExecution, 'The wallet address that requested the quote does not match the wallet address attempting to sign the transaction.');
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
executeStep = async (step) => {
|
|
29
|
+
step.execution = this.statusManager.initExecutionObject(step);
|
|
30
|
+
const fromChain = await config.getChainById(step.action.fromChainId);
|
|
31
|
+
const toChain = await config.getChainById(step.action.toChainId);
|
|
32
|
+
const isBridgeExecution = fromChain.id !== toChain.id;
|
|
33
|
+
const currentProcessType = isBridgeExecution ? 'CROSS_CHAIN' : 'SWAP';
|
|
34
|
+
let process = this.statusManager.findOrCreateProcess({
|
|
35
|
+
step,
|
|
36
|
+
type: currentProcessType,
|
|
37
|
+
chainId: fromChain.id,
|
|
23
38
|
});
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
39
|
+
const publicClient = await getUTXOPublicClient(ChainId.BTC);
|
|
40
|
+
if (process.status !== 'DONE') {
|
|
41
|
+
try {
|
|
42
|
+
let txHash;
|
|
43
|
+
let txHex;
|
|
44
|
+
if (process.txHash) {
|
|
45
|
+
// Make sure that the chain is still correct
|
|
46
|
+
this.checkClient(step);
|
|
47
|
+
// Wait for exiting transaction
|
|
48
|
+
txHash = process.txHash;
|
|
49
|
+
txHex = process.txHex;
|
|
33
50
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
process = this.statusManager.updateProcess(step, process.type, 'STARTED');
|
|
65
|
-
// Check balance
|
|
66
|
-
await checkBalance(this.client.account.address, step);
|
|
67
|
-
// Create new transaction
|
|
68
|
-
if (!step.transactionRequest) {
|
|
69
|
-
const { execution, ...stepBase } = step;
|
|
70
|
-
const updatedStep = await getStepTransaction(stepBase);
|
|
71
|
-
const comparedStep = await stepComparison(this.statusManager, step, updatedStep, this.allowUserInteraction, this.executionOptions);
|
|
72
|
-
Object.assign(step, {
|
|
73
|
-
...comparedStep,
|
|
74
|
-
execution: step.execution,
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
if (!step.transactionRequest?.data) {
|
|
78
|
-
throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
|
|
79
|
-
}
|
|
80
|
-
process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
|
|
81
|
-
if (!this.allowUserInteraction) {
|
|
82
|
-
return step;
|
|
83
|
-
}
|
|
84
|
-
let transactionRequest = {
|
|
85
|
-
data: step.transactionRequest.data,
|
|
86
|
-
};
|
|
87
|
-
if (this.executionOptions?.updateTransactionRequestHook) {
|
|
88
|
-
const customizedTransactionRequest = await this.executionOptions.updateTransactionRequestHook({
|
|
89
|
-
requestType: 'transaction',
|
|
90
|
-
...transactionRequest,
|
|
91
|
-
});
|
|
92
|
-
transactionRequest = {
|
|
93
|
-
...transactionRequest,
|
|
94
|
-
...customizedTransactionRequest,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
if (!transactionRequest.data) {
|
|
98
|
-
throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
|
|
99
|
-
}
|
|
100
|
-
this.checkClient(step);
|
|
101
|
-
const psbtHex = transactionRequest.data;
|
|
102
|
-
const psbt = Psbt.fromHex(psbtHex, { network: networks.bitcoin });
|
|
103
|
-
const inputsToSign = Array.from(psbt.data.inputs
|
|
104
|
-
.reduce((map, input, index) => {
|
|
105
|
-
const accountAddress = input.witnessUtxo
|
|
106
|
-
? address.fromOutputScript(input.witnessUtxo.script, networks.bitcoin)
|
|
107
|
-
: this.client.account?.address;
|
|
108
|
-
if (map.has(accountAddress)) {
|
|
109
|
-
map.get(accountAddress).signingIndexes.push(index);
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
map.set(accountAddress, {
|
|
113
|
-
address: accountAddress,
|
|
114
|
-
sigHash: 1, // Default to Transaction.SIGHASH_ALL - 1
|
|
115
|
-
signingIndexes: [index],
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
return map;
|
|
119
|
-
}, new Map())
|
|
120
|
-
.values());
|
|
121
|
-
// We give users 10 minutes to sign the transaction or it should be considered expired
|
|
122
|
-
const signedPsbtHex = await withTimeout(() => signPsbt(this.client, {
|
|
123
|
-
psbt: psbtHex,
|
|
124
|
-
inputsToSign: inputsToSign,
|
|
125
|
-
finalize: false,
|
|
126
|
-
}), {
|
|
127
|
-
timeout: 600_000,
|
|
128
|
-
errorInstance: new TransactionError(LiFiErrorCode.TransactionExpired, 'Transaction has expired.'),
|
|
129
|
-
});
|
|
130
|
-
const signedPsbt = Psbt.fromHex(signedPsbtHex).finalizeAllInputs();
|
|
131
|
-
txHex = signedPsbt.extractTransaction().toHex();
|
|
132
|
-
txHash = await publicClient.sendUTXOTransaction({
|
|
133
|
-
hex: txHex,
|
|
134
|
-
});
|
|
135
|
-
process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
|
|
136
|
-
txHash: txHash,
|
|
137
|
-
txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${txHash}`,
|
|
138
|
-
txHex,
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
let replacementReason;
|
|
142
|
-
const transaction = await waitForTransaction(publicClient, {
|
|
143
|
-
txId: txHash,
|
|
144
|
-
txHex,
|
|
145
|
-
senderAddress: this.client.account?.address,
|
|
146
|
-
onReplaced: (response) => {
|
|
147
|
-
replacementReason = response.reason;
|
|
148
|
-
process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
|
|
149
|
-
txHash: response.transaction.txid,
|
|
150
|
-
txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${response.transaction.txid}`,
|
|
151
|
-
});
|
|
152
|
-
},
|
|
51
|
+
else {
|
|
52
|
+
process = this.statusManager.updateProcess(step, process.type, 'STARTED');
|
|
53
|
+
// Check balance
|
|
54
|
+
await checkBalance(this.client.account.address, step);
|
|
55
|
+
// Create new transaction
|
|
56
|
+
if (!step.transactionRequest) {
|
|
57
|
+
const { execution, ...stepBase } = step;
|
|
58
|
+
const updatedStep = await getStepTransaction(stepBase);
|
|
59
|
+
const comparedStep = await stepComparison(this.statusManager, step, updatedStep, this.allowUserInteraction, this.executionOptions);
|
|
60
|
+
Object.assign(step, {
|
|
61
|
+
...comparedStep,
|
|
62
|
+
execution: step.execution,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if (!step.transactionRequest?.data) {
|
|
66
|
+
throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
|
|
67
|
+
}
|
|
68
|
+
process = this.statusManager.updateProcess(step, process.type, 'ACTION_REQUIRED');
|
|
69
|
+
if (!this.allowUserInteraction) {
|
|
70
|
+
return step;
|
|
71
|
+
}
|
|
72
|
+
let transactionRequest = {
|
|
73
|
+
data: step.transactionRequest.data,
|
|
74
|
+
};
|
|
75
|
+
if (this.executionOptions?.updateTransactionRequestHook) {
|
|
76
|
+
const customizedTransactionRequest = await this.executionOptions.updateTransactionRequestHook({
|
|
77
|
+
requestType: 'transaction',
|
|
78
|
+
...transactionRequest,
|
|
153
79
|
});
|
|
154
|
-
|
|
155
|
-
|
|
80
|
+
transactionRequest = {
|
|
81
|
+
...transactionRequest,
|
|
82
|
+
...customizedTransactionRequest,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (!transactionRequest.data) {
|
|
86
|
+
throw new TransactionError(LiFiErrorCode.TransactionUnprepared, 'Unable to prepare transaction.');
|
|
87
|
+
}
|
|
88
|
+
this.checkClient(step);
|
|
89
|
+
const psbtHex = transactionRequest.data;
|
|
90
|
+
const psbt = Psbt.fromHex(psbtHex, { network: networks.bitcoin });
|
|
91
|
+
const inputsToSign = Array.from(psbt.data.inputs
|
|
92
|
+
.reduce((map, input, index) => {
|
|
93
|
+
const accountAddress = input.witnessUtxo
|
|
94
|
+
? address.fromOutputScript(input.witnessUtxo.script, networks.bitcoin)
|
|
95
|
+
: this.client.account?.address;
|
|
96
|
+
if (map.has(accountAddress)) {
|
|
97
|
+
map.get(accountAddress).signingIndexes.push(index);
|
|
156
98
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
99
|
+
else {
|
|
100
|
+
map.set(accountAddress, {
|
|
101
|
+
address: accountAddress,
|
|
102
|
+
sigHash: 1, // Default to Transaction.SIGHASH_ALL - 1
|
|
103
|
+
signingIndexes: [index],
|
|
161
104
|
});
|
|
162
105
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
106
|
+
return map;
|
|
107
|
+
}, new Map())
|
|
108
|
+
.values());
|
|
109
|
+
// We give users 10 minutes to sign the transaction or it should be considered expired
|
|
110
|
+
const signedPsbtHex = await withTimeout(() => signPsbt(this.client, {
|
|
111
|
+
psbt: psbtHex,
|
|
112
|
+
inputsToSign: inputsToSign,
|
|
113
|
+
finalize: false,
|
|
114
|
+
}), {
|
|
115
|
+
timeout: 600_000,
|
|
116
|
+
errorInstance: new TransactionError(LiFiErrorCode.TransactionExpired, 'Transaction has expired.'),
|
|
117
|
+
});
|
|
118
|
+
const signedPsbt = Psbt.fromHex(signedPsbtHex).finalizeAllInputs();
|
|
119
|
+
txHex = signedPsbt.extractTransaction().toHex();
|
|
120
|
+
txHash = await publicClient.sendUTXOTransaction({
|
|
121
|
+
hex: txHex,
|
|
122
|
+
});
|
|
123
|
+
process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
|
|
124
|
+
txHash: txHash,
|
|
125
|
+
txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${txHash}`,
|
|
126
|
+
txHex,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
let replacementReason;
|
|
130
|
+
const transaction = await waitForTransaction(publicClient, {
|
|
131
|
+
txId: txHash,
|
|
132
|
+
txHex,
|
|
133
|
+
senderAddress: this.client.account?.address,
|
|
134
|
+
onReplaced: (response) => {
|
|
135
|
+
replacementReason = response.reason;
|
|
136
|
+
process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
|
|
137
|
+
txHash: response.transaction.txid,
|
|
138
|
+
txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${response.transaction.txid}`,
|
|
174
139
|
});
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
if (replacementReason === 'cancelled') {
|
|
143
|
+
throw new TransactionError(LiFiErrorCode.TransactionCanceled, 'User canceled transaction.');
|
|
144
|
+
}
|
|
145
|
+
if (transaction.txid !== txHash) {
|
|
146
|
+
process = this.statusManager.updateProcess(step, process.type, 'PENDING', {
|
|
147
|
+
txHash: transaction.txid,
|
|
148
|
+
txLink: `${fromChain.metamask.blockExplorerUrls[0]}tx/${transaction.txid}`,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
if (isBridgeExecution) {
|
|
152
|
+
process = this.statusManager.updateProcess(step, process.type, 'DONE');
|
|
178
153
|
}
|
|
179
|
-
await waitForDestinationChainTransaction(step, process, fromChain, toChain, this.statusManager, 10_000);
|
|
180
|
-
// DONE
|
|
181
|
-
return step;
|
|
182
154
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
155
|
+
catch (e) {
|
|
156
|
+
const error = await parseUTXOErrors(e, step, process);
|
|
157
|
+
process = this.statusManager.updateProcess(step, process.type, 'FAILED', {
|
|
158
|
+
error: {
|
|
159
|
+
message: error.cause.message,
|
|
160
|
+
code: error.code,
|
|
161
|
+
},
|
|
162
|
+
});
|
|
163
|
+
this.statusManager.updateExecution(step, 'FAILED');
|
|
164
|
+
throw error;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
await waitForDestinationChainTransaction(step, process, fromChain, toChain, this.statusManager, 10_000);
|
|
168
|
+
// DONE
|
|
169
|
+
return step;
|
|
170
|
+
};
|
|
186
171
|
}
|
|
187
172
|
//# sourceMappingURL=UTXOStepExecutor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UTXOStepExecutor.js","sourceRoot":"","sources":["../../../core/UTXO/UTXOStepExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAAe,WAAW,EAAE,MAAM,MAAM,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAMrD,OAAO,EAAE,kCAAkC,EAAE,MAAM,0CAA0C,CAAA;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAMtD,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;
|
|
1
|
+
{"version":3,"file":"UTXOStepExecutor.js","sourceRoot":"","sources":["../../../core/UTXO/UTXOStepExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,16 @@ export const prepareRestart = async (route) => {
|
|
|
2
2
|
for (let index = 0; index < route.steps.length; index++) {
|
|
3
3
|
const step = route.steps[index];
|
|
4
4
|
if (step.execution) {
|
|
5
|
-
|
|
5
|
+
// Find the index of the last process that has tx hash
|
|
6
|
+
const lastValidIndex = step.execution.process.findLastIndex((process) => !!process.txHash);
|
|
7
|
+
// Keep all processes up to the one with tx hash
|
|
8
|
+
if (lastValidIndex >= 0) {
|
|
9
|
+
step.execution.process = step.execution.process.slice(0, lastValidIndex + 1);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
// If no tx hash exists, reset the process array
|
|
13
|
+
step.execution.process = [];
|
|
14
|
+
}
|
|
6
15
|
}
|
|
7
16
|
step.transactionRequest = undefined;
|
|
8
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareRestart.js","sourceRoot":"","sources":["../../core/prepareRestart.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,KAAoB,EAAE,EAAE;IAC3D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"prepareRestart.js","sourceRoot":"","sources":["../../core/prepareRestart.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,KAAoB,EAAE,EAAE;IAC3D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,sDAAsD;YACtD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CACzD,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAC9B,CAAA;YAED,gDAAgD;YAChD,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CACnD,CAAC,EACD,cAAc,GAAG,CAAC,CACnB,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,gDAAgD;gBAChD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAA;YAC7B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAA;IACrC,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -2,39 +2,14 @@ import { version } from '../version.js';
|
|
|
2
2
|
// Note: SDKError is used to wrapper and present errors at the top level
|
|
3
3
|
// Where opportunity allows we also add the step and the process related to the error
|
|
4
4
|
export class SDKError extends Error {
|
|
5
|
+
step;
|
|
6
|
+
process;
|
|
7
|
+
code;
|
|
8
|
+
name = 'SDKError';
|
|
9
|
+
cause;
|
|
5
10
|
constructor(cause, step, process) {
|
|
6
11
|
const errorMessage = `${cause.message ? `[${cause.name}] ${cause.message}` : 'Unknown error occurred'}\nLI.FI SDK version: ${version}`;
|
|
7
12
|
super(errorMessage);
|
|
8
|
-
Object.defineProperty(this, "step", {
|
|
9
|
-
enumerable: true,
|
|
10
|
-
configurable: true,
|
|
11
|
-
writable: true,
|
|
12
|
-
value: void 0
|
|
13
|
-
});
|
|
14
|
-
Object.defineProperty(this, "process", {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
configurable: true,
|
|
17
|
-
writable: true,
|
|
18
|
-
value: void 0
|
|
19
|
-
});
|
|
20
|
-
Object.defineProperty(this, "code", {
|
|
21
|
-
enumerable: true,
|
|
22
|
-
configurable: true,
|
|
23
|
-
writable: true,
|
|
24
|
-
value: void 0
|
|
25
|
-
});
|
|
26
|
-
Object.defineProperty(this, "name", {
|
|
27
|
-
enumerable: true,
|
|
28
|
-
configurable: true,
|
|
29
|
-
writable: true,
|
|
30
|
-
value: 'SDKError'
|
|
31
|
-
});
|
|
32
|
-
Object.defineProperty(this, "cause", {
|
|
33
|
-
enumerable: true,
|
|
34
|
-
configurable: true,
|
|
35
|
-
writable: true,
|
|
36
|
-
value: void 0
|
|
37
|
-
});
|
|
38
13
|
this.name = 'SDKError';
|
|
39
14
|
this.step = step;
|
|
40
15
|
this.process = process;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SDKError.js","sourceRoot":"","sources":["../../errors/SDKError.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,wEAAwE;AACxE,qFAAqF;AACrF,MAAM,OAAO,QAAS,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"SDKError.js","sourceRoot":"","sources":["../../errors/SDKError.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,wEAAwE;AACxE,qFAAqF;AACrF,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,IAAI,CAAW;IACf,OAAO,CAAU;IACjB,IAAI,CAAW;IACN,IAAI,GAAG,UAAU,CAAA;IACjB,KAAK,CAAW;IAEzB,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;QACnB,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"}
|
|
@@ -2,20 +2,10 @@ import { getRootCause } from './utils/rootCause.js';
|
|
|
2
2
|
// Note: we use the BaseErrors to capture errors at specific points in the code
|
|
3
3
|
// they can carry addition to help give more context
|
|
4
4
|
export class BaseError extends Error {
|
|
5
|
+
code;
|
|
6
|
+
cause;
|
|
5
7
|
constructor(name, code, message, cause) {
|
|
6
8
|
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
9
|
this.name = name;
|
|
20
10
|
this.code = code;
|
|
21
11
|
this.cause = cause;
|
|
@@ -1 +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,oDAAoD;AACpD,MAAM,OAAO,SAAU,SAAQ,KAAK;
|
|
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,oDAAoD;AACpD,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,IAAI,CAAW;IACN,KAAK,CAAQ;IAEtB,YAAY,IAAe,EAAE,IAAY,EAAE,OAAe,EAAE,KAAa;QACvE,KAAK,CAAC,OAAO,CAAC,CAAA;QAEd,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,EAAE,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;QAC9B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -29,6 +29,12 @@ const createInitialMessage = (response) => {
|
|
|
29
29
|
return `Request failed with ${reason}`;
|
|
30
30
|
};
|
|
31
31
|
export class HTTPError extends BaseError {
|
|
32
|
+
response;
|
|
33
|
+
status;
|
|
34
|
+
url;
|
|
35
|
+
fetchOptions;
|
|
36
|
+
type;
|
|
37
|
+
responseBody;
|
|
32
38
|
constructor(response, url, options) {
|
|
33
39
|
const errorClassification = getErrorClassificationFromStatusCode(response.status);
|
|
34
40
|
const additionalMessage = errorClassification?.message
|
|
@@ -36,42 +42,6 @@ export class HTTPError extends BaseError {
|
|
|
36
42
|
: '';
|
|
37
43
|
const message = createInitialMessage(response) + additionalMessage;
|
|
38
44
|
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
45
|
this.type = errorClassification.type;
|
|
76
46
|
this.response = response;
|
|
77
47
|
this.status = response.status;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpError.js","sourceRoot":"","sources":["../../errors/httpError.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAQxD,MAAM,kCAAkC,GAAG,IAAI,GAAG,CAAC;IACjD;QACE,GAAG;QACH,EAAE,IAAI,EAAE,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,aAAa,CAAC,eAAe,EAAE;KACzE;IACD,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC;IACtE;QACE,GAAG;QACH;YACE,IAAI,EAAE,SAAS,CAAC,aAAa;YAC7B,IAAI,EAAE,aAAa,CAAC,aAAa;YACjC,OAAO,EAAE,YAAY,CAAC,aAAa;SACpC;KACF;IACD,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,aAAa,CAAC,aAAa,EAAE,CAAC;CAC1E,CAAC,CAAA;AAEF,MAAM,oCAAoC,GAAG,CAAC,IAAY,EAAE,EAAE,CAC5D,kCAAkC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;IAC9C,IAAI,EAAE,SAAS,CAAC,WAAW;IAC3B,IAAI,EAAE,aAAa,CAAC,aAAa;CAClC,CAAA;AAEH,MAAM,oBAAoB,GAAG,CAAC,QAAkB,EAAE,EAAE;IAClD,MAAM,UAAU,GACd,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IACjE,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAA;IACvC,MAAM,MAAM,GAAG,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,CAAA;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,MAAM,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAA;IACpE,OAAO,uBAAuB,MAAM,EAAE,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,OAAO,SAAU,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"httpError.js","sourceRoot":"","sources":["../../errors/httpError.ts"],"names":[],"mappings":"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"}
|
package/src/_esm/index.js
CHANGED
|
@@ -8,7 +8,7 @@ export { revokeTokenApproval, setTokenAllowance, } from './core/EVM/setAllowance
|
|
|
8
8
|
export { isEVM } from './core/EVM/types.js';
|
|
9
9
|
export { isBatchingSupported } from './core/EVM/isBatchingSupported.js';
|
|
10
10
|
export { isExtendedChain, convertExtendedChain } from './core/EVM/utils.js';
|
|
11
|
-
export { isRelayerStep } from './core/EVM/typeguards.js';
|
|
11
|
+
export { isRelayerStep, isGaslessStep } from './core/EVM/typeguards.js';
|
|
12
12
|
export { StatusManager } from './core/StatusManager.js';
|
|
13
13
|
export { executeRoute, getActiveRoute, getActiveRoutes, resumeRoute, stopRouteExecution, updateRouteExecution, } from './core/execution.js';
|
|
14
14
|
export { isSVMAddress } from './core/Solana/isSVMAddress.js';
|
package/src/_esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,qDAAqD;AACrD,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,qDAAqD;AACrD,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAKvE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AA4B5B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAKjD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EACL,SAAS,EACT,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,QAAQ,EACR,eAAe,EACf,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,qBAAqB,GACtB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EACL,YAAY,EACZ,SAAS,EACT,aAAa,GACd,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,eAAe,GAChB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA"}
|
package/src/_esm/services/api.js
CHANGED
|
@@ -219,10 +219,8 @@ export const getRelayerQuote = async (params, options) => {
|
|
|
219
219
|
*/
|
|
220
220
|
export const relayTransaction = async (params, options) => {
|
|
221
221
|
const requiredParameters = [
|
|
222
|
-
'
|
|
223
|
-
'
|
|
224
|
-
'permits',
|
|
225
|
-
'callData',
|
|
222
|
+
'typedData',
|
|
223
|
+
'transactionRequest',
|
|
226
224
|
];
|
|
227
225
|
for (const requiredParameter of requiredParameters) {
|
|
228
226
|
if (!params[requiredParameter]) {
|