@metamask/transaction-controller 62.22.0 → 63.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/CHANGELOG.md +47 -1
- package/dist/TransactionController-method-action-types.cjs +7 -0
- package/dist/TransactionController-method-action-types.cjs.map +1 -0
- package/dist/TransactionController-method-action-types.d.cts +327 -0
- package/dist/TransactionController-method-action-types.d.cts.map +1 -0
- package/dist/TransactionController-method-action-types.d.mts +327 -0
- package/dist/TransactionController-method-action-types.d.mts.map +1 -0
- package/dist/TransactionController-method-action-types.mjs +6 -0
- package/dist/TransactionController-method-action-types.mjs.map +1 -0
- package/dist/TransactionController.cjs +157 -123
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +36 -93
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +36 -93
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +157 -123
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs +4 -0
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +8 -2
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +8 -2
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs +4 -0
- package/dist/types.mjs.map +1 -1
- package/package.json +6 -4
|
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
13
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
|
-
var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_afterSign, _TransactionController_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_isTimeoutEnabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_securityProviderRequest, _TransactionController_sign, _TransactionController_signAbortCallbacks, _TransactionController_skipSimulationTransactionIds, _TransactionController_testGasFeeFlows, _TransactionController_trace, _TransactionController_retryTransaction, _TransactionController_signExternalTransaction, _TransactionController_addMetadata, _TransactionController_updateGasProperties, _TransactionController_onBootCleanup, _TransactionController_failIncompleteTransactions, _TransactionController_processApproval, _TransactionController_approveTransaction, _TransactionController_publishTransaction, _TransactionController_rejectTransaction, _TransactionController_trimTransactionsForState, _TransactionController_isFinalState, _TransactionController_isLocalFinalState, _TransactionController_requestApproval, _TransactionController_getTransaction, _TransactionController_getTransactionOrThrow, _TransactionController_getApprovalId, _TransactionController_isTransactionCompleted, _TransactionController_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_onIncomingTransactions, _TransactionController_generateDappSuggestedGasFees, _TransactionController_addExternalTransaction, _TransactionController_markNonceDuplicatesDropped, _TransactionController_setTransactionStatusDropped,
|
|
16
|
+
var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_afterSign, _TransactionController_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_isTimeoutEnabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_securityProviderRequest, _TransactionController_sign, _TransactionController_signAbortCallbacks, _TransactionController_skipSimulationTransactionIds, _TransactionController_testGasFeeFlows, _TransactionController_trace, _TransactionController_retryTransaction, _TransactionController_signExternalTransaction, _TransactionController_addMetadata, _TransactionController_updateGasProperties, _TransactionController_onBootCleanup, _TransactionController_failIncompleteTransactions, _TransactionController_processApproval, _TransactionController_approveTransaction, _TransactionController_publishTransaction, _TransactionController_rejectTransaction, _TransactionController_trimTransactionsForState, _TransactionController_isFinalState, _TransactionController_isLocalFinalState, _TransactionController_requestApproval, _TransactionController_getTransaction, _TransactionController_getTransactionOrThrow, _TransactionController_getApprovalId, _TransactionController_isTransactionCompleted, _TransactionController_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_onIncomingTransactions, _TransactionController_generateDappSuggestedGasFees, _TransactionController_addExternalTransaction, _TransactionController_markNonceDuplicatesDropped, _TransactionController_setTransactionStatusDropped, _TransactionController_waitForTransactionFinished, _TransactionController_updateTransactionMetaRSV, _TransactionController_getEIP1559Compatibility, _TransactionController_signTransaction, _TransactionController_onTransactionStatusChange, _TransactionController_getNonceTrackerTransactions, _TransactionController_onConfirmedTransaction, _TransactionController_updatePostBalance, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_publishTransactionForRetry, _TransactionController_isTransactionAlreadyConfirmedError, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_onGasFeePollerTransactionBatchUpdate, _TransactionController_updateTransactionBatch, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_registerActionHandlers, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow, _TransactionController_failTransaction, _TransactionController_runAfterSimulateHook, _TransactionController_defaultPublishHook, _TransactionController_getGasFeeTokens;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.TransactionController = exports.ApprovalState = exports.SPEED_UP_RATE = exports.CANCEL_RATE = void 0;
|
|
19
19
|
const base_controller_1 = require("@metamask/base-controller");
|
|
@@ -133,6 +133,37 @@ function getDefaultTransactionControllerState() {
|
|
|
133
133
|
submitHistory: [],
|
|
134
134
|
};
|
|
135
135
|
}
|
|
136
|
+
// === MESSENGER ===
|
|
137
|
+
const MESSENGER_EXPOSED_METHODS = [
|
|
138
|
+
'abortTransactionSigning',
|
|
139
|
+
'addTransaction',
|
|
140
|
+
'addTransactionBatch',
|
|
141
|
+
'approveTransactionsWithSameNonce',
|
|
142
|
+
'clearUnapprovedTransactions',
|
|
143
|
+
'confirmExternalTransaction',
|
|
144
|
+
'emulateNewTransaction',
|
|
145
|
+
'emulateTransactionUpdate',
|
|
146
|
+
'estimateGas',
|
|
147
|
+
'estimateGasBatch',
|
|
148
|
+
'estimateGasBuffered',
|
|
149
|
+
'estimateGasFee',
|
|
150
|
+
'getGasFeeTokens',
|
|
151
|
+
'getLayer1GasFee',
|
|
152
|
+
'getNonceLock',
|
|
153
|
+
'getTransactions',
|
|
154
|
+
'handleMethodData',
|
|
155
|
+
'isAtomicBatchSupported',
|
|
156
|
+
'setTransactionActive',
|
|
157
|
+
'speedUpTransaction',
|
|
158
|
+
'startIncomingTransactionPolling',
|
|
159
|
+
'stopIncomingTransactionPolling',
|
|
160
|
+
'stopTransaction',
|
|
161
|
+
'updateAtomicBatchData',
|
|
162
|
+
'updateCustodialTransaction',
|
|
163
|
+
'updateEditableParams',
|
|
164
|
+
'updateIncomingTransactions',
|
|
165
|
+
'updateTransaction',
|
|
166
|
+
];
|
|
136
167
|
/**
|
|
137
168
|
* Controller responsible for submitting and managing transactions.
|
|
138
169
|
*/
|
|
@@ -421,39 +452,34 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
421
452
|
}
|
|
422
453
|
const dappSuggestedGasFees = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_generateDappSuggestedGasFees).call(this, txParams, origin);
|
|
423
454
|
const transactionType = type ?? (await (0, transaction_type_1.determineTransactionType)(txParams, ethQuery)).type;
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
txParams,
|
|
453
|
-
type: transactionType,
|
|
454
|
-
userEditedGasLimit: false,
|
|
455
|
-
verifiedOnBlockchain: false,
|
|
456
|
-
};
|
|
455
|
+
let addedTransactionMeta = {
|
|
456
|
+
actionId,
|
|
457
|
+
assetsFiatValues,
|
|
458
|
+
batchId,
|
|
459
|
+
chainId,
|
|
460
|
+
dappSuggestedGasFees,
|
|
461
|
+
deviceConfirmedOn,
|
|
462
|
+
disableGasBuffer,
|
|
463
|
+
id: (0, uuid_1.v1)(),
|
|
464
|
+
isGasFeeTokenIgnoredIfBalance: Boolean(gasFeeToken),
|
|
465
|
+
isGasFeeIncluded,
|
|
466
|
+
isGasFeeSponsored,
|
|
467
|
+
isFirstTimeInteraction: undefined,
|
|
468
|
+
isStateOnly,
|
|
469
|
+
nestedTransactions,
|
|
470
|
+
networkClientId,
|
|
471
|
+
origin,
|
|
472
|
+
requestId,
|
|
473
|
+
requiredAssets,
|
|
474
|
+
securityAlertResponse,
|
|
475
|
+
selectedGasFeeToken: gasFeeToken,
|
|
476
|
+
status: types_1.TransactionStatus.unapproved,
|
|
477
|
+
time: Date.now(),
|
|
478
|
+
txParams,
|
|
479
|
+
type: transactionType,
|
|
480
|
+
userEditedGasLimit: false,
|
|
481
|
+
verifiedOnBlockchain: false,
|
|
482
|
+
};
|
|
457
483
|
const { updateTransaction } = await __classPrivateFieldGet(this, _TransactionController_afterAdd, "f").call(this, {
|
|
458
484
|
transactionMeta: addedTransactionMeta,
|
|
459
485
|
});
|
|
@@ -488,61 +514,56 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
488
514
|
})
|
|
489
515
|
.catch(lodash_1.noop);
|
|
490
516
|
}
|
|
491
|
-
//
|
|
492
|
-
if (
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
517
|
+
// Set security provider response
|
|
518
|
+
if (method && __classPrivateFieldGet(this, _TransactionController_securityProviderRequest, "f")) {
|
|
519
|
+
const securityProviderResponse = await __classPrivateFieldGet(this, _TransactionController_securityProviderRequest, "f").call(this, addedTransactionMeta, method);
|
|
520
|
+
// eslint-disable-next-line require-atomic-updates
|
|
521
|
+
addedTransactionMeta.securityProviderResponse = securityProviderResponse;
|
|
522
|
+
}
|
|
523
|
+
addedTransactionMeta = (0, swaps_1.updateSwapsTransaction)(addedTransactionMeta, transactionType, swaps, {
|
|
524
|
+
isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
|
|
525
|
+
cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
|
|
526
|
+
messenger: this.messenger,
|
|
527
|
+
});
|
|
528
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addMetadata).call(this, addedTransactionMeta);
|
|
529
|
+
delegationAddressPromise
|
|
530
|
+
.then((delegationAddress) => {
|
|
531
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
532
|
+
transactionId: addedTransactionMeta.id,
|
|
533
|
+
skipResimulateCheck: true,
|
|
534
|
+
skipValidation: true,
|
|
535
|
+
}, (tx) => {
|
|
536
|
+
tx.delegationAddress = delegationAddress;
|
|
504
537
|
});
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
.
|
|
518
|
-
|
|
519
|
-
__classPrivateFieldGet(this,
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
trace: __classPrivateFieldGet(this, _TransactionController_trace, "f"),
|
|
530
|
-
traceContext,
|
|
531
|
-
transactionMeta: addedTransactionMeta,
|
|
532
|
-
updateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).bind(this),
|
|
533
|
-
}).catch((error) => {
|
|
534
|
-
(0, logger_1.projectLogger)('Error while updating first interaction properties', error);
|
|
535
|
-
});
|
|
536
|
-
}
|
|
537
|
-
else {
|
|
538
|
-
(0, logger_1.projectLogger)('Skipping simulation & first interaction update as approval not required');
|
|
539
|
-
}
|
|
540
|
-
this.messenger.publish(`${controllerName}:unapprovedTransactionAdded`, addedTransactionMeta);
|
|
538
|
+
return undefined;
|
|
539
|
+
})
|
|
540
|
+
.catch(lodash_1.noop);
|
|
541
|
+
if (requireApproval !== false && !isStateOnly) {
|
|
542
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).call(this, addedTransactionMeta, {
|
|
543
|
+
traceContext,
|
|
544
|
+
}).catch((error) => {
|
|
545
|
+
(0, logger_1.projectLogger)('Error while updating simulation data', error);
|
|
546
|
+
throw error;
|
|
547
|
+
});
|
|
548
|
+
(0, first_time_interaction_1.updateFirstTimeInteraction)({
|
|
549
|
+
existingTransactions: this.state.transactions,
|
|
550
|
+
getTransaction: (transactionId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId),
|
|
551
|
+
isFirstTimeInteractionEnabled: __classPrivateFieldGet(this, _TransactionController_isFirstTimeInteractionEnabled, "f"),
|
|
552
|
+
trace: __classPrivateFieldGet(this, _TransactionController_trace, "f"),
|
|
553
|
+
traceContext,
|
|
554
|
+
transactionMeta: addedTransactionMeta,
|
|
555
|
+
updateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).bind(this),
|
|
556
|
+
}).catch((error) => {
|
|
557
|
+
(0, logger_1.projectLogger)('Error while updating first interaction properties', error);
|
|
558
|
+
});
|
|
559
|
+
}
|
|
560
|
+
else {
|
|
561
|
+
(0, logger_1.projectLogger)('Skipping simulation & first interaction update as approval not required');
|
|
541
562
|
}
|
|
563
|
+
this.messenger.publish(`${controllerName}:unapprovedTransactionAdded`, addedTransactionMeta);
|
|
542
564
|
return {
|
|
543
565
|
result: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_processApproval).call(this, addedTransactionMeta, {
|
|
544
566
|
actionId,
|
|
545
|
-
isExisting: Boolean(existingTransactionMeta),
|
|
546
567
|
publishHook,
|
|
547
568
|
requireApproval,
|
|
548
569
|
traceContext,
|
|
@@ -550,9 +571,15 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
550
571
|
transactionMeta: addedTransactionMeta,
|
|
551
572
|
};
|
|
552
573
|
}
|
|
574
|
+
/**
|
|
575
|
+
* Starts polling for incoming transactions from the remote transaction source.
|
|
576
|
+
*/
|
|
553
577
|
startIncomingTransactionPolling() {
|
|
554
578
|
__classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").start();
|
|
555
579
|
}
|
|
580
|
+
/**
|
|
581
|
+
* Stops polling for incoming transactions from the remote transaction source.
|
|
582
|
+
*/
|
|
556
583
|
stopIncomingTransactionPolling() {
|
|
557
584
|
__classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").stop();
|
|
558
585
|
}
|
|
@@ -572,7 +599,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
572
599
|
* @param transactionId - The ID of the transaction to cancel.
|
|
573
600
|
* @param gasValues - The gas values to use for the cancellation transaction.
|
|
574
601
|
* @param options - The options for the cancellation transaction.
|
|
575
|
-
* @param options.actionId - Unique ID
|
|
602
|
+
* @param options.actionId - Unique ID persisted on transaction metadata.
|
|
576
603
|
* @param options.estimatedBaseFee - The estimated base fee of the transaction.
|
|
577
604
|
*/
|
|
578
605
|
async stopTransaction(transactionId, gasValues, { estimatedBaseFee, actionId, } = {}) {
|
|
@@ -601,7 +628,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
601
628
|
* @param transactionId - The ID of the transaction to speed up.
|
|
602
629
|
* @param gasValues - The gas values to use for the speed up transaction.
|
|
603
630
|
* @param options - The options for the speed up transaction.
|
|
604
|
-
* @param options.actionId - Unique ID
|
|
631
|
+
* @param options.actionId - Unique ID persisted on transaction metadata.
|
|
605
632
|
* @param options.estimatedBaseFee - The estimated base fee of the transaction.
|
|
606
633
|
*/
|
|
607
634
|
async speedUpTransaction(transactionId, gasValues, { actionId, estimatedBaseFee, } = {}) {
|
|
@@ -913,6 +940,14 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
913
940
|
this.updateTransaction(updatedMeta, `${controllerName}:updatePreviousGasParams - Previous gas values updated`);
|
|
914
941
|
return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
915
942
|
}
|
|
943
|
+
/**
|
|
944
|
+
* Acquires a nonce lock for the given address on the specified network,
|
|
945
|
+
* ensuring that nonces are assigned sequentially without conflicts.
|
|
946
|
+
*
|
|
947
|
+
* @param address - The account address for which to acquire the nonce lock.
|
|
948
|
+
* @param networkClientId - The ID of the network client to use.
|
|
949
|
+
* @returns A promise that resolves to a nonce lock containing the next nonce and a release function.
|
|
950
|
+
*/
|
|
916
951
|
async getNonceLock(address, networkClientId) {
|
|
917
952
|
return __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNonceLock(address, networkClientId);
|
|
918
953
|
}
|
|
@@ -1177,6 +1212,15 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1177
1212
|
}
|
|
1178
1213
|
return filteredTransactions;
|
|
1179
1214
|
}
|
|
1215
|
+
/**
|
|
1216
|
+
* Estimates the gas fees for a transaction.
|
|
1217
|
+
*
|
|
1218
|
+
* @param args - The arguments for estimating gas fees.
|
|
1219
|
+
* @param args.transactionParams - The transaction parameters to estimate fees for.
|
|
1220
|
+
* @param args.chainId - The chain ID to use. If not provided, the network client ID is used to determine the chain.
|
|
1221
|
+
* @param args.networkClientId - The network client ID to use for the estimation.
|
|
1222
|
+
* @returns A promise that resolves to the estimated gas fee response.
|
|
1223
|
+
*/
|
|
1180
1224
|
async estimateGasFee({ transactionParams, chainId, networkClientId: requestNetworkClientId, }) {
|
|
1181
1225
|
const { id: networkClientId, provider } = __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({
|
|
1182
1226
|
chainId,
|
|
@@ -1389,13 +1433,33 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1389
1433
|
transactionMeta: updatedTransactionMeta,
|
|
1390
1434
|
});
|
|
1391
1435
|
}
|
|
1436
|
+
/**
|
|
1437
|
+
* Retrieve available gas fee tokens for a transaction.
|
|
1438
|
+
*
|
|
1439
|
+
* @param request - The request object containing transaction details.
|
|
1440
|
+
* @returns The list of available gas fee tokens.
|
|
1441
|
+
*/
|
|
1442
|
+
async getGasFeeTokens(request) {
|
|
1443
|
+
const { chainId, data, from, to, value } = request;
|
|
1444
|
+
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId });
|
|
1445
|
+
const delegationAddress = await (0, eip7702_1.getDelegationAddress)(from, ethQuery);
|
|
1446
|
+
const transaction = {
|
|
1447
|
+
chainId,
|
|
1448
|
+
delegationAddress,
|
|
1449
|
+
isExternalSign: true,
|
|
1450
|
+
txParams: {
|
|
1451
|
+
data,
|
|
1452
|
+
from,
|
|
1453
|
+
to,
|
|
1454
|
+
value,
|
|
1455
|
+
},
|
|
1456
|
+
};
|
|
1457
|
+
const result = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, transaction);
|
|
1458
|
+
return result.gasFeeTokens;
|
|
1459
|
+
}
|
|
1392
1460
|
}
|
|
1393
1461
|
exports.TransactionController = TransactionController;
|
|
1394
1462
|
_TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSign = new WeakMap(), _TransactionController_afterSimulate = new WeakMap(), _TransactionController_approvingTransactionIds = new WeakMap(), _TransactionController_beforeCheckPendingTransaction = new WeakMap(), _TransactionController_beforePublish = new WeakMap(), _TransactionController_beforeSign = new WeakMap(), _TransactionController_gasFeeFlows = new WeakMap(), _TransactionController_getAdditionalSignArguments = new WeakMap(), _TransactionController_getCurrentAccountEIP1559Compatibility = new WeakMap(), _TransactionController_getCurrentNetworkEIP1559Compatibility = new WeakMap(), _TransactionController_getExternalPendingTransactions = new WeakMap(), _TransactionController_getGasFeeEstimates = new WeakMap(), _TransactionController_getNetworkState = new WeakMap(), _TransactionController_getPermittedAccounts = new WeakMap(), _TransactionController_getSavedGasFees = new WeakMap(), _TransactionController_getSimulationConfig = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_internalEvents = new WeakMap(), _TransactionController_isAutomaticGasFeeUpdateEnabled = new WeakMap(), _TransactionController_isEIP7702GasFeeTokensEnabled = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_isSwapsDisabled = new WeakMap(), _TransactionController_isTimeoutEnabled = new WeakMap(), _TransactionController_layer1GasFeeFlows = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_multichainTrackingHelper = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_publicKeyEIP7702 = new WeakMap(), _TransactionController_publish = new WeakMap(), _TransactionController_publishBatchHook = new WeakMap(), _TransactionController_securityProviderRequest = new WeakMap(), _TransactionController_sign = new WeakMap(), _TransactionController_signAbortCallbacks = new WeakMap(), _TransactionController_skipSimulationTransactionIds = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_checkForPendingTransactionAndStartPolling = new WeakMap(), _TransactionController_instances = new WeakSet(), _TransactionController_retryTransaction = async function _TransactionController_retryTransaction({ actionId, afterSubmit, estimatedBaseFee, gasValues, label, prepareTransactionParams, rate, transactionId, transactionType, }) {
|
|
1395
|
-
// If transaction is found for same action id, do not create a new transaction.
|
|
1396
|
-
if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId)) {
|
|
1397
|
-
return;
|
|
1398
|
-
}
|
|
1399
1463
|
if (gasValues) {
|
|
1400
1464
|
// Not good practice to reassign a parameter but temporarily avoiding a larger refactor.
|
|
1401
1465
|
// eslint-disable-next-line no-param-reassign
|
|
@@ -1533,7 +1597,7 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1533
1597
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_failTransaction).call(this, requiredTransactionMeta, new Error('Parent transaction incomplete at startup'));
|
|
1534
1598
|
}
|
|
1535
1599
|
}
|
|
1536
|
-
}, _TransactionController_processApproval = async function _TransactionController_processApproval(transactionMeta, { actionId,
|
|
1600
|
+
}, _TransactionController_processApproval = async function _TransactionController_processApproval(transactionMeta, { actionId, publishHook, requireApproval, shouldShowRequest = true, traceContext, }) {
|
|
1537
1601
|
const { id: transactionId, isStateOnly } = transactionMeta;
|
|
1538
1602
|
if (isStateOnly) {
|
|
1539
1603
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipValidation: true }, (tx) => {
|
|
@@ -1547,7 +1611,7 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1547
1611
|
const finishedPromise = isCompleted
|
|
1548
1612
|
? Promise.resolve(meta)
|
|
1549
1613
|
: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_waitForTransactionFinished).call(this, transactionId);
|
|
1550
|
-
if (meta && !
|
|
1614
|
+
if (meta && !isCompleted) {
|
|
1551
1615
|
try {
|
|
1552
1616
|
if (requireApproval !== false) {
|
|
1553
1617
|
const acceptResult = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Await Approval', parentContext: traceContext }, (context) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_requestApproval).call(this, transactionMeta, {
|
|
@@ -1963,8 +2027,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1963
2027
|
});
|
|
1964
2028
|
this.updateTransaction(updatedTransactionMeta, 'TransactionController#setTransactionStatusDropped - Transaction dropped');
|
|
1965
2029
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, updatedTransactionMeta);
|
|
1966
|
-
}, _TransactionController_getTransactionWithActionId = function _TransactionController_getTransactionWithActionId(actionId) {
|
|
1967
|
-
return this.state.transactions.find((transaction) => actionId && transaction.actionId === actionId);
|
|
1968
2030
|
}, _TransactionController_waitForTransactionFinished = async function _TransactionController_waitForTransactionFinished(transactionId) {
|
|
1969
2031
|
return new Promise((resolve) => {
|
|
1970
2032
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").once(`${transactionId}:finished`, (txMeta) => {
|
|
@@ -2331,18 +2393,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2331
2393
|
txMeta: transactionMeta,
|
|
2332
2394
|
});
|
|
2333
2395
|
}, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
|
|
2334
|
-
this.messenger.
|
|
2335
|
-
this.messenger.registerActionHandler(`${controllerName}:addTransactionBatch`, this.addTransactionBatch.bind(this));
|
|
2336
|
-
this.messenger.registerActionHandler(`${controllerName}:confirmExternalTransaction`, this.confirmExternalTransaction.bind(this));
|
|
2337
|
-
this.messenger.registerActionHandler(`${controllerName}:emulateNewTransaction`, this.emulateNewTransaction.bind(this));
|
|
2338
|
-
this.messenger.registerActionHandler(`${controllerName}:emulateTransactionUpdate`, this.emulateTransactionUpdate.bind(this));
|
|
2339
|
-
this.messenger.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
|
|
2340
|
-
this.messenger.registerActionHandler(`${controllerName}:estimateGasBatch`, this.estimateGasBatch.bind(this));
|
|
2341
|
-
this.messenger.registerActionHandler(`${controllerName}:getGasFeeTokens`, __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokensAction).bind(this));
|
|
2342
|
-
this.messenger.registerActionHandler(`${controllerName}:getNonceLock`, this.getNonceLock.bind(this));
|
|
2343
|
-
this.messenger.registerActionHandler(`${controllerName}:getTransactions`, this.getTransactions.bind(this));
|
|
2344
|
-
this.messenger.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
|
|
2345
|
-
this.messenger.registerActionHandler(`${controllerName}:updateTransaction`, this.updateTransaction.bind(this));
|
|
2396
|
+
this.messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);
|
|
2346
2397
|
}, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
|
|
2347
2398
|
this.update((state) => {
|
|
2348
2399
|
const transactions = state.transactions.filter(({ id }) => id !== transactionId);
|
|
@@ -2436,22 +2487,5 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2436
2487
|
publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
|
|
2437
2488
|
transactionMeta: transaction,
|
|
2438
2489
|
});
|
|
2439
|
-
}, _TransactionController_getGasFeeTokensAction = async function _TransactionController_getGasFeeTokensAction(request) {
|
|
2440
|
-
const { chainId, data, from, to, value } = request;
|
|
2441
|
-
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId });
|
|
2442
|
-
const delegationAddress = await (0, eip7702_1.getDelegationAddress)(from, ethQuery);
|
|
2443
|
-
const transaction = {
|
|
2444
|
-
chainId,
|
|
2445
|
-
delegationAddress,
|
|
2446
|
-
isExternalSign: true,
|
|
2447
|
-
txParams: {
|
|
2448
|
-
data,
|
|
2449
|
-
from,
|
|
2450
|
-
to,
|
|
2451
|
-
value,
|
|
2452
|
-
},
|
|
2453
|
-
};
|
|
2454
|
-
const result = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, transaction);
|
|
2455
|
-
return result.gasFeeTokens;
|
|
2456
2490
|
};
|
|
2457
2491
|
//# sourceMappingURL=TransactionController.cjs.map
|