@metamask/transaction-controller 62.7.0 → 62.9.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 (52) hide show
  1. package/CHANGELOG.md +33 -1
  2. package/dist/TransactionController.cjs +33 -75
  3. package/dist/TransactionController.cjs.map +1 -1
  4. package/dist/TransactionController.d.cts +12 -13
  5. package/dist/TransactionController.d.cts.map +1 -1
  6. package/dist/TransactionController.d.mts +12 -13
  7. package/dist/TransactionController.d.mts.map +1 -1
  8. package/dist/TransactionController.mjs +33 -75
  9. package/dist/TransactionController.mjs.map +1 -1
  10. package/dist/helpers/PendingTransactionTracker.cjs +39 -26
  11. package/dist/helpers/PendingTransactionTracker.cjs.map +1 -1
  12. package/dist/helpers/PendingTransactionTracker.d.cts.map +1 -1
  13. package/dist/helpers/PendingTransactionTracker.d.mts.map +1 -1
  14. package/dist/helpers/PendingTransactionTracker.mjs +40 -27
  15. package/dist/helpers/PendingTransactionTracker.mjs.map +1 -1
  16. package/dist/index.cjs +1 -4
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.cts +0 -1
  19. package/dist/index.d.cts.map +1 -1
  20. package/dist/index.d.mts +0 -1
  21. package/dist/index.d.mts.map +1 -1
  22. package/dist/index.mjs +0 -1
  23. package/dist/index.mjs.map +1 -1
  24. package/dist/types.cjs.map +1 -1
  25. package/dist/types.d.cts +22 -5
  26. package/dist/types.d.cts.map +1 -1
  27. package/dist/types.d.mts +22 -5
  28. package/dist/types.d.mts.map +1 -1
  29. package/dist/types.mjs.map +1 -1
  30. package/dist/utils/feature-flags.cjs +4 -1
  31. package/dist/utils/feature-flags.cjs.map +1 -1
  32. package/dist/utils/feature-flags.d.cts +5 -0
  33. package/dist/utils/feature-flags.d.cts.map +1 -1
  34. package/dist/utils/feature-flags.d.mts +5 -0
  35. package/dist/utils/feature-flags.d.mts.map +1 -1
  36. package/dist/utils/feature-flags.mjs +4 -1
  37. package/dist/utils/feature-flags.mjs.map +1 -1
  38. package/dist/utils/nonce.cjs +10 -6
  39. package/dist/utils/nonce.cjs.map +1 -1
  40. package/dist/utils/nonce.d.cts.map +1 -1
  41. package/dist/utils/nonce.d.mts.map +1 -1
  42. package/dist/utils/nonce.mjs +10 -6
  43. package/dist/utils/nonce.mjs.map +1 -1
  44. package/package.json +5 -5
  45. package/dist/utils/history.cjs +0 -164
  46. package/dist/utils/history.cjs.map +0 -1
  47. package/dist/utils/history.d.cts +0 -29
  48. package/dist/utils/history.d.cts.map +0 -1
  49. package/dist/utils/history.d.mts +0 -29
  50. package/dist/utils/history.d.mts.map +0 -1
  51. package/dist/utils/history.mjs +0 -164
  52. package/dist/utils/history.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [62.9.0]
