@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
|
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
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,
|
|
12
|
+
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;
|
|
13
13
|
function $importDefault(module) {
|
|
14
14
|
if (module?.__esModule) {
|
|
15
15
|
return module.default;
|
|
@@ -135,6 +135,37 @@ function getDefaultTransactionControllerState() {
|
|
|
135
135
|
submitHistory: [],
|
|
136
136
|
};
|
|
137
137
|
}
|
|
138
|
+
// === MESSENGER ===
|
|
139
|
+
const MESSENGER_EXPOSED_METHODS = [
|
|
140
|
+
'abortTransactionSigning',
|
|
141
|
+
'addTransaction',
|
|
142
|
+
'addTransactionBatch',
|
|
143
|
+
'approveTransactionsWithSameNonce',
|
|
144
|
+
'clearUnapprovedTransactions',
|
|
145
|
+
'confirmExternalTransaction',
|
|
146
|
+
'emulateNewTransaction',
|
|
147
|
+
'emulateTransactionUpdate',
|
|
148
|
+
'estimateGas',
|
|
149
|
+
'estimateGasBatch',
|
|
150
|
+
'estimateGasBuffered',
|
|
151
|
+
'estimateGasFee',
|
|
152
|
+
'getGasFeeTokens',
|
|
153
|
+
'getLayer1GasFee',
|
|
154
|
+
'getNonceLock',
|
|
155
|
+
'getTransactions',
|
|
156
|
+
'handleMethodData',
|
|
157
|
+
'isAtomicBatchSupported',
|
|
158
|
+
'setTransactionActive',
|
|
159
|
+
'speedUpTransaction',
|
|
160
|
+
'startIncomingTransactionPolling',
|
|
161
|
+
'stopIncomingTransactionPolling',
|
|
162
|
+
'stopTransaction',
|
|
163
|
+
'updateAtomicBatchData',
|
|
164
|
+
'updateCustodialTransaction',
|
|
165
|
+
'updateEditableParams',
|
|
166
|
+
'updateIncomingTransactions',
|
|
167
|
+
'updateTransaction',
|
|
168
|
+
];
|
|
138
169
|
/**
|
|
139
170
|
* Controller responsible for submitting and managing transactions.
|
|
140
171
|
*/
|
|
@@ -423,39 +454,34 @@ export class TransactionController extends BaseController {
|
|
|
423
454
|
}
|
|
424
455
|
const dappSuggestedGasFees = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_generateDappSuggestedGasFees).call(this, txParams, origin);
|
|
425
456
|
const transactionType = type ?? (await determineTransactionType(txParams, ethQuery)).type;
|
|
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
|
-
|
|
453
|
-
|
|
454
|
-
txParams,
|
|
455
|
-
type: transactionType,
|
|
456
|
-
userEditedGasLimit: false,
|
|
457
|
-
verifiedOnBlockchain: false,
|
|
458
|
-
};
|
|
457
|
+
let addedTransactionMeta = {
|
|
458
|
+
actionId,
|
|
459
|
+
assetsFiatValues,
|
|
460
|
+
batchId,
|
|
461
|
+
chainId,
|
|
462
|
+
dappSuggestedGasFees,
|
|
463
|
+
deviceConfirmedOn,
|
|
464
|
+
disableGasBuffer,
|
|
465
|
+
id: random(),
|
|
466
|
+
isGasFeeTokenIgnoredIfBalance: Boolean(gasFeeToken),
|
|
467
|
+
isGasFeeIncluded,
|
|
468
|
+
isGasFeeSponsored,
|
|
469
|
+
isFirstTimeInteraction: undefined,
|
|
470
|
+
isStateOnly,
|
|
471
|
+
nestedTransactions,
|
|
472
|
+
networkClientId,
|
|
473
|
+
origin,
|
|
474
|
+
requestId,
|
|
475
|
+
requiredAssets,
|
|
476
|
+
securityAlertResponse,
|
|
477
|
+
selectedGasFeeToken: gasFeeToken,
|
|
478
|
+
status: TransactionStatus.unapproved,
|
|
479
|
+
time: Date.now(),
|
|
480
|
+
txParams,
|
|
481
|
+
type: transactionType,
|
|
482
|
+
userEditedGasLimit: false,
|
|
483
|
+
verifiedOnBlockchain: false,
|
|
484
|
+
};
|
|
459
485
|
const { updateTransaction } = await __classPrivateFieldGet(this, _TransactionController_afterAdd, "f").call(this, {
|
|
460
486
|
transactionMeta: addedTransactionMeta,
|
|
461
487
|
});
|
|
@@ -490,61 +516,56 @@ export class TransactionController extends BaseController {
|
|
|
490
516
|
})
|
|
491
517
|
.catch(noop);
|
|
492
518
|
}
|
|
493
|
-
//
|
|
494
|
-
if (
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
519
|
+
// Set security provider response
|
|
520
|
+
if (method && __classPrivateFieldGet(this, _TransactionController_securityProviderRequest, "f")) {
|
|
521
|
+
const securityProviderResponse = await __classPrivateFieldGet(this, _TransactionController_securityProviderRequest, "f").call(this, addedTransactionMeta, method);
|
|
522
|
+
// eslint-disable-next-line require-atomic-updates
|
|
523
|
+
addedTransactionMeta.securityProviderResponse = securityProviderResponse;
|
|
524
|
+
}
|
|
525
|
+
addedTransactionMeta = updateSwapsTransaction(addedTransactionMeta, transactionType, swaps, {
|
|
526
|
+
isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
|
|
527
|
+
cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
|
|
528
|
+
messenger: this.messenger,
|
|
529
|
+
});
|
|
530
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addMetadata).call(this, addedTransactionMeta);
|
|
531
|
+
delegationAddressPromise
|
|
532
|
+
.then((delegationAddress) => {
|
|
533
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
534
|
+
transactionId: addedTransactionMeta.id,
|
|
535
|
+
skipResimulateCheck: true,
|
|
536
|
+
skipValidation: true,
|
|
537
|
+
}, (tx) => {
|
|
538
|
+
tx.delegationAddress = delegationAddress;
|
|
506
539
|
});
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
.
|
|
520
|
-
|
|
521
|
-
__classPrivateFieldGet(this,
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
trace: __classPrivateFieldGet(this, _TransactionController_trace, "f"),
|
|
532
|
-
traceContext,
|
|
533
|
-
transactionMeta: addedTransactionMeta,
|
|
534
|
-
updateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).bind(this),
|
|
535
|
-
}).catch((error) => {
|
|
536
|
-
log('Error while updating first interaction properties', error);
|
|
537
|
-
});
|
|
538
|
-
}
|
|
539
|
-
else {
|
|
540
|
-
log('Skipping simulation & first interaction update as approval not required');
|
|
541
|
-
}
|
|
542
|
-
this.messenger.publish(`${controllerName}:unapprovedTransactionAdded`, addedTransactionMeta);
|
|
540
|
+
return undefined;
|
|
541
|
+
})
|
|
542
|
+
.catch(noop);
|
|
543
|
+
if (requireApproval !== false && !isStateOnly) {
|
|
544
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).call(this, addedTransactionMeta, {
|
|
545
|
+
traceContext,
|
|
546
|
+
}).catch((error) => {
|
|
547
|
+
log('Error while updating simulation data', error);
|
|
548
|
+
throw error;
|
|
549
|
+
});
|
|
550
|
+
updateFirstTimeInteraction({
|
|
551
|
+
existingTransactions: this.state.transactions,
|
|
552
|
+
getTransaction: (transactionId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId),
|
|
553
|
+
isFirstTimeInteractionEnabled: __classPrivateFieldGet(this, _TransactionController_isFirstTimeInteractionEnabled, "f"),
|
|
554
|
+
trace: __classPrivateFieldGet(this, _TransactionController_trace, "f"),
|
|
555
|
+
traceContext,
|
|
556
|
+
transactionMeta: addedTransactionMeta,
|
|
557
|
+
updateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).bind(this),
|
|
558
|
+
}).catch((error) => {
|
|
559
|
+
log('Error while updating first interaction properties', error);
|
|
560
|
+
});
|
|
561
|
+
}
|
|
562
|
+
else {
|
|
563
|
+
log('Skipping simulation & first interaction update as approval not required');
|
|
543
564
|
}
|
|
565
|
+
this.messenger.publish(`${controllerName}:unapprovedTransactionAdded`, addedTransactionMeta);
|
|
544
566
|
return {
|
|
545
567
|
result: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_processApproval).call(this, addedTransactionMeta, {
|
|
546
568
|
actionId,
|
|
547
|
-
isExisting: Boolean(existingTransactionMeta),
|
|
548
569
|
publishHook,
|
|
549
570
|
requireApproval,
|
|
550
571
|
traceContext,
|
|
@@ -552,9 +573,15 @@ export class TransactionController extends BaseController {
|
|
|
552
573
|
transactionMeta: addedTransactionMeta,
|
|
553
574
|
};
|
|
554
575
|
}
|
|
576
|
+
/**
|
|
577
|
+
* Starts polling for incoming transactions from the remote transaction source.
|
|
578
|
+
*/
|
|
555
579
|
startIncomingTransactionPolling() {
|
|
556
580
|
__classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").start();
|
|
557
581
|
}
|
|
582
|
+
/**
|
|
583
|
+
* Stops polling for incoming transactions from the remote transaction source.
|
|
584
|
+
*/
|
|
558
585
|
stopIncomingTransactionPolling() {
|
|
559
586
|
__classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").stop();
|
|
560
587
|
}
|
|
@@ -574,7 +601,7 @@ export class TransactionController extends BaseController {
|
|
|
574
601
|
* @param transactionId - The ID of the transaction to cancel.
|
|
575
602
|
* @param gasValues - The gas values to use for the cancellation transaction.
|
|
576
603
|
* @param options - The options for the cancellation transaction.
|
|
577
|
-
* @param options.actionId - Unique ID
|
|
604
|
+
* @param options.actionId - Unique ID persisted on transaction metadata.
|
|
578
605
|
* @param options.estimatedBaseFee - The estimated base fee of the transaction.
|
|
579
606
|
*/
|
|
580
607
|
async stopTransaction(transactionId, gasValues, { estimatedBaseFee, actionId, } = {}) {
|
|
@@ -603,7 +630,7 @@ export class TransactionController extends BaseController {
|
|
|
603
630
|
* @param transactionId - The ID of the transaction to speed up.
|
|
604
631
|
* @param gasValues - The gas values to use for the speed up transaction.
|
|
605
632
|
* @param options - The options for the speed up transaction.
|
|
606
|
-
* @param options.actionId - Unique ID
|
|
633
|
+
* @param options.actionId - Unique ID persisted on transaction metadata.
|
|
607
634
|
* @param options.estimatedBaseFee - The estimated base fee of the transaction.
|
|
608
635
|
*/
|
|
609
636
|
async speedUpTransaction(transactionId, gasValues, { actionId, estimatedBaseFee, } = {}) {
|
|
@@ -915,6 +942,14 @@ export class TransactionController extends BaseController {
|
|
|
915
942
|
this.updateTransaction(updatedMeta, `${controllerName}:updatePreviousGasParams - Previous gas values updated`);
|
|
916
943
|
return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
917
944
|
}
|
|
945
|
+
/**
|
|
946
|
+
* Acquires a nonce lock for the given address on the specified network,
|
|
947
|
+
* ensuring that nonces are assigned sequentially without conflicts.
|
|
948
|
+
*
|
|
949
|
+
* @param address - The account address for which to acquire the nonce lock.
|
|
950
|
+
* @param networkClientId - The ID of the network client to use.
|
|
951
|
+
* @returns A promise that resolves to a nonce lock containing the next nonce and a release function.
|
|
952
|
+
*/
|
|
918
953
|
async getNonceLock(address, networkClientId) {
|
|
919
954
|
return __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNonceLock(address, networkClientId);
|
|
920
955
|
}
|
|
@@ -1179,6 +1214,15 @@ export class TransactionController extends BaseController {
|
|
|
1179
1214
|
}
|
|
1180
1215
|
return filteredTransactions;
|
|
1181
1216
|
}
|
|
1217
|
+
/**
|
|
1218
|
+
* Estimates the gas fees for a transaction.
|
|
1219
|
+
*
|
|
1220
|
+
* @param args - The arguments for estimating gas fees.
|
|
1221
|
+
* @param args.transactionParams - The transaction parameters to estimate fees for.
|
|
1222
|
+
* @param args.chainId - The chain ID to use. If not provided, the network client ID is used to determine the chain.
|
|
1223
|
+
* @param args.networkClientId - The network client ID to use for the estimation.
|
|
1224
|
+
* @returns A promise that resolves to the estimated gas fee response.
|
|
1225
|
+
*/
|
|
1182
1226
|
async estimateGasFee({ transactionParams, chainId, networkClientId: requestNetworkClientId, }) {
|
|
1183
1227
|
const { id: networkClientId, provider } = __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({
|
|
1184
1228
|
chainId,
|
|
@@ -1391,12 +1435,32 @@ export class TransactionController extends BaseController {
|
|
|
1391
1435
|
transactionMeta: updatedTransactionMeta,
|
|
1392
1436
|
});
|
|
1393
1437
|
}
|
|
1438
|
+
/**
|
|
1439
|
+
* Retrieve available gas fee tokens for a transaction.
|
|
1440
|
+
*
|
|
1441
|
+
* @param request - The request object containing transaction details.
|
|
1442
|
+
* @returns The list of available gas fee tokens.
|
|
1443
|
+
*/
|
|
1444
|
+
async getGasFeeTokens(request) {
|
|
1445
|
+
const { chainId, data, from, to, value } = request;
|
|
1446
|
+
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId });
|
|
1447
|
+
const delegationAddress = await getDelegationAddress(from, ethQuery);
|
|
1448
|
+
const transaction = {
|
|
1449
|
+
chainId,
|
|
1450
|
+
delegationAddress,
|
|
1451
|
+
isExternalSign: true,
|
|
1452
|
+
txParams: {
|
|
1453
|
+
data,
|
|
1454
|
+
from,
|
|
1455
|
+
to,
|
|
1456
|
+
value,
|
|
1457
|
+
},
|
|
1458
|
+
};
|
|
1459
|
+
const result = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, transaction);
|
|
1460
|
+
return result.gasFeeTokens;
|
|
1461
|
+
}
|
|
1394
1462
|
}
|
|
1395
1463
|
_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, }) {
|
|
1396
|
-
// If transaction is found for same action id, do not create a new transaction.
|
|
1397
|
-
if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId)) {
|
|
1398
|
-
return;
|
|
1399
|
-
}
|
|
1400
1464
|
if (gasValues) {
|
|
1401
1465
|
// Not good practice to reassign a parameter but temporarily avoiding a larger refactor.
|
|
1402
1466
|
// eslint-disable-next-line no-param-reassign
|
|
@@ -1534,7 +1598,7 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1534
1598
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_failTransaction).call(this, requiredTransactionMeta, new Error('Parent transaction incomplete at startup'));
|
|
1535
1599
|
}
|
|
1536
1600
|
}
|
|
1537
|
-
}, _TransactionController_processApproval = async function _TransactionController_processApproval(transactionMeta, { actionId,
|
|
1601
|
+
}, _TransactionController_processApproval = async function _TransactionController_processApproval(transactionMeta, { actionId, publishHook, requireApproval, shouldShowRequest = true, traceContext, }) {
|
|
1538
1602
|
const { id: transactionId, isStateOnly } = transactionMeta;
|
|
1539
1603
|
if (isStateOnly) {
|
|
1540
1604
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipValidation: true }, (tx) => {
|
|
@@ -1548,7 +1612,7 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1548
1612
|
const finishedPromise = isCompleted
|
|
1549
1613
|
? Promise.resolve(meta)
|
|
1550
1614
|
: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_waitForTransactionFinished).call(this, transactionId);
|
|
1551
|
-
if (meta && !
|
|
1615
|
+
if (meta && !isCompleted) {
|
|
1552
1616
|
try {
|
|
1553
1617
|
if (requireApproval !== false) {
|
|
1554
1618
|
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, {
|
|
@@ -1964,8 +2028,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1964
2028
|
});
|
|
1965
2029
|
this.updateTransaction(updatedTransactionMeta, 'TransactionController#setTransactionStatusDropped - Transaction dropped');
|
|
1966
2030
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, updatedTransactionMeta);
|
|
1967
|
-
}, _TransactionController_getTransactionWithActionId = function _TransactionController_getTransactionWithActionId(actionId) {
|
|
1968
|
-
return this.state.transactions.find((transaction) => actionId && transaction.actionId === actionId);
|
|
1969
2031
|
}, _TransactionController_waitForTransactionFinished = async function _TransactionController_waitForTransactionFinished(transactionId) {
|
|
1970
2032
|
return new Promise((resolve) => {
|
|
1971
2033
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").once(`${transactionId}:finished`, (txMeta) => {
|
|
@@ -2332,18 +2394,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2332
2394
|
txMeta: transactionMeta,
|
|
2333
2395
|
});
|
|
2334
2396
|
}, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
|
|
2335
|
-
this.messenger.
|
|
2336
|
-
this.messenger.registerActionHandler(`${controllerName}:addTransactionBatch`, this.addTransactionBatch.bind(this));
|
|
2337
|
-
this.messenger.registerActionHandler(`${controllerName}:confirmExternalTransaction`, this.confirmExternalTransaction.bind(this));
|
|
2338
|
-
this.messenger.registerActionHandler(`${controllerName}:emulateNewTransaction`, this.emulateNewTransaction.bind(this));
|
|
2339
|
-
this.messenger.registerActionHandler(`${controllerName}:emulateTransactionUpdate`, this.emulateTransactionUpdate.bind(this));
|
|
2340
|
-
this.messenger.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
|
|
2341
|
-
this.messenger.registerActionHandler(`${controllerName}:estimateGasBatch`, this.estimateGasBatch.bind(this));
|
|
2342
|
-
this.messenger.registerActionHandler(`${controllerName}:getGasFeeTokens`, __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokensAction).bind(this));
|
|
2343
|
-
this.messenger.registerActionHandler(`${controllerName}:getNonceLock`, this.getNonceLock.bind(this));
|
|
2344
|
-
this.messenger.registerActionHandler(`${controllerName}:getTransactions`, this.getTransactions.bind(this));
|
|
2345
|
-
this.messenger.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
|
|
2346
|
-
this.messenger.registerActionHandler(`${controllerName}:updateTransaction`, this.updateTransaction.bind(this));
|
|
2397
|
+
this.messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);
|
|
2347
2398
|
}, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
|
|
2348
2399
|
this.update((state) => {
|
|
2349
2400
|
const transactions = state.transactions.filter(({ id }) => id !== transactionId);
|
|
@@ -2437,22 +2488,5 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2437
2488
|
publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
|
|
2438
2489
|
transactionMeta: transaction,
|
|
2439
2490
|
});
|
|
2440
|
-
}, _TransactionController_getGasFeeTokensAction = async function _TransactionController_getGasFeeTokensAction(request) {
|
|
2441
|
-
const { chainId, data, from, to, value } = request;
|
|
2442
|
-
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId });
|
|
2443
|
-
const delegationAddress = await getDelegationAddress(from, ethQuery);
|
|
2444
|
-
const transaction = {
|
|
2445
|
-
chainId,
|
|
2446
|
-
delegationAddress,
|
|
2447
|
-
isExternalSign: true,
|
|
2448
|
-
txParams: {
|
|
2449
|
-
data,
|
|
2450
|
-
from,
|
|
2451
|
-
to,
|
|
2452
|
-
value,
|
|
2453
|
-
},
|
|
2454
|
-
};
|
|
2455
|
-
const result = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, transaction);
|
|
2456
|
-
return result.gasFeeTokens;
|
|
2457
2491
|
};
|
|
2458
2492
|
//# sourceMappingURL=TransactionController.mjs.map
|