@metamask/transaction-controller 61.3.0 → 62.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.
Files changed (40) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/dist/TransactionController.cjs +82 -17
  3. package/dist/TransactionController.cjs.map +1 -1
  4. package/dist/TransactionController.d.cts +9 -2
  5. package/dist/TransactionController.d.cts.map +1 -1
  6. package/dist/TransactionController.d.mts +9 -2
  7. package/dist/TransactionController.d.mts.map +1 -1
  8. package/dist/TransactionController.mjs +83 -18
  9. package/dist/TransactionController.mjs.map +1 -1
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.cts +2 -2
  12. package/dist/index.d.cts.map +1 -1
  13. package/dist/index.d.mts +2 -2
  14. package/dist/index.d.mts.map +1 -1
  15. package/dist/index.mjs.map +1 -1
  16. package/dist/types.cjs.map +1 -1
  17. package/dist/types.d.cts +21 -0
  18. package/dist/types.d.cts.map +1 -1
  19. package/dist/types.d.mts +21 -0
  20. package/dist/types.d.mts.map +1 -1
  21. package/dist/types.mjs.map +1 -1
  22. package/dist/utils/batch.cjs +19 -9
  23. package/dist/utils/batch.cjs.map +1 -1
  24. package/dist/utils/batch.mjs +19 -9
  25. package/dist/utils/batch.mjs.map +1 -1
  26. package/dist/utils/first-time-interaction.cjs +7 -2
  27. package/dist/utils/first-time-interaction.cjs.map +1 -1
  28. package/dist/utils/first-time-interaction.d.cts +1 -1
  29. package/dist/utils/first-time-interaction.d.cts.map +1 -1
  30. package/dist/utils/first-time-interaction.d.mts +1 -1
  31. package/dist/utils/first-time-interaction.d.mts.map +1 -1
  32. package/dist/utils/first-time-interaction.mjs +7 -2
  33. package/dist/utils/first-time-interaction.mjs.map +1 -1
  34. package/dist/utils/gas-fee-tokens.cjs +8 -11
  35. package/dist/utils/gas-fee-tokens.cjs.map +1 -1
  36. package/dist/utils/gas-fee-tokens.d.cts.map +1 -1
  37. package/dist/utils/gas-fee-tokens.d.mts.map +1 -1
  38. package/dist/utils/gas-fee-tokens.mjs +8 -11
  39. package/dist/utils/gas-fee-tokens.mjs.map +1 -1
  40. package/package.json +11 -11
