@metamask/transaction-controller 62.6.0 → 62.8.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 (60) hide show
  1. package/CHANGELOG.md +34 -1
  2. package/dist/TransactionController.cjs +34 -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 +34 -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 +32 -5
  26. package/dist/types.d.cts.map +1 -1
  27. package/dist/types.d.mts +32 -5
  28. package/dist/types.d.mts.map +1 -1
  29. package/dist/types.mjs.map +1 -1
  30. package/dist/utils/batch.cjs +2 -1
  31. package/dist/utils/batch.cjs.map +1 -1
  32. package/dist/utils/batch.d.cts +1 -0
  33. package/dist/utils/batch.d.cts.map +1 -1
  34. package/dist/utils/batch.d.mts +1 -0
  35. package/dist/utils/batch.d.mts.map +1 -1
  36. package/dist/utils/batch.mjs +2 -1
  37. package/dist/utils/batch.mjs.map +1 -1
  38. package/dist/utils/feature-flags.cjs +4 -1
  39. package/dist/utils/feature-flags.cjs.map +1 -1
  40. package/dist/utils/feature-flags.d.cts +5 -0
  41. package/dist/utils/feature-flags.d.cts.map +1 -1
  42. package/dist/utils/feature-flags.d.mts +5 -0
  43. package/dist/utils/feature-flags.d.mts.map +1 -1
  44. package/dist/utils/feature-flags.mjs +4 -1
  45. package/dist/utils/feature-flags.mjs.map +1 -1
  46. package/dist/utils/nonce.cjs +10 -6
  47. package/dist/utils/nonce.cjs.map +1 -1
  48. package/dist/utils/nonce.d.cts.map +1 -1
  49. package/dist/utils/nonce.d.mts.map +1 -1
  50. package/dist/utils/nonce.mjs +10 -6
  51. package/dist/utils/nonce.mjs.map +1 -1
  52. package/package.json +5 -5
  53. package/dist/utils/history.cjs +0 -164
  54. package/dist/utils/history.cjs.map +0 -1
  55. package/dist/utils/history.d.cts +0 -29
  56. package/dist/utils/history.d.cts.map +0 -1
  57. package/dist/utils/history.d.mts +0 -29
  58. package/dist/utils/history.d.mts.map +0 -1
  59. package/dist/utils/history.mjs +0 -164
  60. package/dist/utils/history.mjs.map +0 -1
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_afterSign, _TransactionController_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_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;
12
+ var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_afterSign, _TransactionController_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_isTimeoutEnabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_securityProviderRequest, _TransactionController_sign, _TransactionController_signAbortCallbacks, _TransactionController_skipSimulationTransactionIds, _TransactionController_testGasFeeFlows, _TransactionController_trace, _TransactionController_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;
13
13
  function $importDefault(module) {
14
14
  if (module?.__esModule) {
15
15
  return module.default;
@@ -55,7 +55,6 @@ import { addGasBuffer, estimateGas, estimateGasBatch, updateGas } from "./utils/
55
55
  import { checkGasFeeTokenBeforePublish, getGasFeeTokens } from "./utils/gas-fee-tokens.mjs";
56
56
  import { updateGasFees } from "./utils/gas-fees.mjs";
57
57
  import { getGasFeeFlow } from "./utils/gas-flow.mjs";
58
- import { addInitialHistorySnapshot, updateTransactionHistory } from "./utils/history.mjs";
59
58
  import { getTransactionLayer1GasFee, updateTransactionLayer1GasFee } from "./utils/layer1-gas-fee-flow.mjs";
60
59
  import { getAndFormatTransactionsForNonceTracker, getNextNonce } from "./utils/nonce.mjs";
61
60
  import { prepareTransaction, serializeTransaction } from "./utils/prepare.mjs";
@@ -146,7 +145,7 @@ export class TransactionController extends BaseController {
146
145
  * @param options - The controller options.
147
146
  */
148
147
  constructor(options) {
149
- 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;
148
+ 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;
150
149
  super({
151
150
  name: controllerName,
152
151
  metadata,
@@ -180,8 +179,6 @@ export class TransactionController extends BaseController {
180
179
  _TransactionController_isAutomaticGasFeeUpdateEnabled.set(this, void 0);
181
180
  _TransactionController_isEIP7702GasFeeTokensEnabled.set(this, void 0);
182
181
  _TransactionController_isFirstTimeInteractionEnabled.set(this, void 0);
183
- _TransactionController_isHistoryDisabled.set(this, void 0);
184
- _TransactionController_isSendFlowHistoryDisabled.set(this, void 0);
185
182
  _TransactionController_isSimulationEnabled.set(this, void 0);
186
183
  _TransactionController_isSwapsDisabled.set(this, void 0);
187
184
  _TransactionController_isTimeoutEnabled.set(this, void 0);
@@ -233,8 +230,6 @@ export class TransactionController extends BaseController {
233
230
  __classPrivateFieldSet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, isEIP7702GasFeeTokensEnabled ??
234
231
  (() => Promise.resolve(false)), "f");
235
232
  __classPrivateFieldSet(this, _TransactionController_isFirstTimeInteractionEnabled, isFirstTimeInteractionEnabled ?? (() => true), "f");
236
- __classPrivateFieldSet(this, _TransactionController_isHistoryDisabled, disableHistory ?? false, "f");
237
- __classPrivateFieldSet(this, _TransactionController_isSendFlowHistoryDisabled, disableSendFlowHistory ?? false, "f");
238
233
  __classPrivateFieldSet(this, _TransactionController_isSimulationEnabled, isSimulationEnabled ?? (() => true), "f");
239
234
  __classPrivateFieldSet(this, _TransactionController_isSwapsDisabled, disableSwaps ?? false, "f");
240
235
  __classPrivateFieldSet(this, _TransactionController_isTimeoutEnabled, hooks?.isTimeoutEnabled ?? (() => true), "f");
@@ -393,7 +388,7 @@ export class TransactionController extends BaseController {
393
388
  */
394
389
  async addTransaction(txParams, options) {
395
390
  log('Adding transaction', txParams, options);
396
- const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, method, nestedTransactions, networkClientId, origin, publishHook, requireApproval, securityAlertResponse, sendFlowHistory, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
391
+ const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, isStateOnly, method, nestedTransactions, networkClientId, origin, publishHook, requestId, requireApproval, securityAlertResponse, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
397
392
  // eslint-disable-next-line no-param-reassign
398
393
  txParams = normalizeTransactionParams(txParams);
399
394
  if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
@@ -448,9 +443,11 @@ export class TransactionController extends BaseController {
448
443
  isGasFeeIncluded,
449
444
  isGasFeeSponsored,
450
445
  isFirstTimeInteraction: undefined,
446
+ isStateOnly,
451
447
  nestedTransactions,
452
448
  networkClientId,
453
449
  origin,
450
+ requestId,
454
451
  securityAlertResponse,
455
452
  selectedGasFeeToken: gasFeeToken,
456
453
  status: TransactionStatus.unapproved,
@@ -480,7 +477,6 @@ export class TransactionController extends BaseController {
480
477
  .then(() => {
481
478
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
482
479
  transactionId: newTransactionMeta.id,
483
- skipHistory: true,
484
480
  skipResimulateCheck: true,
485
481
  skipValidation: true,
486
482
  }, (tx) => {
@@ -504,14 +500,6 @@ export class TransactionController extends BaseController {
504
500
  addedTransactionMeta.securityProviderResponse =
505
501
  securityProviderResponse;
506
502
  }
507
- if (!__classPrivateFieldGet(this, _TransactionController_isSendFlowHistoryDisabled, "f")) {
508
- // eslint-disable-next-line require-atomic-updates
509
- addedTransactionMeta.sendFlowHistory = sendFlowHistory ?? [];
510
- }
511
- // Initial history push
512
- if (!__classPrivateFieldGet(this, _TransactionController_isHistoryDisabled, "f")) {
513
- addedTransactionMeta = addInitialHistorySnapshot(addedTransactionMeta);
514
- }
515
503
  addedTransactionMeta = updateSwapsTransaction(addedTransactionMeta, transactionType, swaps, {
516
504
  isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
517
505
  cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
@@ -522,7 +510,6 @@ export class TransactionController extends BaseController {
522
510
  .then((delegationAddress) => {
523
511
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
524
512
  transactionId: addedTransactionMeta.id,
525
- skipHistory: true,
526
513
  skipResimulateCheck: true,
527
514
  skipValidation: true,
528
515
  }, (tx) => {
@@ -531,8 +518,7 @@ export class TransactionController extends BaseController {
531
518
  return undefined;
532
519
  })
533
520
  .catch(noop);
534
- // eslint-disable-next-line no-negated-condition
535
- if (requireApproval !== false) {
521
+ if (requireApproval !== false && !isStateOnly) {
536
522
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).call(this, addedTransactionMeta, {
537
523
  traceContext,
538
524
  }).catch((error) => {
@@ -712,13 +698,14 @@ export class TransactionController extends BaseController {
712
698
  * Updates an existing transaction in state.
713
699
  *
714
700
  * @param transactionMeta - The new transaction to store in state.
715
- * @param note - A note or update reason to include in the transaction history.
701
+ * @param note - A note or update reason to be logged.
716
702
  */
717
703
  updateTransaction(transactionMeta, note) {
718
704
  const { id: transactionId } = transactionMeta;
719
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, note }, () => ({
705
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, () => ({
720
706
  ...transactionMeta,
721
707
  }));
708
+ log('Transaction updated', { transactionId, note });
722
709
  }
723
710
  /**
724
711
  * Update the security alert response for a transaction.
@@ -769,6 +756,17 @@ export class TransactionController extends BaseController {
769
756
  state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, newTransactions);
770
757
  });
771
758
  }
759
+ /**
760
+ * @deprecated No longer used. Kept only to avoid breaking changes. It now performs no operations.
761
+ * @param transactionID - The ID of the transaction to update.
762
+ * @param _currentSendFlowHistoryLength - The length of the current sendFlowHistory array.
763
+ * @param _sendFlowHistoryToAdd - The sendFlowHistory entries to add.
764
+ * @returns The transactionMeta.
765
+ */
766
+ updateTransactionSendFlowHistory(transactionID, _currentSendFlowHistoryLength, _sendFlowHistoryToAdd) {
767
+ // Return the transaction unchanged
768
+ return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionID);
769
+ }
772
770
  /**
773
771
  * Adds external provided transaction to state as confirmed transaction.
774
772
  *
@@ -807,33 +805,6 @@ export class TransactionController extends BaseController {
807
805
  console.error('Failed to confirm external transaction', error);
808
806
  }
809
807
  }
810
- /**
811
- * Append new send flow history to a transaction.
812
- *
813
- * @param transactionID - The ID of the transaction to update.
814
- * @param currentSendFlowHistoryLength - The length of the current sendFlowHistory array.
815
- * @param sendFlowHistoryToAdd - The sendFlowHistory entries to add.
816
- * @returns The updated transactionMeta.
817
- */
818
- updateTransactionSendFlowHistory(transactionID, currentSendFlowHistoryLength, sendFlowHistoryToAdd) {
819
- if (__classPrivateFieldGet(this, _TransactionController_isSendFlowHistoryDisabled, "f")) {
820
- throw new Error('Send flow history is disabled for the current transaction controller');
821
- }
822
- const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionID);
823
- if (!transactionMeta) {
824
- throw new Error(`Cannot update send flow history as no transaction metadata found`);
825
- }
826
- validateIfTransactionUnapproved(transactionMeta, 'updateTransactionSendFlowHistory');
827
- const sendFlowHistory = transactionMeta.sendFlowHistory ?? [];
828
- if (currentSendFlowHistoryLength === sendFlowHistory.length) {
829
- const updatedTransactionMeta = {
830
- ...transactionMeta,
831
- sendFlowHistory: [...sendFlowHistory, ...sendFlowHistoryToAdd],
832
- };
833
- this.updateTransaction(updatedTransactionMeta, `${controllerName}:updateTransactionSendFlowHistory - sendFlowHistory updated`);
834
- }
835
- return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionID);
836
- }
837
808
  /**
838
809
  * Update the gas values of a transaction.
839
810
  *
@@ -903,7 +874,6 @@ export class TransactionController extends BaseController {
903
874
  const filteredTransactionGasFees = pickBy(transactionGasFees);
904
875
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
905
876
  transactionId,
906
- note: `${controllerName}:updateTransactionGasFees - gas values updated`,
907
877
  skipResimulateCheck: true,
908
878
  }, (draftTxMeta) => {
909
879
  const { txParams, ...otherProps } = filteredTransactionGasFees;
@@ -1018,8 +988,6 @@ export class TransactionController extends BaseController {
1018
988
  }
1019
989
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1020
990
  transactionId,
1021
- note: 'TransactionController#setTransactionActive - Transaction isActive updated',
1022
- skipHistory: true,
1023
991
  skipValidation: true,
1024
992
  skipResimulateCheck: true,
1025
993
  }, (updatedTransactionMeta) => {
@@ -1303,7 +1271,6 @@ export class TransactionController extends BaseController {
1303
1271
  });
1304
1272
  const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1305
1273
  transactionId,
1306
- note: 'TransactionController#updateAtomicBatchData - Atomic batch data updated',
1307
1274
  }, (transactionMeta) => {
1308
1275
  const { nestedTransactions, txParams } = transactionMeta;
1309
1276
  const from = txParams.from;
@@ -1326,7 +1293,6 @@ export class TransactionController extends BaseController {
1326
1293
  await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasEstimate).call(this, draftTransaction);
1327
1294
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1328
1295
  transactionId,
1329
- note: 'TransactionController#updateAtomicBatchData - Gas estimate updated',
1330
1296
  }, (transactionMeta) => {
1331
1297
  transactionMeta.txParams.gas = draftTransaction.txParams.gas;
1332
1298
  transactionMeta.simulationFails = draftTransaction.simulationFails;
@@ -1346,7 +1312,6 @@ export class TransactionController extends BaseController {
1346
1312
  log('Updating batch transactions', { transactionId, batchTransactions });
1347
1313
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1348
1314
  transactionId,
1349
- note: 'TransactionController#updateBatchTransactions - Batch transactions updated',
1350
1315
  }, (transactionMeta) => {
1351
1316
  transactionMeta.batchTransactions = batchTransactions;
1352
1317
  });
@@ -1428,7 +1393,7 @@ export class TransactionController extends BaseController {
1428
1393
  });
1429
1394
  }
1430
1395
  }
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, }) {
1396
+ _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
1397
  // If transaction is found for same action id, do not create a new transaction.
1433
1398
  if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId)) {
1434
1399
  return;
@@ -1563,7 +1528,14 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1563
1528
  }
1564
1529
  }
1565
1530
  }, _TransactionController_processApproval = async function _TransactionController_processApproval(transactionMeta, { actionId, isExisting = false, publishHook, requireApproval, shouldShowRequest = true, traceContext, }) {
1566
- const transactionId = transactionMeta.id;
1531
+ const { id: transactionId, isStateOnly } = transactionMeta;
1532
+ if (isStateOnly) {
1533
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipValidation: true }, (tx) => {
1534
+ tx.status = TransactionStatus.submitted;
1535
+ tx.submittedTime = new Date().getTime();
1536
+ });
1537
+ return '';
1538
+ }
1567
1539
  let resultCallbacks;
1568
1540
  const { meta, isCompleted } = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isTransactionCompleted).call(this, transactionId);
1569
1541
  const finishedPromise = isCompleted
@@ -1674,7 +1646,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1674
1646
  // eslint-disable-next-line require-atomic-updates
1675
1647
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1676
1648
  transactionId,
1677
- note: 'TransactionController#approveTransaction - Transaction approved',
1678
1649
  }, (draftTxMeta) => {
1679
1650
  const { chainId, txParams } = draftTxMeta;
1680
1651
  const { gas, type } = txParams;
@@ -1727,7 +1698,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1727
1698
  // eslint-disable-next-line require-atomic-updates
1728
1699
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1729
1700
  transactionId,
1730
- note: 'TransactionController#approveTransaction - Transaction submitted',
1731
1701
  }, (draftTxMeta) => {
1732
1702
  draftTxMeta.hash = hash;
1733
1703
  draftTxMeta.status = TransactionStatus.submitted;
@@ -1936,17 +1906,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1936
1906
  const confirmedTxs = sameFromAndNetworkTransactions.filter((transaction) => transaction.status === TransactionStatus.confirmed);
1937
1907
  const pendingTxs = sameFromAndNetworkTransactions.filter((transaction) => transaction.status === TransactionStatus.submitted);
1938
1908
  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
- ? addInitialHistorySnapshot(transactionMeta)
1942
- : transactionMeta;
1943
1909
  this.update((state) => {
1944
1910
  state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, [
1945
1911
  ...state.transactions,
1946
- newTransactionMeta,
1912
+ transactionMeta,
1947
1913
  ]);
1948
1914
  });
1949
- return newTransactionMeta;
1915
+ return transactionMeta;
1950
1916
  }, _TransactionController_markNonceDuplicatesDropped = function _TransactionController_markNonceDuplicatesDropped(transactionId) {
1951
1917
  const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
1952
1918
  if (!transactionMeta) {
@@ -2017,7 +1983,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2017
1983
  log('Calling before sign hook', transactionMeta);
2018
1984
  const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
2019
1985
  if (updateTransaction) {
2020
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true, note: 'beforeSign Hook' }, updateTransaction);
1986
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true }, updateTransaction);
2021
1987
  log('Updated transaction after before sign hook');
2022
1988
  }
2023
1989
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
@@ -2196,7 +2162,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2196
2162
  ];
2197
2163
  }, _TransactionController_getLayer1GasFeeFlows = function _TransactionController_getLayer1GasFeeFlows() {
2198
2164
  return [new OptimismLayer1GasFeeFlow(), new ScrollLayer1GasFeeFlow()];
2199
- }, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, note, skipHistory, skipValidation, skipResimulateCheck, }, callback) {
2165
+ }, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, skipValidation, skipResimulateCheck, }, callback) {
2200
2166
  let resimulateResponse;
2201
2167
  this.update((state) => {
2202
2168
  const index = state.transactions.findIndex(({ id }) => id === transactionId);
@@ -2213,10 +2179,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2213
2179
  if (!skipResimulateCheck && __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this)) {
2214
2180
  resimulateResponse = shouldResimulate(originalTransactionMeta, transactionMeta);
2215
2181
  }
2216
- const shouldSkipHistory = __classPrivateFieldGet(this, _TransactionController_isHistoryDisabled, "f") || skipHistory;
2217
- if (!shouldSkipHistory) {
2218
- transactionMeta = updateTransactionHistory(transactionMeta, note ?? 'Transaction updated');
2219
- }
2220
2182
  state.transactions[index] = transactionMeta;
2221
2183
  });
2222
2184
  const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
@@ -2278,7 +2240,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2278
2240
  }
2279
2241
  const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
2280
2242
  transactionId,
2281
- note: 'TransactionController#updateSimulationData - Update simulation data',
2282
2243
  skipResimulateCheck: Boolean(blockTime),
2283
2244
  }, (txMeta) => {
2284
2245
  txMeta.gasFeeTokens = gasFeeTokens;
@@ -2291,7 +2252,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2291
2252
  log('Updated simulation data', transactionId, updatedTransactionMeta);
2292
2253
  await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_runAfterSimulateHook).call(this, updatedTransactionMeta);
2293
2254
  }, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
2294
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipHistory: true }, (txMeta) => {
2255
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, (txMeta) => {
2295
2256
  updateTransactionGasProperties({
2296
2257
  txMeta,
2297
2258
  gasFeeEstimates,
@@ -2397,7 +2358,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2397
2358
  try {
2398
2359
  newTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
2399
2360
  transactionId: transactionMeta.id,
2400
- note: 'TransactionController#failTransaction - Add error message and set status to failed',
2401
2361
  skipValidation: true,
2402
2362
  }, (draftTransactionMeta) => {
2403
2363
  draftTransactionMeta.status = TransactionStatus.failed;
@@ -2439,7 +2399,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2439
2399
  const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
2440
2400
  transactionId,
2441
2401
  skipResimulateCheck: true,
2442
- note: 'afterSimulate Hook',
2443
2402
  }, (txMeta) => {
2444
2403
  txMeta.txParamsOriginal = cloneDeep(txMeta.txParams);
2445
2404
  updateTransaction(txMeta);