@haven-fi/solauto-sdk 1.0.155 → 1.0.156
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/dist/clients/solautoMarginfiClient.js +1 -1
- package/dist/transactions/transactionsManager.d.ts +6 -25
- package/dist/transactions/transactionsManager.d.ts.map +1 -1
- package/dist/transactions/transactionsManager.js +31 -23
- package/package.json +1 -1
- package/src/clients/solautoMarginfiClient.ts +2 -2
- package/src/transactions/transactionsManager.ts +72 -66
|
@@ -415,7 +415,7 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
|
|
|
415
415
|
if (state) {
|
|
416
416
|
return state;
|
|
417
417
|
}
|
|
418
|
-
const freshState = await (0, marginfiUtils_1.getMarginfiAccountPositionState)(this.umi, this.marginfiAccountPk,
|
|
418
|
+
const freshState = await (0, marginfiUtils_1.getMarginfiAccountPositionState)(this.umi, this.marginfiAccountPk, undefined, undefined, this.livePositionUpdates);
|
|
419
419
|
if (freshState) {
|
|
420
420
|
this.log("Fresh state", freshState);
|
|
421
421
|
const supplyPrice = (0, generalUtils_1.safeGetPrice)(freshState?.supply.mint);
|
|
@@ -1,16 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TransactionBuilder } from "@metaplex-foundation/umi";
|
|
2
2
|
import { SolautoClient } from "../clients/solautoClient";
|
|
3
3
|
import { ErrorsToThrow } from "../utils/generalUtils";
|
|
4
4
|
import { PriorityFeeSetting, TransactionRunType } from "../types";
|
|
5
|
-
import { ReferralStateManager
|
|
6
|
-
declare class LookupTables {
|
|
7
|
-
defaultLuts: string[];
|
|
8
|
-
private umi;
|
|
9
|
-
cache: AddressLookupTableInput[];
|
|
10
|
-
constructor(defaultLuts: string[], umi: Umi);
|
|
11
|
-
getLutInputs(additionalAddresses: string[]): Promise<AddressLookupTableInput[]>;
|
|
12
|
-
reset(): void;
|
|
13
|
-
}
|
|
5
|
+
import { ReferralStateManager } from "../clients";
|
|
14
6
|
export declare class TransactionItem {
|
|
15
7
|
fetchTx: (attemptNum: number) => Promise<{
|
|
16
8
|
tx: TransactionBuilder;
|
|
@@ -27,18 +19,6 @@ export declare class TransactionItem {
|
|
|
27
19
|
refetch(attemptNum: number): Promise<void>;
|
|
28
20
|
uniqueAccounts(): string[];
|
|
29
21
|
}
|
|
30
|
-
declare class TransactionSet {
|
|
31
|
-
private txHandler;
|
|
32
|
-
lookupTables: LookupTables;
|
|
33
|
-
items: TransactionItem[];
|
|
34
|
-
constructor(txHandler: TxHandler, lookupTables: LookupTables, items?: TransactionItem[]);
|
|
35
|
-
fitsWith(item: TransactionItem): Promise<boolean>;
|
|
36
|
-
add(...items: TransactionItem[]): void;
|
|
37
|
-
refetchAll(attemptNum: number): Promise<void>;
|
|
38
|
-
getSingleTransaction(): Promise<TransactionBuilder>;
|
|
39
|
-
lutAddresses(): string[];
|
|
40
|
-
name(): string;
|
|
41
|
-
}
|
|
42
22
|
export declare enum TransactionStatus {
|
|
43
23
|
Skipped = "Skipped",
|
|
44
24
|
Processing = "Processing",
|
|
@@ -49,6 +29,7 @@ export declare enum TransactionStatus {
|
|
|
49
29
|
export type TransactionManagerStatuses = {
|
|
50
30
|
name: string;
|
|
51
31
|
status: TransactionStatus;
|
|
32
|
+
simulationSuccessful?: boolean;
|
|
52
33
|
txSig?: string;
|
|
53
34
|
attemptNum: number;
|
|
54
35
|
}[];
|
|
@@ -64,10 +45,10 @@ export declare class TransactionsManager {
|
|
|
64
45
|
private lookupTables;
|
|
65
46
|
constructor(txHandler: SolautoClient | ReferralStateManager, statusCallback?: ((statuses: TransactionManagerStatuses) => void) | undefined, txType?: TransactionRunType | undefined, mustBeAtomic?: boolean | undefined, errorsToThrow?: ErrorsToThrow | undefined, retries?: number, retryDelay?: number);
|
|
66
47
|
private assembleTransactionSets;
|
|
67
|
-
updateStatus
|
|
68
|
-
debugAccounts
|
|
48
|
+
private updateStatus;
|
|
49
|
+
private debugAccounts;
|
|
69
50
|
clientSend(transactions: TransactionItem[], prioritySetting?: PriorityFeeSetting): Promise<TransactionManagerStatuses>;
|
|
70
51
|
send(items: TransactionItem[], prioritySetting?: PriorityFeeSetting, initialized?: boolean): Promise<TransactionManagerStatuses>;
|
|
52
|
+
private sendTransaction;
|
|
71
53
|
}
|
|
72
|
-
export {};
|
|
73
54
|
//# sourceMappingURL=transactionsManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzD,OAAO,EACL,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAsC7D,qBAAa,eAAe;IAKjB,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CACV;QAAE,EAAE,EAAE,kBAAkB,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CACxE;IACM,IAAI,CAAC,EAAE,MAAM;IATtB,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;gBAGf,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CACV;QAAE,EAAE,EAAE,kBAAkB,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CACxE,EACM,IAAI,CAAC,EAAE,MAAM,YAAA;IAGhB,UAAU;IAIV,OAAO,CAAC,UAAU,EAAE,MAAM;IAMhC,cAAc,IAAI,MAAM,EAAE;CAY3B;AAgFD,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,EAAE,CAAC;AAEJ,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;IAVpB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAe;gBAGzB,SAAS,EAAE,aAAa,GAAG,oBAAoB,EAC/C,cAAc,CAAC,GAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,aAAA,EAC/D,MAAM,CAAC,EAAE,kBAAkB,YAAA,EAC3B,YAAY,CAAC,EAAE,OAAO,YAAA,EACtB,aAAa,CAAC,EAAE,aAAa,YAAA,EAC7B,OAAO,GAAE,MAAU,EACnB,UAAU,GAAE,MAAY;YAQpB,uBAAuB;IAwCrC,OAAO,CAAC,YAAY;YAwCN,aAAa;IAoBd,UAAU,CACrB,YAAY,EAAE,eAAe,EAAE,EAC/B,eAAe,CAAC,EAAE,kBAAkB,GACnC,OAAO,CAAC,0BAA0B,CAAC;IAyEzB,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,EACxB,eAAe,CAAC,EAAE,kBAAkB,EACpC,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,0BAA0B,CAAC;YA0GxB,eAAe;CAmC9B"}
|
|
@@ -161,18 +161,33 @@ class TransactionsManager {
|
|
|
161
161
|
}
|
|
162
162
|
return transactionSets;
|
|
163
163
|
}
|
|
164
|
-
updateStatus(name, status, attemptNum, txSig) {
|
|
164
|
+
updateStatus(name, status, attemptNum, txSig, simulationSuccessful) {
|
|
165
165
|
if (!this.statuses.filter((x) => x.name === name)) {
|
|
166
|
-
this.statuses.push({
|
|
166
|
+
this.statuses.push({
|
|
167
|
+
name,
|
|
168
|
+
status,
|
|
169
|
+
txSig,
|
|
170
|
+
attemptNum,
|
|
171
|
+
simulationSuccessful,
|
|
172
|
+
});
|
|
167
173
|
}
|
|
168
174
|
else {
|
|
169
175
|
const idx = this.statuses.findIndex((x) => x.name === name && x.attemptNum === attemptNum);
|
|
170
176
|
if (idx !== -1) {
|
|
171
177
|
this.statuses[idx].status = status;
|
|
172
178
|
this.statuses[idx].txSig = txSig;
|
|
179
|
+
if (simulationSuccessful) {
|
|
180
|
+
this.statuses[idx].simulationSuccessful = simulationSuccessful;
|
|
181
|
+
}
|
|
173
182
|
}
|
|
174
183
|
else {
|
|
175
|
-
this.statuses.push({
|
|
184
|
+
this.statuses.push({
|
|
185
|
+
name,
|
|
186
|
+
status,
|
|
187
|
+
txSig,
|
|
188
|
+
attemptNum,
|
|
189
|
+
simulationSuccessful,
|
|
190
|
+
});
|
|
176
191
|
}
|
|
177
192
|
}
|
|
178
193
|
this.txHandler.log(`${name} is ${status.toString().toLowerCase()}`);
|
|
@@ -202,17 +217,7 @@ class TransactionsManager {
|
|
|
202
217
|
if (updateLookupTable &&
|
|
203
218
|
updateLookupTable.updateLutTx.getInstructions().length > 0 &&
|
|
204
219
|
updateLookupTable?.needsToBeIsolated) {
|
|
205
|
-
await (0, generalUtils_1.retryWithExponentialBackoff)(async (attemptNum) =>
|
|
206
|
-
this.updateStatus(updateLutTxName, TransactionStatus.Processing, attemptNum);
|
|
207
|
-
try {
|
|
208
|
-
const txSig = await (0, solanaUtils_1.sendSingleOptimizedTransaction)(this.txHandler.umi, this.txHandler.connection, updateLookupTable.updateLutTx, this.txType, attemptNum, prioritySetting);
|
|
209
|
-
this.updateStatus(updateLutTxName, TransactionStatus.Successful, attemptNum, txSig ? bs58_1.default.encode(txSig) : undefined);
|
|
210
|
-
}
|
|
211
|
-
catch (e) {
|
|
212
|
-
this.updateStatus(updateLutTxName, TransactionStatus.Failed, attemptNum);
|
|
213
|
-
throw e;
|
|
214
|
-
}
|
|
215
|
-
}, 3, 150, this.errorsToThrow);
|
|
220
|
+
await (0, generalUtils_1.retryWithExponentialBackoff)(async (attemptNum) => this.sendTransaction(updateLookupTable.updateLutTx, updateLutTxName, attemptNum, prioritySetting), 3, 150, this.errorsToThrow);
|
|
216
221
|
}
|
|
217
222
|
this.lookupTables.defaultLuts = client.defaultLookupTables();
|
|
218
223
|
for (const item of items) {
|
|
@@ -309,23 +314,26 @@ class TransactionsManager {
|
|
|
309
314
|
this.updateStatus(itemSet.name(), TransactionStatus.Skipped, attemptNum);
|
|
310
315
|
}
|
|
311
316
|
else {
|
|
312
|
-
this.updateStatus(itemSet.name(), TransactionStatus.Processing, attemptNum);
|
|
313
317
|
if (this.txHandler.localTest) {
|
|
314
318
|
await this.debugAccounts(itemSet, tx);
|
|
315
319
|
}
|
|
316
|
-
|
|
317
|
-
const txSig = await (0, solanaUtils_1.sendSingleOptimizedTransaction)(this.txHandler.umi, this.txHandler.connection, tx, this.txType, attemptNum, prioritySetting);
|
|
318
|
-
this.updateStatus(itemSet.name(), TransactionStatus.Successful, attemptNum, txSig ? bs58_1.default.encode(txSig) : undefined);
|
|
319
|
-
}
|
|
320
|
-
catch (e) {
|
|
321
|
-
this.updateStatus(itemSet.name(), TransactionStatus.Failed, attemptNum);
|
|
322
|
-
throw e;
|
|
323
|
-
}
|
|
320
|
+
this.sendTransaction(tx, itemSet.name(), attemptNum, prioritySetting);
|
|
324
321
|
}
|
|
325
322
|
}, this.retries, this.retryDelay, this.errorsToThrow);
|
|
326
323
|
}
|
|
327
324
|
}
|
|
328
325
|
return this.statuses;
|
|
329
326
|
}
|
|
327
|
+
async sendTransaction(tx, txName, attemptNum, prioritySetting) {
|
|
328
|
+
this.updateStatus(txName, TransactionStatus.Processing, attemptNum);
|
|
329
|
+
try {
|
|
330
|
+
const txSig = await (0, solanaUtils_1.sendSingleOptimizedTransaction)(this.txHandler.umi, this.txHandler.connection, tx, this.txType, attemptNum, prioritySetting, () => this.updateStatus(txName, TransactionStatus.Processing, attemptNum, undefined, true));
|
|
331
|
+
this.updateStatus(txName, TransactionStatus.Successful, attemptNum, txSig ? bs58_1.default.encode(txSig) : undefined);
|
|
332
|
+
}
|
|
333
|
+
catch (e) {
|
|
334
|
+
this.updateStatus(txName, TransactionStatus.Failed, attemptNum);
|
|
335
|
+
throw e;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
330
338
|
}
|
|
331
339
|
exports.TransactionsManager = TransactionsManager;
|
package/package.json
CHANGED
|
@@ -626,8 +626,8 @@ export class SolautoMarginfiClient extends SolautoClient {
|
|
|
626
626
|
const freshState = await getMarginfiAccountPositionState(
|
|
627
627
|
this.umi,
|
|
628
628
|
this.marginfiAccountPk,
|
|
629
|
-
|
|
630
|
-
|
|
629
|
+
undefined,
|
|
630
|
+
undefined,
|
|
631
631
|
this.livePositionUpdates
|
|
632
632
|
);
|
|
633
633
|
|
|
@@ -180,6 +180,7 @@ export enum TransactionStatus {
|
|
|
180
180
|
export type TransactionManagerStatuses = {
|
|
181
181
|
name: string;
|
|
182
182
|
status: TransactionStatus;
|
|
183
|
+
simulationSuccessful?: boolean;
|
|
183
184
|
txSig?: string;
|
|
184
185
|
attemptNum: number;
|
|
185
186
|
}[];
|
|
@@ -243,14 +244,21 @@ export class TransactionsManager {
|
|
|
243
244
|
return transactionSets;
|
|
244
245
|
}
|
|
245
246
|
|
|
246
|
-
updateStatus(
|
|
247
|
+
private updateStatus(
|
|
247
248
|
name: string,
|
|
248
249
|
status: TransactionStatus,
|
|
249
250
|
attemptNum: number,
|
|
250
|
-
txSig?: string
|
|
251
|
+
txSig?: string,
|
|
252
|
+
simulationSuccessful?: boolean
|
|
251
253
|
) {
|
|
252
254
|
if (!this.statuses.filter((x) => x.name === name)) {
|
|
253
|
-
this.statuses.push({
|
|
255
|
+
this.statuses.push({
|
|
256
|
+
name,
|
|
257
|
+
status,
|
|
258
|
+
txSig,
|
|
259
|
+
attemptNum,
|
|
260
|
+
simulationSuccessful,
|
|
261
|
+
});
|
|
254
262
|
} else {
|
|
255
263
|
const idx = this.statuses.findIndex(
|
|
256
264
|
(x) => x.name === name && x.attemptNum === attemptNum
|
|
@@ -258,8 +266,17 @@ export class TransactionsManager {
|
|
|
258
266
|
if (idx !== -1) {
|
|
259
267
|
this.statuses[idx].status = status;
|
|
260
268
|
this.statuses[idx].txSig = txSig;
|
|
269
|
+
if (simulationSuccessful) {
|
|
270
|
+
this.statuses[idx].simulationSuccessful = simulationSuccessful;
|
|
271
|
+
}
|
|
261
272
|
} else {
|
|
262
|
-
this.statuses.push({
|
|
273
|
+
this.statuses.push({
|
|
274
|
+
name,
|
|
275
|
+
status,
|
|
276
|
+
txSig,
|
|
277
|
+
attemptNum,
|
|
278
|
+
simulationSuccessful,
|
|
279
|
+
});
|
|
263
280
|
}
|
|
264
281
|
}
|
|
265
282
|
this.txHandler.log(`${name} is ${status.toString().toLowerCase()}`);
|
|
@@ -267,7 +284,7 @@ export class TransactionsManager {
|
|
|
267
284
|
}
|
|
268
285
|
|
|
269
286
|
// TODO remove me
|
|
270
|
-
async debugAccounts(itemSet: TransactionSet, tx: TransactionBuilder) {
|
|
287
|
+
private async debugAccounts(itemSet: TransactionSet, tx: TransactionBuilder) {
|
|
271
288
|
const lutInputs = await itemSet.lookupTables.getLutInputs([]);
|
|
272
289
|
const lutAccounts = lutInputs.map((x) => x.addresses).flat();
|
|
273
290
|
for (const ix of tx.getInstructions()) {
|
|
@@ -287,7 +304,7 @@ export class TransactionsManager {
|
|
|
287
304
|
}
|
|
288
305
|
}
|
|
289
306
|
|
|
290
|
-
async clientSend(
|
|
307
|
+
public async clientSend(
|
|
291
308
|
transactions: TransactionItem[],
|
|
292
309
|
prioritySetting?: PriorityFeeSetting
|
|
293
310
|
): Promise<TransactionManagerStatuses> {
|
|
@@ -302,36 +319,13 @@ export class TransactionsManager {
|
|
|
302
319
|
updateLookupTable?.needsToBeIsolated
|
|
303
320
|
) {
|
|
304
321
|
await retryWithExponentialBackoff(
|
|
305
|
-
async (attemptNum) =>
|
|
306
|
-
this.
|
|
322
|
+
async (attemptNum) =>
|
|
323
|
+
this.sendTransaction(
|
|
324
|
+
updateLookupTable.updateLutTx,
|
|
307
325
|
updateLutTxName,
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
)
|
|
311
|
-
try {
|
|
312
|
-
const txSig = await sendSingleOptimizedTransaction(
|
|
313
|
-
this.txHandler.umi,
|
|
314
|
-
this.txHandler.connection,
|
|
315
|
-
updateLookupTable.updateLutTx,
|
|
316
|
-
this.txType,
|
|
317
|
-
attemptNum,
|
|
318
|
-
prioritySetting
|
|
319
|
-
);
|
|
320
|
-
this.updateStatus(
|
|
321
|
-
updateLutTxName,
|
|
322
|
-
TransactionStatus.Successful,
|
|
323
|
-
attemptNum,
|
|
324
|
-
txSig ? bs58.encode(txSig) : undefined
|
|
325
|
-
);
|
|
326
|
-
} catch (e) {
|
|
327
|
-
this.updateStatus(
|
|
328
|
-
updateLutTxName,
|
|
329
|
-
TransactionStatus.Failed,
|
|
330
|
-
attemptNum
|
|
331
|
-
);
|
|
332
|
-
throw e;
|
|
333
|
-
}
|
|
334
|
-
},
|
|
326
|
+
attemptNum,
|
|
327
|
+
prioritySetting
|
|
328
|
+
),
|
|
335
329
|
3,
|
|
336
330
|
150,
|
|
337
331
|
this.errorsToThrow
|
|
@@ -386,7 +380,7 @@ export class TransactionsManager {
|
|
|
386
380
|
return result;
|
|
387
381
|
}
|
|
388
382
|
|
|
389
|
-
async send(
|
|
383
|
+
public async send(
|
|
390
384
|
items: TransactionItem[],
|
|
391
385
|
prioritySetting?: PriorityFeeSetting,
|
|
392
386
|
initialized?: boolean
|
|
@@ -475,39 +469,15 @@ export class TransactionsManager {
|
|
|
475
469
|
attemptNum
|
|
476
470
|
);
|
|
477
471
|
} else {
|
|
478
|
-
this.updateStatus(
|
|
479
|
-
itemSet.name(),
|
|
480
|
-
TransactionStatus.Processing,
|
|
481
|
-
attemptNum
|
|
482
|
-
);
|
|
483
|
-
|
|
484
472
|
if (this.txHandler.localTest) {
|
|
485
473
|
await this.debugAccounts(itemSet, tx);
|
|
486
474
|
}
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
this.txType,
|
|
494
|
-
attemptNum,
|
|
495
|
-
prioritySetting
|
|
496
|
-
);
|
|
497
|
-
this.updateStatus(
|
|
498
|
-
itemSet.name(),
|
|
499
|
-
TransactionStatus.Successful,
|
|
500
|
-
attemptNum,
|
|
501
|
-
txSig ? bs58.encode(txSig) : undefined
|
|
502
|
-
);
|
|
503
|
-
} catch (e) {
|
|
504
|
-
this.updateStatus(
|
|
505
|
-
itemSet.name(),
|
|
506
|
-
TransactionStatus.Failed,
|
|
507
|
-
attemptNum
|
|
508
|
-
);
|
|
509
|
-
throw e;
|
|
510
|
-
}
|
|
475
|
+
this.sendTransaction(
|
|
476
|
+
tx,
|
|
477
|
+
itemSet.name(),
|
|
478
|
+
attemptNum,
|
|
479
|
+
prioritySetting
|
|
480
|
+
);
|
|
511
481
|
}
|
|
512
482
|
},
|
|
513
483
|
this.retries,
|
|
@@ -519,4 +489,40 @@ export class TransactionsManager {
|
|
|
519
489
|
|
|
520
490
|
return this.statuses;
|
|
521
491
|
}
|
|
492
|
+
|
|
493
|
+
private async sendTransaction(
|
|
494
|
+
tx: TransactionBuilder,
|
|
495
|
+
txName: string,
|
|
496
|
+
attemptNum: number,
|
|
497
|
+
prioritySetting?: PriorityFeeSetting
|
|
498
|
+
) {
|
|
499
|
+
this.updateStatus(txName, TransactionStatus.Processing, attemptNum);
|
|
500
|
+
try {
|
|
501
|
+
const txSig = await sendSingleOptimizedTransaction(
|
|
502
|
+
this.txHandler.umi,
|
|
503
|
+
this.txHandler.connection,
|
|
504
|
+
tx,
|
|
505
|
+
this.txType,
|
|
506
|
+
attemptNum,
|
|
507
|
+
prioritySetting,
|
|
508
|
+
() =>
|
|
509
|
+
this.updateStatus(
|
|
510
|
+
txName,
|
|
511
|
+
TransactionStatus.Processing,
|
|
512
|
+
attemptNum,
|
|
513
|
+
undefined,
|
|
514
|
+
true
|
|
515
|
+
)
|
|
516
|
+
);
|
|
517
|
+
this.updateStatus(
|
|
518
|
+
txName,
|
|
519
|
+
TransactionStatus.Successful,
|
|
520
|
+
attemptNum,
|
|
521
|
+
txSig ? bs58.encode(txSig) : undefined
|
|
522
|
+
);
|
|
523
|
+
} catch (e) {
|
|
524
|
+
this.updateStatus(txName, TransactionStatus.Failed, attemptNum);
|
|
525
|
+
throw e;
|
|
526
|
+
}
|
|
527
|
+
}
|
|
522
528
|
}
|