package/CHANGELOG.md CHANGED
@@ -7,6 +7,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [62.1.0]
11
+
12
+ ### Changed
13
+
14
+ - Performance optimisations in `addTransaction` and `addTransactionBatch` methods ([#7205](https://github.com/MetaMask/core/pull/7205))
15
+ - Add `skipInitialGasEstimate` option to `addTransaction` and `addTransactionBatch` methods.
16
+ - Add `disableUpgrade` option to `addTransactionBatch` method.
17
+
18
+ ## [62.0.0]
19
+
20
+ ### Added
21
+
22
+ - Add `TransactionController:getGasFeeTokens` messenger action ([#7197](https://github.com/MetaMask/core/pull/7197))
23
+ - Add `TransactionControllerGetGasFeeTokensAction` and `GetGasFeeTokensRequest` types.
24
+
25
+ ### Changed
26
+
27
+ - Bump `@metamask/controller-utils` from `^11.15.0` to `^11.16.0` ([#7202](https://github.com/MetaMask/core/pull/7202))
28
+ - **BREAKING:** Bump `@metamask/network-controller` from `^25.0.0` to `^26.0.0` ([#7202](https://github.com/MetaMask/core/pull/7202))
29
+ - **BREAKING:** Bump `@metamask/gas-fee-controller` from `^25.0.0` to `^26.0.0` ([#7202](https://github.com/MetaMask/core/pull/7202))
30
+ - **BREAKING:** Bump `@metamask/accounts-controller` from `^34.0.0` to `^35.0.0` ([#7202](https://github.com/MetaMask/core/pull/7202))
31
+
32
+ ### Fixed
33
+
34
+ - Always run `beforeSign` hook even if using `gasFeeToken` and `isGasFeeTokenIgnoredIfBalance` ([#7172](https://github.com/MetaMask/core/pull/7172))
35
+
10
36
  ## [61.3.0]
11
37
 
12
38
  ### Added
@@ -1934,7 +1960,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1934
1960
 
1935
1961
  All changes listed after this point were applied to this package following the monorepo conversion.
1936
1962
 
1937
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@61.3.0...HEAD
1963
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.1.0...HEAD
1964
+ [62.1.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.0.0...@metamask/transaction-controller@62.1.0
1965
+ [62.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@61.3.0...@metamask/transaction-controller@62.0.0
1938
1966
  [61.3.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@61.2.0...@metamask/transaction-controller@61.3.0
1939
1967
  [61.2.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@61.1.0...@metamask/transaction-controller@61.2.0
1940
1968
  [61.1.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@61.0.0...@metamask/transaction-controller@61.1.0
@@ -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_isHistoryDisabled, _TransactionController_isSendFlowHistoryDisabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _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_transactionHistoryLimit, _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_getTransactionWithActionId, _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;
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_isHistoryDisabled, _TransactionController_isSendFlowHistoryDisabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _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_transactionHistoryLimit, _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_getTransactionWithActionId, _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, _TransactionController_getGasFeeTokensAction;
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");
@@ -378,7 +378,7 @@ class TransactionController extends base_controller_1.BaseController {
378
378
  */
379
379
  async addTransaction(txParams, options) {
380
380
  (0, logger_1.projectLogger)('Adding transaction', txParams, options);
381
- const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, method, nestedTransactions, networkClientId, origin, publishHook, requireApproval, securityAlertResponse, sendFlowHistory, swaps = {}, traceContext, type, } = options;
381
+ const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, method, nestedTransactions, networkClientId, origin, publishHook, requireApproval, securityAlertResponse, sendFlowHistory, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
382
382
  txParams = (0, utils_2.normalizeTransactionParams)(txParams);
383
383
  if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
384
384
  throw new Error(`Network client not found - ${networkClientId}`);
@@ -414,7 +414,6 @@ class TransactionController extends base_controller_1.BaseController {
414
414
  }
415
415
  const dappSuggestedGasFees = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_generateDappSuggestedGasFees).call(this, txParams, origin);
416
416
  const transactionType = type ?? (await (0, transaction_type_1.determineTransactionType)(txParams, ethQuery)).type;
417
- const delegationAddress = await delegationAddressPromise;
418
417
  const existingTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId);
419
418
  // If a request to add a transaction with the same actionId is submitted again, a new transaction will not be created for it.
420
419
  let addedTransactionMeta = existingTransactionMeta
@@ -426,7 +425,6 @@ class TransactionController extends base_controller_1.BaseController {
426
425
  batchId,
427
426
  chainId,
428
427
  dappSuggestedGasFees,
429
- delegationAddress,
430
428
  deviceConfirmedOn,
431
429
  disableGasBuffer,
432
430
  id: (0, uuid_1.v1)(),
@@ -454,9 +452,32 @@ class TransactionController extends base_controller_1.BaseController {
454
452
  addedTransactionMeta.txParamsOriginal = (0, lodash_1.cloneDeep)(addedTransactionMeta.txParams);
455
453
  updateTransaction(addedTransactionMeta);
456
454
  }
457
- await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Estimate Gas Properties', parentContext: traceContext }, (context) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasProperties).call(this, addedTransactionMeta, {
458
- traceContext: context,
459
- }));
455
+ if (!skipInitialGasEstimate) {
456
+ await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Estimate Gas Properties', parentContext: traceContext }, (context) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasProperties).call(this, addedTransactionMeta, {
457
+ traceContext: context,
458
+ }));
459
+ }
460
+ else {
461
+ const newTransactionMeta = (0, lodash_1.cloneDeep)(addedTransactionMeta);
462
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasProperties).call(this, newTransactionMeta)
463
+ .then(() => {
464
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
465
+ transactionId: newTransactionMeta.id,
466
+ skipHistory: true,
467
+ skipResimulateCheck: true,
468
+ skipValidation: true,
469
+ }, (tx) => {
470
+ tx.txParams.gas = newTransactionMeta.txParams.gas;
471
+ tx.txParams.gasPrice = newTransactionMeta.txParams.gasPrice;
472
+ tx.txParams.maxFeePerGas =
473
+ newTransactionMeta.txParams.maxFeePerGas;
474
+ tx.txParams.maxPriorityFeePerGas =
475
+ newTransactionMeta.txParams.maxPriorityFeePerGas;
476
+ });
477
+ return undefined;
478
+ })
479
+ .catch(lodash_1.noop);
480
+ }
460
481
  // Checks if a transaction already exists with a given actionId
461
482
  if (!existingTransactionMeta) {
462
483
  // Set security provider response
@@ -478,6 +499,19 @@ class TransactionController extends base_controller_1.BaseController {
478
499
  messenger: this.messenger,
479
500
  });
480
501
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addMetadata).call(this, addedTransactionMeta);
502
+ delegationAddressPromise
503
+ .then((delegationAddress) => {
504
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
505
+ transactionId: addedTransactionMeta.id,
506
+ skipHistory: true,
507
+ skipResimulateCheck: true,
508
+ skipValidation: true,
509
+ }, (tx) => {
510
+ tx.delegationAddress = delegationAddress;
511
+ });
512
+ return undefined;
513
+ })
514
+ .catch(lodash_1.noop);
481
515
  if (requireApproval !== false) {
482
516
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).call(this, addedTransactionMeta, {
483
517
  traceContext,
@@ -1604,6 +1638,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1604
1638
  });
1605
1639
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMeta);
1606
1640
  const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_signTransaction).call(this, transactionMeta));
1641
+ transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1607
1642
  if (!(await __classPrivateFieldGet(this, _TransactionController_beforePublish, "f").call(this, transactionMeta))) {
1608
1643
  (0, logger_1.projectLogger)('Skipping publishing transaction based on hook');
1609
1644
  this.messenger.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
@@ -1916,8 +1951,26 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1916
1951
  const currentNetworkIsEIP1559Compatible = await __classPrivateFieldGet(this, _TransactionController_getCurrentNetworkEIP1559Compatibility, "f").call(this, networkClientId);
1917
1952
  const currentAccountIsEIP1559Compatible = await __classPrivateFieldGet(this, _TransactionController_getCurrentAccountEIP1559Compatibility, "f").call(this);
1918
1953
  return (currentNetworkIsEIP1559Compatible && currentAccountIsEIP1559Compatible);
1919
- }, _TransactionController_signTransaction = async function _TransactionController_signTransaction(transactionMeta) {
1920
- const { chainId, id: transactionId, isExternalSign, txParams, } = transactionMeta;
1954
+ }, _TransactionController_signTransaction = async function _TransactionController_signTransaction(originalTransactionMeta) {
1955
+ let transactionMeta = originalTransactionMeta;
1956
+ const { id: transactionId } = transactionMeta;
1957
+ (0, logger_1.projectLogger)('Calling before sign hook', transactionMeta);
1958
+ const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
1959
+ if (updateTransaction) {
1960
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true, note: 'beforeSign Hook' }, updateTransaction);
1961
+ (0, logger_1.projectLogger)('Updated transaction after before sign hook');
1962
+ }
1963
+ transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1964
+ const { networkClientId } = transactionMeta;
1965
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
1966
+ await (0, gas_fee_tokens_1.checkGasFeeTokenBeforePublish)({
1967
+ ethQuery,
1968
+ fetchGasFeeTokens: async (tx) => (await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, tx)).gasFeeTokens,
1969
+ transaction: transactionMeta,
1970
+ updateTransaction: (txId, fn) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId: txId }, fn),
1971
+ });
1972
+ transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1973
+ const { chainId, isExternalSign, txParams } = transactionMeta;
1921
1974
  if (isExternalSign) {
1922
1975
  (0, logger_1.projectLogger)('Skipping sign as signed externally');
1923
1976
  return undefined;
@@ -1933,12 +1986,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1933
1986
  txMeta.txParams.authorizationList = signedAuthorizationList;
1934
1987
  });
