@metamask/transaction-controller 61.2.0 → 62.0.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 (48) hide show
  1. package/CHANGELOG.md +28 -1
  2. package/dist/TransactionController.cjs +65 -22
  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 +66 -23
  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/balance-changes.cjs +3 -4
  23. package/dist/utils/balance-changes.cjs.map +1 -1
  24. package/dist/utils/balance-changes.d.cts.map +1 -1
  25. package/dist/utils/balance-changes.d.mts.map +1 -1
  26. package/dist/utils/balance-changes.mjs +4 -5
  27. package/dist/utils/balance-changes.mjs.map +1 -1
  28. package/dist/utils/balance.cjs +40 -0
  29. package/dist/utils/balance.cjs.map +1 -0
  30. package/dist/utils/balance.d.cts +23 -0
  31. package/dist/utils/balance.d.cts.map +1 -0
  32. package/dist/utils/balance.d.mts +23 -0
  33. package/dist/utils/balance.d.mts.map +1 -0
  34. package/dist/utils/balance.mjs +35 -0
  35. package/dist/utils/balance.mjs.map +1 -0
  36. package/dist/utils/batch.cjs +2 -1
  37. package/dist/utils/batch.cjs.map +1 -1
  38. package/dist/utils/batch.mjs +2 -1
  39. package/dist/utils/batch.mjs.map +1 -1
  40. package/dist/utils/gas-fee-tokens.cjs +39 -1
  41. package/dist/utils/gas-fee-tokens.cjs.map +1 -1
  42. package/dist/utils/gas-fee-tokens.d.cts +16 -0
  43. package/dist/utils/gas-fee-tokens.d.cts.map +1 -1
  44. package/dist/utils/gas-fee-tokens.d.mts +16 -0
  45. package/dist/utils/gas-fee-tokens.d.mts.map +1 -1
  46. package/dist/utils/gas-fee-tokens.mjs +37 -0
  47. package/dist/utils/gas-fee-tokens.mjs.map +1 -1
  48. package/package.json +12 -11