11
+
12
+ ### Added
13
+
14
+ - Add optional `targetFiat` property to `MetamaskPayMetadata` type ([#7562](https://github.com/MetaMask/core/pull/7562))
15
+
16
+ ## [62.8.0]
17
+
18
+ ### Added
19
+
20
+ - Add optional `isStateOnly` property to `TransactionMeta` and `AddTransactionOptions` ([#7591](https://github.com/MetaMask/core/pull/7591))
21
+ - Transactions with `isStateOnly` set to `true` have no lifecycle and are not signed or published.
22
+ - Transactions are also excluded from confirmation polling.
23
+
24
+ ### Changed
25
+
26
+ - Bump `@metamask/remote-feature-flag-controller` from `^3.1.0` to `^4.0.0` ([#7546](https://github.com/MetaMask/core/pull/7546))
27
+ - Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](https://github.com/MetaMask/core/pull/7511))
28
+ - Update transaction timeout to check time since submission or when transaction was last seen on network ([#7464](https://github.com/MetaMask/core/pull/7464))
29
+ - Uses `blockTime` from `acceleratedPolling` feature flag.
30
+ - Deprecate `history` and `sendFlowHistory` properties from `TransactionMeta` and `TransactionController` options ([#7326](https://github.com/MetaMask/core/pull/7326))
31
+ - Bump `@metamask/remote-feature-flag-controller` from `^3.0.0` to `^3.1.0` ([#7519](https://github.com/MetaMask/core/pull/7519))
32
+ - Bump `@metamask/network-controller` from `^27.0.0` to `^27.2.0` ([#7534](https://github.com/MetaMask/core/pull/7534), [#7583](https://github.com/MetaMask/core/pull/7583))
33
+ - Bump `@metamask/controller-utils` from `^11.16.0` to `^11.18.0` ([#7534](https://github.com/MetaMask/core/pull/7534), [#7583](https://github.com/MetaMask/core/pull/7583))
34
+ - Update error message for failed on-chain transactions in `PendingTransactionTracker` ([#7552](https://github.com/MetaMask/core/pull/7552))
35
+
36
+ ### Fixed
37
+
38
+ - Include pending authorizations in nonce calculation ([#7446](https://github.com/MetaMask/core/pull/7446))
39
+
10
40
  ## [62.7.0]
11
41
 
12
42
  ### Added
@@ -2035,7 +2065,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2035
2065
 
2036
2066
  All changes listed after this point were applied to this package following the monorepo conversion.
2037
2067
 
2038
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.7.0...HEAD
2068
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.9.0...HEAD
2069
+ [62.9.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.8.0...@metamask/transaction-controller@62.9.0
2070
+ [62.8.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.7.0...@metamask/transaction-controller@62.8.0
2039
2071
  [62.7.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.6.0...@metamask/transaction-controller@62.7.0
2040
2072
  [62.6.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.5.0...@metamask/transaction-controller@62.6.0
2041
2073
  [62.5.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.4.0...@metamask/transaction-controller@62.5.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_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_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;
16
+ var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_afterSign, _TransactionController_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_isTimeoutEnabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_securityProviderRequest, _TransactionController_sign, _TransactionController_signAbortCallbacks, _TransactionController_skipSimulationTransactionIds, _TransactionController_testGasFeeFlows, _TransactionController_trace, _TransactionController_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");
@@ -53,7 +53,6 @@ const gas_1 = require("./utils/gas.cjs");
53
53
  const gas_fee_tokens_1 = require("./utils/gas-fee-tokens.cjs");
54
54
  const gas_fees_1 = require("./utils/gas-fees.cjs");
55
55
  const gas_flow_1 = require("./utils/gas-flow.cjs");
56
- const history_1 = require("./utils/history.cjs");
57
56
  const layer1_gas_fee_flow_1 = require("./utils/layer1-gas-fee-flow.cjs");
58
57
  const nonce_1 = require("./utils/nonce.cjs");
59
58
  const prepare_1 = require("./utils/prepare.cjs");
@@ -144,7 +143,7 @@ class TransactionController extends base_controller_1.BaseController {
144
143
  * @param options - The controller options.
145
144
  */
146
145
  constructor(options) {
147
- const { disableHistory, disableSendFlowHistory, disableSwaps, getCurrentAccountEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, getExternalPendingTransactions, getGasFeeEstimates, getNetworkClientRegistry, getNetworkState, getPermittedAccounts, getSavedGasFees, getSimulationConfig, hooks, incomingTransactions = {}, isAutomaticGasFeeUpdateEnabled, isEIP7702GasFeeTokensEnabled, isFirstTimeInteractionEnabled, isSimulationEnabled, messenger, pendingTransactions = {}, publicKeyEIP7702, securityProviderRequest, sign, state, testGasFeeFlows, trace, transactionHistoryLimit = 40, } = options;
146
+ const { disableSwaps, getCurrentAccountEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, getExternalPendingTransactions, getGasFeeEstimates, getNetworkClientRegistry, getNetworkState, getPermittedAccounts, getSavedGasFees, getSimulationConfig, hooks, incomingTransactions = {}, isAutomaticGasFeeUpdateEnabled, isEIP7702GasFeeTokensEnabled, isFirstTimeInteractionEnabled, isSimulationEnabled, messenger, pendingTransactions = {}, publicKeyEIP7702, securityProviderRequest, sign, state, testGasFeeFlows, trace, transactionHistoryLimit = 40, } = options;
148
147
  super({
149
148
  name: controllerName,
150
149
  metadata,
@@ -178,8 +177,6 @@ class TransactionController extends base_controller_1.BaseController {
178
177
  _TransactionController_isAutomaticGasFeeUpdateEnabled.set(this, void 0);
179
178
  _TransactionController_isEIP7702GasFeeTokensEnabled.set(this, void 0);
180
179
  _TransactionController_isFirstTimeInteractionEnabled.set(this, void 0);
181
- _TransactionController_isHistoryDisabled.set(this, void 0);
182
- _TransactionController_isSendFlowHistoryDisabled.set(this, void 0);
183
180
  _TransactionController_isSimulationEnabled.set(this, void 0);
184
181
  _TransactionController_isSwapsDisabled.set(this, void 0);
185
182
  _TransactionController_isTimeoutEnabled.set(this, void 0);
@@ -231,8 +228,6 @@ class TransactionController extends base_controller_1.BaseController {
231
228
  __classPrivateFieldSet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, isEIP7702GasFeeTokensEnabled ??
232
229
  (() => Promise.resolve(false)), "f");
233
230
  __classPrivateFieldSet(this, _TransactionController_isFirstTimeInteractionEnabled, isFirstTimeInteractionEnabled ?? (() => true), "f");
234
- __classPrivateFieldSet(this, _TransactionController_isHistoryDisabled, disableHistory ?? false, "f");
235
- __classPrivateFieldSet(this, _TransactionController_isSendFlowHistoryDisabled, disableSendFlowHistory ?? false, "f");
236
231
  __classPrivateFieldSet(this, _TransactionController_isSimulationEnabled, isSimulationEnabled ?? (() => true), "f");
237
232
  __classPrivateFieldSet(this, _TransactionController_isSwapsDisabled, disableSwaps ?? false, "f");
238
233
  __classPrivateFieldSet(this, _TransactionController_isTimeoutEnabled, hooks?.isTimeoutEnabled ?? (() => true), "f");
@@ -391,7 +386,7 @@ class TransactionController extends base_controller_1.BaseController {
391
386
  */
392
387
  async addTransaction(txParams, options) {
393
388
  (0, logger_1.projectLogger)('Adding transaction', txParams, options);
394
- const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, method, nestedTransactions, networkClientId, origin, publishHook, requestId, requireApproval, securityAlertResponse, sendFlowHistory, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
389
+ const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, isStateOnly, method, nestedTransactions, networkClientId, origin, publishHook, requestId, requireApproval, securityAlertResponse, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
395
390
  // eslint-disable-next-line no-param-reassign
396
391
  txParams = (0, utils_2.normalizeTransactionParams)(txParams);
397
392
  if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
@@ -446,6 +441,7 @@ class TransactionController extends base_controller_1.BaseController {
446
441
  isGasFeeIncluded,
447
442
  isGasFeeSponsored,
448
443
  isFirstTimeInteraction: undefined,
444
+ isStateOnly,
449
445
  nestedTransactions,
450
446
  networkClientId,
451
447
  origin,
@@ -479,7 +475,6 @@ class TransactionController extends base_controller_1.BaseController {
479
475
  .then(() => {
480
476
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
481
477
  transactionId: newTransactionMeta.id,
482
- skipHistory: true,
483
478
  skipResimulateCheck: true,
484
479
  skipValidation: true,
485
480
  }, (tx) => {
@@ -503,14 +498,6 @@ class TransactionController extends base_controller_1.BaseController {
503
498
  addedTransactionMeta.securityProviderResponse =
504
499
  securityProviderResponse;
505
500
  }
506
- if (!__classPrivateFieldGet(this, _TransactionController_isSendFlowHistoryDisabled, "f")) {
507
- // eslint-disable-next-line require-atomic-updates
508
- addedTransactionMeta.sendFlowHistory = sendFlowHistory ?? [];
509
- }
510
- // Initial history push
511
- if (!__classPrivateFieldGet(this, _TransactionController_isHistoryDisabled, "f")) {
512
- addedTransactionMeta = (0, history_1.addInitialHistorySnapshot)(addedTransactionMeta);
513
- }
514
501
  addedTransactionMeta = (0, swaps_1.updateSwapsTransaction)(addedTransactionMeta, transactionType, swaps, {
515
502
  isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
516
503
  cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
@@ -521,7 +508,6 @@ class TransactionController extends base_controller_1.BaseController {
521
508
  .then((delegationAddress) => {
522
509
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
523
510
  transactionId: addedTransactionMeta.id,
524
- skipHistory: true,
525
511
  skipResimulateCheck: true,
526
512
  skipValidation: true,
527
513
  }, (tx) => {
@@ -530,8 +516,7 @@ class TransactionController extends base_controller_1.BaseController {
530
516
  return undefined;
531
517
  })
532
518
  .catch(lodash_1.noop);
533
- // eslint-disable-next-line no-negated-condition
534
- if (requireApproval !== false) {
519
+ if (requireApproval !== false && !isStateOnly) {
535
520
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).call(this, addedTransactionMeta, {
536
521
  traceContext,
537
522
  }).catch((error) => {
@@ -711,13 +696,14 @@ class TransactionController extends base_controller_1.BaseController {
711
696
  * Updates an existing transaction in state.
712
697
  *
713
698
  * @param transactionMeta - The new transaction to store in state.
714
- * @param note - A note or update reason to include in the transaction history.
699
+ * @param note - A note or update reason to be logged.
715
700
  */
716
701
  updateTransaction(transactionMeta, note) {
717
702
  const { id: transactionId } = transactionMeta;
718
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, note }, () => ({
703
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, () => ({
719
704
  ...transactionMeta,
720
705
  }));
706
+ (0, logger_1.projectLogger)('Transaction updated', { transactionId, note });
721
707
  }
722
708
  /**
723
709
  * Update the security alert response for a transaction.
@@ -768,6 +754,17 @@ class TransactionController extends base_controller_1.BaseController {
768
754
  state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, newTransactions);
769
755
  });
770
756
  }
757
+ /**
758
+ * @deprecated No longer used. Kept only to avoid breaking changes. It now performs no operations.
759
+ * @param transactionID - The ID of the transaction to update.
760
+ * @param _currentSendFlowHistoryLength - The length of the current sendFlowHistory array.
761
+ * @param _sendFlowHistoryToAdd - The sendFlowHistory entries to add.
762
+ * @returns The transactionMeta.
763
+ */
764
+ updateTransactionSendFlowHistory(transactionID, _currentSendFlowHistoryLength, _sendFlowHistoryToAdd) {
765
+ // Return the transaction unchanged
766
+ return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionID);
767
+ }
771
768
  /**
772
769
  * Adds external provided transaction to state as confirmed transaction.
773
770
  *
@@ -806,33 +803,6 @@ class TransactionController extends base_controller_1.BaseController {
806
803
  console.error('Failed to confirm external transaction', error);
807
804
  }
808
805
  }
809
- /**
810
- * Append new send flow history to a transaction.
811
- *
812
- * @param transactionID - The ID of the transaction to update.
813
- * @param currentSendFlowHistoryLength - The length of the current sendFlowHistory array.
814
- * @param sendFlowHistoryToAdd - The sendFlowHistory entries to add.
815
- * @returns The updated transactionMeta.
816
- */
817
- updateTransactionSendFlowHistory(transactionID, currentSendFlowHistoryLength, sendFlowHistoryToAdd) {
818
- if (__classPrivateFieldGet(this, _TransactionController_isSendFlowHistoryDisabled, "f")) {
819
- throw new Error('Send flow history is disabled for the current transaction controller');
820
- }
821
- const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionID);
822
- if (!transactionMeta) {
823
- throw new Error(`Cannot update send flow history as no transaction metadata found`);
824
- }
825
- (0, utils_2.validateIfTransactionUnapproved)(transactionMeta, 'updateTransactionSendFlowHistory');
826
- const sendFlowHistory = transactionMeta.sendFlowHistory ?? [];
827
- if (currentSendFlowHistoryLength === sendFlowHistory.length) {
828
- const updatedTransactionMeta = {
829
- ...transactionMeta,
830
- sendFlowHistory: [...sendFlowHistory, ...sendFlowHistoryToAdd],
831
- };
832
- this.updateTransaction(updatedTransactionMeta, `${controllerName}:updateTransactionSendFlowHistory - sendFlowHistory updated`);
833
- }
834
- return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionID);
835
- }
836
806
  /**
837
807
  * Update the gas values of a transaction.
838
808
  *
@@ -902,7 +872,6 @@ class TransactionController extends base_controller_1.BaseController {
902
872
  const filteredTransactionGasFees = (0, lodash_1.pickBy)(transactionGasFees);
903
873
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
904
874
  transactionId,
905
- note: `${controllerName}:updateTransactionGasFees - gas values updated`,
906
875
  skipResimulateCheck: true,
907
876
  }, (draftTxMeta) => {
908
877
  const { txParams, ...otherProps } = filteredTransactionGasFees;
@@ -1017,8 +986,6 @@ class TransactionController extends base_controller_1.BaseController {
1017
986
  }
1018
987
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1019
988
  transactionId,
1020
- note: 'TransactionController#setTransactionActive - Transaction isActive updated',
1021
- skipHistory: true,
1022
989
  skipValidation: true,
1023
990
  skipResimulateCheck: true,
1024
991
  }, (updatedTransactionMeta) => {
@@ -1302,7 +1269,6 @@ class TransactionController extends base_controller_1.BaseController {
1302
1269
  });
1303
1270
  const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1304
1271
  transactionId,
1305
- note: 'TransactionController#updateAtomicBatchData - Atomic batch data updated',
1306
1272
  }, (transactionMeta) => {
1307
1273
  const { nestedTransactions, txParams } = transactionMeta;
1308
1274
  const from = txParams.from;
@@ -1325,7 +1291,6 @@ class TransactionController extends base_controller_1.BaseController {
1325
1291
  await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasEstimate).call(this, draftTransaction);
1326
1292
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1327
1293
  transactionId,
1328
- note: 'TransactionController#updateAtomicBatchData - Gas estimate updated',
1329
1294
  }, (transactionMeta) => {
1330
1295
  transactionMeta.txParams.gas = draftTransaction.txParams.gas;
1331
1296
  transactionMeta.simulationFails = draftTransaction.simulationFails;
@@ -1345,7 +1310,6 @@ class TransactionController extends base_controller_1.BaseController {
1345
1310
  (0, logger_1.projectLogger)('Updating batch transactions', { transactionId, batchTransactions });
1346
1311
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1347
1312
  transactionId,
1348
- note: 'TransactionController#updateBatchTransactions - Batch transactions updated',
1349
1313
  }, (transactionMeta) => {
1350
1314
  transactionMeta.batchTransactions = batchTransactions;
1351
1315
  });
@@ -1428,7 +1392,7 @@ class TransactionController extends base_controller_1.BaseController {
1428
1392
  }
1429
1393
  }
1430
1394
  exports.TransactionController = TransactionController;
1431
- _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_isHistoryDisabled = new WeakMap(), _TransactionController_isSendFlowHistoryDisabled = 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_transactionHistoryLimit = new WeakMap(), _TransactionController_checkForPendingTransactionAndStartPolling = new WeakMap(), _TransactionController_instances = new WeakSet(), _TransactionController_retryTransaction = async function _TransactionController_retryTransaction({ actionId, afterSubmit, estimatedBaseFee, gasValues, label, prepareTransactionParams, rate, transactionId, transactionType, }) {
1395
+ _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_transactionHistoryLimit = 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, }) {
1432
1396
  // If transaction is found for same action id, do not create a new transaction.
1433
1397
  if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId)) {
1434
1398
  return;
@@ -1563,7 +1527,14 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1563
1527
  }
1564
1528
  }
1565
1529
  }, _TransactionController_processApproval = async function _TransactionController_processApproval(transactionMeta, { actionId, isExisting = false, publishHook, requireApproval, shouldShowRequest = true, traceContext, }) {
1566
- const transactionId = transactionMeta.id;
1530
+ const { id: transactionId, isStateOnly } = transactionMeta;
1531
+ if (isStateOnly) {
1532
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipValidation: true }, (tx) => {
1533
+ tx.status = types_1.TransactionStatus.submitted;
1534
+ tx.submittedTime = new Date().getTime();
1535
+ });
1536
+ return '';
1537
+ }
1567
1538
  let resultCallbacks;
1568
1539
  const { meta, isCompleted } = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isTransactionCompleted).call(this, transactionId);
1569
1540
  const finishedPromise = isCompleted
@@ -1674,7 +1645,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1674
1645
  // eslint-disable-next-line require-atomic-updates
1675
1646
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1676
1647
  transactionId,
1677
- note: 'TransactionController#approveTransaction - Transaction approved',
1678
1648
  }, (draftTxMeta) => {
1679
1649
  const { chainId, txParams } = draftTxMeta;
1680
1650
  const { gas, type } = txParams;
@@ -1727,7 +1697,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1727
1697
  // eslint-disable-next-line require-atomic-updates
1728
1698
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1729
1699
  transactionId,
1730
- note: 'TransactionController#approveTransaction - Transaction submitted',
1731
1700
  }, (draftTxMeta) => {
1732
1701
  draftTxMeta.hash = hash;
1733
1702
  draftTxMeta.status = types_1.TransactionStatus.submitted;
@@ -1936,17 +1905,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1936
1905
  const confirmedTxs = sameFromAndNetworkTransactions.filter((transaction) => transaction.status === types_1.TransactionStatus.confirmed);
1937
1906
  const pendingTxs = sameFromAndNetworkTransactions.filter((transaction) => transaction.status === types_1.TransactionStatus.submitted);
1938
1907
  (0, external_transactions_1.validateConfirmedExternalTransaction)(transactionMeta, confirmedTxs, pendingTxs);
1939
- // Make sure provided external transaction has non empty history array
1940
- const newTransactionMeta = (transactionMeta.history ?? []).length === 0 && !__classPrivateFieldGet(this, _TransactionController_isHistoryDisabled, "f")
1941
- ? (0, history_1.addInitialHistorySnapshot)(transactionMeta)
1942
- : transactionMeta;
1943
1908
  this.update((state) => {
1944
1909
  state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, [
1945
1910
  ...state.transactions,
1946
- newTransactionMeta,
1911
+ transactionMeta,
1947
1912
  ]);
1948
1913
  });
1949
- return newTransactionMeta;
1914
+ return transactionMeta;
1950
1915
  }, _TransactionController_markNonceDuplicatesDropped = function _TransactionController_markNonceDuplicatesDropped(transactionId) {
1951
1916
  const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
1952
1917
  if (!transactionMeta) {
@@ -2017,7 +1982,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2017
1982
  (0, logger_1.projectLogger)('Calling before sign hook', transactionMeta);
2018
1983
  const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
2019
1984
  if (updateTransaction) {
2020
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true, note: 'beforeSign Hook' }, updateTransaction);
1985
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true }, updateTransaction);
2021
1986
  (0, logger_1.projectLogger)('Updated transaction after before sign hook');
2022
1987
  }
2023
1988
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
@@ -2196,7 +2161,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2196
2161
  ];
2197
2162
  }, _TransactionController_getLayer1GasFeeFlows = function _TransactionController_getLayer1GasFeeFlows() {
2198
2163
  return [new OptimismLayer1GasFeeFlow_1.OptimismLayer1GasFeeFlow(), new ScrollLayer1GasFeeFlow_1.ScrollLayer1GasFeeFlow()];
2199
- }, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, note, skipHistory, skipValidation, skipResimulateCheck, }, callback) {
2164
+ }, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, skipValidation, skipResimulateCheck, }, callback) {
2200
2165
  let resimulateResponse;
2201
2166
  this.update((state) => {
2202
2167
  const index = state.transactions.findIndex(({ id }) => id === transactionId);
@@ -2213,10 +2178,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2213
2178
  if (!skipResimulateCheck && __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this)) {
2214
2179
  resimulateResponse = (0, ResimulateHelper_1.shouldResimulate)(originalTransactionMeta, transactionMeta);
2215
2180
  }
2216
- const shouldSkipHistory = __classPrivateFieldGet(this, _TransactionController_isHistoryDisabled, "f") || skipHistory;
2217
- if (!shouldSkipHistory) {
2218
- transactionMeta = (0, history_1.updateTransactionHistory)(transactionMeta, note ?? 'Transaction updated');
2219
- }
2220
2181
  state.transactions[index] = transactionMeta;
2221
2182
  });
2222
2183
  const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
@@ -2278,7 +2239,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2278
2239
  }
2279
2240
  const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
2280
2241
  transactionId,
2281
- note: 'TransactionController#updateSimulationData - Update simulation data',
2282
2242
  skipResimulateCheck: Boolean(blockTime),
2283
2243
  }, (txMeta) => {
2284
2244
  txMeta.gasFeeTokens = gasFeeTokens;
@@ -2291,7 +2251,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2291
2251
  (0, logger_1.projectLogger)('Updated simulation data', transactionId, updatedTransactionMeta);
2292
2252
  await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_runAfterSimulateHook).call(this, updatedTransactionMeta);
2293
2253
  }, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
2294
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipHistory: true }, (txMeta) => {
2254
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, (txMeta) => {
2295
2255
  (0, GasFeePoller_1.updateTransactionGasProperties)({
2296
2256
  txMeta,
2297
2257
  gasFeeEstimates,
@@ -2397,7 +2357,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2397
2357
  try {
2398
2358
  newTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
2399
2359
  transactionId: transactionMeta.id,
2400
- note: 'TransactionController#failTransaction - Add error message and set status to failed',
2401
2360
  skipValidation: true,
2402
2361
  }, (draftTransactionMeta) => {
2403
2362
  draftTransactionMeta.status = types_1.TransactionStatus.failed;
@@ -2439,7 +2398,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2439
2398
  const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
2440
2399
  transactionId,
2441
2400
  skipResimulateCheck: true,
2442
- note: 'afterSimulate Hook',
2443
2401
  }, (txMeta) => {
2444
2402
  txMeta.txParamsOriginal = (0, lodash_1.cloneDeep)(txMeta.txParams);
2445
2403
  updateTransaction(txMeta);