1935
1988
  }
1936
- (0, logger_1.projectLogger)('Calling before sign hook', transactionMeta);
1937
- const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
1938
- if (updateTransaction) {
1939
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true, note: 'beforeSign Hook' }, updateTransaction);
1940
- (0, logger_1.projectLogger)('Updated transaction after before sign hook');
1941
- }
1989
+ transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1942
1990
  const finalTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1943
1991
  const { txParams: finalTxParams } = finalTransactionMeta;
1944
1992
  const unsignedEthTx = (0, prepare_1.prepareTransaction)(chainId, finalTxParams);
@@ -2255,13 +2303,14 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2255
2303
  this.messenger.registerActionHandler(`${controllerName}:addTransaction`, this.addTransaction.bind(this));
2256
2304
  this.messenger.registerActionHandler(`${controllerName}:addTransactionBatch`, this.addTransactionBatch.bind(this));
2257
2305
  this.messenger.registerActionHandler(`${controllerName}:confirmExternalTransaction`, this.confirmExternalTransaction.bind(this));
2306
+ this.messenger.registerActionHandler(`${controllerName}:emulateNewTransaction`, this.emulateNewTransaction.bind(this));
2307
+ this.messenger.registerActionHandler(`${controllerName}:emulateTransactionUpdate`, this.emulateTransactionUpdate.bind(this));
2258
2308
  this.messenger.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