package/CHANGELOG.md CHANGED
@@ -7,6 +7,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [62.0.0]
11
+
12
+ ### Added
13
+
14
+ - Add `TransactionController:getGasFeeTokens` messenger action ([#7197](https://github.com/MetaMask/core/pull/7197))
15
+ - Add `TransactionControllerGetGasFeeTokensAction` and `GetGasFeeTokensRequest` types.
16
+
17
+ ### Changed
18
+
19
+ - Bump `@metamask/controller-utils` from `^11.15.0` to `^11.16.0` ([#7202](https://github.com/MetaMask/core/pull/7202))
20
+ - **BREAKING:** Bump `@metamask/network-controller` from `^25.0.0` to `^26.0.0` ([#7202](https://github.com/MetaMask/core/pull/7202))
21
+ - **BREAKING:** Bump `@metamask/gas-fee-controller` from `^25.0.0` to `^26.0.0` ([#7202](https://github.com/MetaMask/core/pull/7202))
22
+ - **BREAKING:** Bump `@metamask/accounts-controller` from `^34.0.0` to `^35.0.0` ([#7202](https://github.com/MetaMask/core/pull/7202))
23
+
24
+ ### Fixed
25
+
26
+ - Always run `beforeSign` hook even if using `gasFeeToken` and `isGasFeeTokenIgnoredIfBalance` ([#7172](https://github.com/MetaMask/core/pull/7172))
27
+
28
+ ## [61.3.0]
29
+
30
+ ### Added
31
+
32
+ - Add optional `gasFeeToken` property to `addTransaction` and `addTransactionBatch` methods ([#7123](https://github.com/MetaMask/core/pull/7123))
33
+ - Also add optional `gasFeeToken` and `isGasFeeTokenIgnoredIfBalance` properties to `TransactionMeta`.
34
+
10
35
  ## [61.2.0]
11
36
 
12
37
  ### Added
@@ -1927,7 +1952,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1927
1952
 
1928
1953
  All changes listed after this point were applied to this package following the monorepo conversion.
1929
1954
 
1930
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@61.2.0...HEAD
1955
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.0.0...HEAD
1956
+ [62.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@61.3.0...@metamask/transaction-controller@62.0.0
1957
+ [61.3.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@61.2.0...@metamask/transaction-controller@61.3.0
1931
1958
  [61.2.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@61.1.0...@metamask/transaction-controller@61.2.0
1932
1959
  [61.1.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@61.0.0...@metamask/transaction-controller@61.1.0
1933
1960
  [61.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.10.0...@metamask/transaction-controller@61.0.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;
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, 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, 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}`);
@@ -430,6 +430,7 @@ class TransactionController extends base_controller_1.BaseController {
430
430
  deviceConfirmedOn,
431
431
  disableGasBuffer,
432
432
  id: (0, uuid_1.v1)(),
433
+ isGasFeeTokenIgnoredIfBalance: Boolean(gasFeeToken),
433
434
  isGasFeeIncluded,
434
435
  isGasFeeSponsored,
435
436
  isFirstTimeInteraction: undefined,
@@ -437,6 +438,7 @@ class TransactionController extends base_controller_1.BaseController {
437
438
  networkClientId,
438
439
  origin,
439
440
  securityAlertResponse,
441
+ selectedGasFeeToken: gasFeeToken,
440
442
  status: types_1.TransactionStatus.unapproved,
441
443
  time: Date.now(),
442
444
  txParams,
@@ -1575,6 +1577,15 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1575
1577
  }
1576
1578
  __classPrivateFieldGet(this, _TransactionController_approvingTransactionIds, "f").add(transactionId);
1577
1579
  clearApprovingTransactionId = () => __classPrivateFieldGet(this, _TransactionController_approvingTransactionIds, "f").delete(transactionId);
1580
+ const { networkClientId } = transactionMeta;
1581
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
1582
+ await (0, gas_fee_tokens_1.checkGasFeeTokenBeforePublish)({
1583
+ ethQuery,
1584
+ fetchGasFeeTokens: async (tx) => (await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, tx)).gasFeeTokens,
1585
+ transaction: transactionMeta,
1586
+ updateTransaction: (txId, fn) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId: txId }, fn),
1587
+ });
1588
+ transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1578
1589
  const [nonce, releaseNonce] = await (0, nonce_1.getNextNonce)(transactionMeta, (address) => __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNonceLock(address, transactionMeta.networkClientId));
1579
1590
  clearNonceLock = releaseNonce;
1580
1591
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
@@ -1593,6 +1604,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1593
1604
  });
1594
1605
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMeta);
1595
1606
  const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_signTransaction).call(this, transactionMeta));
1607
+ transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1596
1608
  if (!(await __classPrivateFieldGet(this, _TransactionController_beforePublish, "f").call(this, transactionMeta))) {
1597
1609
  (0, logger_1.projectLogger)('Skipping publishing transaction based on hook');
1598
1610
  this.messenger.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
@@ -1601,8 +1613,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1601
1613
  if (!rawTx && !transactionMeta.isExternalSign) {
1602
1614
  return ApprovalState.NotApproved;
1603
1615
  }
1604
- const { networkClientId } = transactionMeta;
1605
- const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
1606
1616
  let preTxBalance;
1607
1617
  const shouldUpdatePreTxBalance = transactionMeta.type === types_1.TransactionType.swap;
1608
1618
  if (shouldUpdatePreTxBalance) {
@@ -1907,8 +1917,26 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1907
1917
  const currentNetworkIsEIP1559Compatible = await __classPrivateFieldGet(this, _TransactionController_getCurrentNetworkEIP1559Compatibility, "f").call(this, networkClientId);
1908
1918
  const currentAccountIsEIP1559Compatible = await __classPrivateFieldGet(this, _TransactionController_getCurrentAccountEIP1559Compatibility, "f").call(this);
1909
1919
  return (currentNetworkIsEIP1559Compatible && currentAccountIsEIP1559Compatible);
1910
- }, _TransactionController_signTransaction = async function _TransactionController_signTransaction(transactionMeta) {
1911
- const { chainId, id: transactionId, isExternalSign, txParams, } = transactionMeta;
1920
+ }, _TransactionController_signTransaction = async function _TransactionController_signTransaction(originalTransactionMeta) {
1921
+ let transactionMeta = originalTransactionMeta;
1922
+ const { id: transactionId } = transactionMeta;
1923
+ (0, logger_1.projectLogger)('Calling before sign hook', transactionMeta);
1924
+ const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
1925
+ if (updateTransaction) {
1926
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true, note: 'beforeSign Hook' }, updateTransaction);
1927
+ (0, logger_1.projectLogger)('Updated transaction after before sign hook');
1928
+ }
1929
+ transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1930
+ const { networkClientId } = transactionMeta;
1931
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
1932
+ await (0, gas_fee_tokens_1.checkGasFeeTokenBeforePublish)({
1933
+ ethQuery,
1934
+ fetchGasFeeTokens: async (tx) => (await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, tx)).gasFeeTokens,
1935
+ transaction: transactionMeta,
1936
+ updateTransaction: (txId, fn) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId: txId }, fn),
1937
+ });
1938
+ transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1939
+ const { chainId, isExternalSign, txParams } = transactionMeta;
1912
1940
  if (isExternalSign) {
1913
1941
  (0, logger_1.projectLogger)('Skipping sign as signed externally');
1914
1942
  return undefined;
@@ -1924,12 +1952,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1924
1952
  txMeta.txParams.authorizationList = signedAuthorizationList;
1925
1953
  });
1926
1954
  }
1927
- (0, logger_1.projectLogger)('Calling before sign hook', transactionMeta);
1928
- const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
1929
- if (updateTransaction) {
1930
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true, note: 'beforeSign Hook' }, updateTransaction);
1931
- (0, logger_1.projectLogger)('Updated transaction after before sign hook');
1932
- }
1955
+ transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1933
1956
  const finalTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1934
1957
  const { txParams: finalTxParams } = finalTransactionMeta;
1935
1958
  const unsignedEthTx = (0, prepare_1.prepareTransaction)(chainId, finalTxParams);
@@ -2148,14 +2171,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2148
2171
  isUpdatedAfterSecurityCheck: true,
2149
2172
  };
2150
2173
  }
2151
- const gasFeeTokensResponse = await (0, gas_fee_tokens_1.getGasFeeTokens)({
2152
- chainId,
2153
- getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
2154
- isEIP7702GasFeeTokensEnabled: __classPrivateFieldGet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, "f"),
2155
- messenger: this.messenger,
2156
- publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
2157
- transactionMeta,
2158
- });
2174
+ const gasFeeTokensResponse = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, transactionMeta);
2159
2175
  gasFeeTokens = gasFeeTokensResponse?.gasFeeTokens ?? [];
2160
2176
  isGasFeeSponsored = gasFeeTokensResponse?.isGasFeeSponsored ?? false;
2161
2177
  }
@@ -2253,13 +2269,14 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2253
2269
  this.messenger.registerActionHandler(`${controllerName}:addTransaction`, this.addTransaction.bind(this));
2254
2270
  this.messenger.registerActionHandler(`${controllerName}:addTransactionBatch`, this.addTransactionBatch.bind(this));
2255
2271
  this.messenger.registerActionHandler(`${controllerName}:confirmExternalTransaction`, this.confirmExternalTransaction.bind(this));
2272
+ this.messenger.registerActionHandler(`${controllerName}:emulateNewTransaction`, this.emulateNewTransaction.bind(this));
2273
+ this.messenger.registerActionHandler(`${controllerName}:emulateTransactionUpdate`, this.emulateTransactionUpdate.bind(this));
2256
2274
  this.messenger.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
2275
+ this.messenger.registerActionHandler(`${controllerName}:getGasFeeTokens`, __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokensAction).bind(this));
2257
2276
  this.messenger.registerActionHandler(`${controllerName}:getNonceLock`, this.getNonceLock.bind(this));
2258
2277
  this.messenger.registerActionHandler(`${controllerName}:getTransactions`, this.getTransactions.bind(this));
2259
2278
  this.messenger.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
2260
2279
  this.messenger.registerActionHandler(`${controllerName}:updateTransaction`, this.updateTransaction.bind(this));
2261
- this.messenger.registerActionHandler(`${controllerName}:emulateNewTransaction`, this.emulateNewTransaction.bind(this));
2262
- this.messenger.registerActionHandler(`${controllerName}:emulateTransactionUpdate`, this.emulateTransactionUpdate.bind(this));
2263
2280
  }, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
2264
2281
  this.update((state) => {
2265
2282
  const transactions = state.transactions.filter(({ id }) => id !== transactionId);
@@ -2346,5 +2363,31 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2346
2363
  });
2347
2364
  (0, logger_1.projectLogger)('Publish successful', transactionHash);
2348
2365
  return { transactionHash };
2366
+ }, _TransactionController_getGasFeeTokens = async function _TransactionController_getGasFeeTokens(transaction) {
2367
+ const { chainId } = transaction;
2368
+ return await (0, gas_fee_tokens_1.getGasFeeTokens)({
2369
+ chainId,
2370
+ getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
2371
+ isEIP7702GasFeeTokensEnabled: __classPrivateFieldGet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, "f"),
2372
+ messenger: this.messenger,
2373
+ publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
2374
+ transactionMeta: transaction,
2375
+ });
2376
+ }, _TransactionController_getGasFeeTokensAction = async function _TransactionController_getGasFeeTokensAction(request) {
2377
+ const { chainId, data, from, to, value } = request;
2378
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId });
2379
+ const delegationAddress = await (0, eip7702_1.getDelegationAddress)(from, ethQuery);
2380
+ const transaction = {
2381
+ chainId,
2382
+ delegationAddress,
2383
+ txParams: {
2384
+ data,
2385
+ from,
2386
+ to,
2387
+ value,
2388
+ },
2389
+ };
2390
+ const result = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, transaction);
2391
+ return result.gasFeeTokens;
2349
2392
  };
2350
2393
  //# sourceMappingURL=TransactionController.cjs.map