2309
+ this.messenger.registerActionHandler(`${controllerName}:getGasFeeTokens`, __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokensAction).bind(this));
2259
2310
  this.messenger.registerActionHandler(`${controllerName}:getNonceLock`, this.getNonceLock.bind(this));
2260
2311
  this.messenger.registerActionHandler(`${controllerName}:getTransactions`, this.getTransactions.bind(this));
2261
2312
  this.messenger.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
2262
2313
  this.messenger.registerActionHandler(`${controllerName}:updateTransaction`, this.updateTransaction.bind(this));
2263
- this.messenger.registerActionHandler(`${controllerName}:emulateNewTransaction`, this.emulateNewTransaction.bind(this));
2264
- this.messenger.registerActionHandler(`${controllerName}:emulateTransactionUpdate`, this.emulateTransactionUpdate.bind(this));
2265
2314
  }, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
2266
2315
  this.update((state) => {
2267
2316
  const transactions = state.transactions.filter(({ id }) => id !== transactionId);
@@ -2358,5 +2407,21 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2358
2407
  publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
2359
2408
  transactionMeta: transaction,
2360
2409
  });
2410
+ }, _TransactionController_getGasFeeTokensAction = async function _TransactionController_getGasFeeTokensAction(request) {
2411
+ const { chainId, data, from, to, value } = request;
2412
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId });
2413
+ const delegationAddress = await (0, eip7702_1.getDelegationAddress)(from, ethQuery);
2414
+ const transaction = {
2415
+ chainId,
2416
+ delegationAddress,
2417
+ txParams: {
2418
+ data,
2419
+ from,
2420
+ to,
2421
+ value,
2422
+ },
2423
+ };
2424
+ const result = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, transaction);
2425
+ return result.gasFeeTokens;
2361
2426
  };
2362
2427
  //# sourceMappingURL=TransactionController.cjs.map