@metamask-previews/transaction-controller 62.7.0-preview-d24ded2 → 62.7.0-preview-749d0638

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 (38) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/TransactionController.cjs +62 -73
  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 +62 -73
  9. package/dist/TransactionController.mjs.map +1 -1
  10. package/dist/helpers/PendingTransactionTracker.cjs +3 -1
  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 +3 -1
  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 +5 -4
  26. package/dist/types.d.cts.map +1 -1
  27. package/dist/types.d.mts +5 -4
  28. package/dist/types.d.mts.map +1 -1
  29. package/dist/types.mjs.map +1 -1
  30. package/package.json +3 -3
  31. package/dist/utils/history.cjs +0 -164
  32. package/dist/utils/history.cjs.map +0 -1
  33. package/dist/utils/history.d.cts +0 -29
  34. package/dist/utils/history.d.cts.map +0 -1
  35. package/dist/utils/history.d.mts +0 -29
  36. package/dist/utils/history.d.mts.map +0 -1
  37. package/dist/utils/history.mjs +0 -164
  38. package/dist/utils/history.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,9 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Added
11
+
12
+ - Add intent based transaction support ([#6547](https://github.com/MetaMask/core/pull/6547))
10
13
  ### Changed
11
14
 
15
+ - Deprecate `history` and `sendFlowHistory` properties from `TransactionMeta` and `TransactionController` options ([#7326](https://github.com/MetaMask/core/pull/7326))
12
16
  - Bump `@metamask/remote-feature-flag-controller` from `^3.0.0` to `^3.1.0` ([#7519](https://github.com/MetaMask/core/pull/7519))
17
+ - Bump `@metamask/network-controller` from `^27.0.0` to `^27.1.0` ([#7534](https://github.com/MetaMask/core/pull/7534))
18
+ - Bump `@metamask/controller-utils` from `^11.16.0` to `^11.17.0` ([#7534](https://github.com/MetaMask/core/pull/7534))
13
19
 
14
20
  ### Fixed
15
21
 
@@ -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, 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)) {
@@ -467,19 +462,32 @@ class TransactionController extends base_controller_1.BaseController {
467
462
  addedTransactionMeta.txParamsOriginal = (0, lodash_1.cloneDeep)(addedTransactionMeta.txParams);
468
463
  updateTransaction(addedTransactionMeta);
469
464
  }
470
- // eslint-disable-next-line no-negated-condition
471
465
  if (!skipInitialGasEstimate) {
472
466
  await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Estimate Gas Properties', parentContext: traceContext }, (context) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasProperties).call(this, addedTransactionMeta, {
473
467
  traceContext: context,
474
468
  }));
475
469
  }
470
+ else if (isEIP1559Compatible &&
471
+ addedTransactionMeta.txParams.gasPrice &&
472
+ !addedTransactionMeta.txParams.maxFeePerGas) {
473
+ // Convert legacy gasPrice to EIP-1559 fees for intent transactions on EIP-1559 networks
474
+ addedTransactionMeta.txParams.maxFeePerGas =
475
+ addedTransactionMeta.txParams.gasPrice;
476
+ addedTransactionMeta.txParams.maxPriorityFeePerGas =
477
+ addedTransactionMeta.txParams.gasPrice;
478
+ addedTransactionMeta.txParams.type = types_1.TransactionEnvelopeType.feeMarket;
479
+ delete addedTransactionMeta.txParams.gasPrice; // Remove legacy gas price
480
+ }
481
+ else if (!isEIP1559Compatible && addedTransactionMeta.txParams.gasPrice) {
482
+ // Ensure legacy type for non-EIP-1559 networks
483
+ addedTransactionMeta.txParams.type = types_1.TransactionEnvelopeType.legacy;
484
+ }
476
485
  else {
477
486
  const newTransactionMeta = (0, lodash_1.cloneDeep)(addedTransactionMeta);
478
487
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasProperties).call(this, newTransactionMeta)
479
488
  .then(() => {
480
489
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
481
490
  transactionId: newTransactionMeta.id,
482
- skipHistory: true,
483
491
  skipResimulateCheck: true,
484
492
  skipValidation: true,
485
493
  }, (tx) => {
@@ -503,14 +511,6 @@ class TransactionController extends base_controller_1.BaseController {
503
511
  addedTransactionMeta.securityProviderResponse =
504
512
  securityProviderResponse;
505
513
  }
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
514
  addedTransactionMeta = (0, swaps_1.updateSwapsTransaction)(addedTransactionMeta, transactionType, swaps, {
515
515
  isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
516
516
  cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
@@ -521,7 +521,6 @@ class TransactionController extends base_controller_1.BaseController {
521
521
  .then((delegationAddress) => {
522
522
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
523
523
  transactionId: addedTransactionMeta.id,
524
- skipHistory: true,
525
524
  skipResimulateCheck: true,
526
525
  skipValidation: true,
527
526
  }, (tx) => {
@@ -711,13 +710,14 @@ class TransactionController extends base_controller_1.BaseController {
711
710
  * Updates an existing transaction in state.
712
711
  *
713
712
  * @param transactionMeta - The new transaction to store in state.
714
- * @param note - A note or update reason to include in the transaction history.
713
+ * @param note - A note or update reason to be logged.
715
714
  */
716
715
  updateTransaction(transactionMeta, note) {
717
716
  const { id: transactionId } = transactionMeta;
718
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, note }, () => ({
717
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, () => ({
719
718
  ...transactionMeta,
720
719
  }));
720
+ (0, logger_1.projectLogger)('Transaction updated', { transactionId, note });
721
721
  }
722
722
  /**
723
723
  * Update the security alert response for a transaction.
@@ -768,6 +768,17 @@ class TransactionController extends base_controller_1.BaseController {
768
768
  state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, newTransactions);
769
769
  });
770
770
  }
771
+ /**
772
+ * @deprecated No longer used. Kept only to avoid breaking changes. It now performs no operations.
773
+ * @param transactionID - The ID of the transaction to update.
774
+ * @param _currentSendFlowHistoryLength - The length of the current sendFlowHistory array.
775
+ * @param _sendFlowHistoryToAdd - The sendFlowHistory entries to add.
776
+ * @returns The transactionMeta.
777
+ */
778
+ updateTransactionSendFlowHistory(transactionID, _currentSendFlowHistoryLength, _sendFlowHistoryToAdd) {
779
+ // Return the transaction unchanged
780
+ return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionID);
781
+ }
771
782
  /**
772
783
  * Adds external provided transaction to state as confirmed transaction.
773
784
  *
@@ -806,33 +817,6 @@ class TransactionController extends base_controller_1.BaseController {
806
817
  console.error('Failed to confirm external transaction', error);
807
818
  }
808
819
  }
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
820
  /**
837
821
  * Update the gas values of a transaction.
838
822
  *
@@ -902,7 +886,6 @@ class TransactionController extends base_controller_1.BaseController {
902
886
  const filteredTransactionGasFees = (0, lodash_1.pickBy)(transactionGasFees);
903
887
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
904
888
  transactionId,
905
- note: `${controllerName}:updateTransactionGasFees - gas values updated`,
906
889
  skipResimulateCheck: true,
907
890
  }, (draftTxMeta) => {
908
891
  const { txParams, ...otherProps } = filteredTransactionGasFees;
@@ -1017,8 +1000,6 @@ class TransactionController extends base_controller_1.BaseController {
1017
1000
  }
1018
1001
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1019
1002
  transactionId,
1020
- note: 'TransactionController#setTransactionActive - Transaction isActive updated',
1021
- skipHistory: true,
1022
1003
  skipValidation: true,
1023
1004
  skipResimulateCheck: true,
1024
1005
  }, (updatedTransactionMeta) => {
@@ -1302,7 +1283,6 @@ class TransactionController extends base_controller_1.BaseController {
1302
1283
  });
1303
1284
  const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1304
1285
  transactionId,
1305
- note: 'TransactionController#updateAtomicBatchData - Atomic batch data updated',
1306
1286
  }, (transactionMeta) => {
1307
1287
  const { nestedTransactions, txParams } = transactionMeta;
1308
1288
  const from = txParams.from;
@@ -1325,7 +1305,6 @@ class TransactionController extends base_controller_1.BaseController {
1325
1305
  await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasEstimate).call(this, draftTransaction);
1326
1306
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1327
1307
  transactionId,
1328
- note: 'TransactionController#updateAtomicBatchData - Gas estimate updated',
1329
1308
  }, (transactionMeta) => {
1330
1309
  transactionMeta.txParams.gas = draftTransaction.txParams.gas;
1331
1310
  transactionMeta.simulationFails = draftTransaction.simulationFails;
@@ -1345,7 +1324,6 @@ class TransactionController extends base_controller_1.BaseController {
1345
1324
  (0, logger_1.projectLogger)('Updating batch transactions', { transactionId, batchTransactions });
1346
1325
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1347
1326
  transactionId,
1348
- note: 'TransactionController#updateBatchTransactions - Batch transactions updated',
1349
1327
  }, (transactionMeta) => {
1350
1328
  transactionMeta.batchTransactions = batchTransactions;
1351
1329
  });
@@ -1428,7 +1406,7 @@ class TransactionController extends base_controller_1.BaseController {
1428
1406
  }
1429
1407
  }
1430
1408
  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, }) {
1409
+ _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
1410
  // If transaction is found for same action id, do not create a new transaction.
1433
1411
  if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId)) {
1434
1412
  return;
@@ -1587,6 +1565,30 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1587
1565
  this.updateTransaction(updatedTransaction, 'TransactionController#processApproval - Updated with approval data');
1588
1566
  }
1589
1567
  }
1568
+ // For intent-based transactions (e.g., CoW intents) that are not meant to be
1569
+ // published on-chain by the TransactionController, skip the approve/publish flow.
1570
+ // These are tracked externally and should not be signed or sent.
1571
+ const isIntentTransaction = Boolean(
1572
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1573
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId)?.swapMetaData
1574
+ ?.isIntentTx === true);
1575
+ if (requireApproval === false && isIntentTransaction) {
1576
+ const submittedTxMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1577
+ transactionId,
1578
+ skipValidation: true,
1579
+ }, (draftTxMeta) => {
1580
+ draftTxMeta.status = types_1.TransactionStatus.submitted;
1581
+ draftTxMeta.submittedTime = new Date().getTime();
1582
+ });
1583
+ this.messenger.publish(`${controllerName}:transactionSubmitted`, {
1584
+ transactionMeta: submittedTxMeta,
1585
+ });
1586
+ this.messenger.publish(`${controllerName}:transactionFinished`, submittedTxMeta);
1587
+ __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionId}:finished`, submittedTxMeta);
1588
+ // Short-circuit normal flow; result callbacks will be handled by the
1589
+ // finished promise below.
1590
+ return ApprovalState.Approved;
1591
+ }
1590
1592
  const { isCompleted: isTxCompleted } = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isTransactionCompleted).call(this, transactionId);
1591
1593
  if (!isTxCompleted) {
1592
1594
  const approvalResult = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_approveTransaction).call(this, transactionId, traceContext, publishHook);
@@ -1674,7 +1676,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1674
1676
  // eslint-disable-next-line require-atomic-updates
1675
1677
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1676
1678
  transactionId,
1677
- note: 'TransactionController#approveTransaction - Transaction approved',
1678
1679
  }, (draftTxMeta) => {
1679
1680
  const { chainId, txParams } = draftTxMeta;
1680
1681
  const { gas, type } = txParams;
@@ -1727,7 +1728,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1727
1728
  // eslint-disable-next-line require-atomic-updates
1728
1729
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1729
1730
  transactionId,
1730
- note: 'TransactionController#approveTransaction - Transaction submitted',
1731
1731
  }, (draftTxMeta) => {
1732
1732
  draftTxMeta.hash = hash;
1733
1733
  draftTxMeta.status = types_1.TransactionStatus.submitted;
@@ -1936,17 +1936,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1936
1936
  const confirmedTxs = sameFromAndNetworkTransactions.filter((transaction) => transaction.status === types_1.TransactionStatus.confirmed);
1937
1937
  const pendingTxs = sameFromAndNetworkTransactions.filter((transaction) => transaction.status === types_1.TransactionStatus.submitted);
1938
1938
  (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
1939
  this.update((state) => {
1944
1940
  state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, [
1945
1941
  ...state.transactions,
1946
- newTransactionMeta,
1942
+ transactionMeta,
1947
1943
  ]);
1948
1944
  });
1949
- return newTransactionMeta;
1945
+ return transactionMeta;
1950
1946
  }, _TransactionController_markNonceDuplicatesDropped = function _TransactionController_markNonceDuplicatesDropped(transactionId) {
1951
1947
  const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
1952
1948
  if (!transactionMeta) {
@@ -2017,7 +2013,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2017
2013
  (0, logger_1.projectLogger)('Calling before sign hook', transactionMeta);
2018
2014
  const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
2019
2015
  if (updateTransaction) {
2020
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true, note: 'beforeSign Hook' }, updateTransaction);
2016
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true }, updateTransaction);
2021
2017
  (0, logger_1.projectLogger)('Updated transaction after before sign hook');
2022
2018
  }
2023
2019
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
@@ -2196,7 +2192,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2196
2192
  ];
2197
2193
  }, _TransactionController_getLayer1GasFeeFlows = function _TransactionController_getLayer1GasFeeFlows() {
2198
2194
  return [new OptimismLayer1GasFeeFlow_1.OptimismLayer1GasFeeFlow(), new ScrollLayer1GasFeeFlow_1.ScrollLayer1GasFeeFlow()];
2199
- }, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, note, skipHistory, skipValidation, skipResimulateCheck, }, callback) {
2195
+ }, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, skipValidation, skipResimulateCheck, }, callback) {
2200
2196
  let resimulateResponse;
2201
2197
  this.update((state) => {
2202
2198
  const index = state.transactions.findIndex(({ id }) => id === transactionId);
@@ -2213,10 +2209,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2213
2209
  if (!skipResimulateCheck && __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this)) {
2214
2210
  resimulateResponse = (0, ResimulateHelper_1.shouldResimulate)(originalTransactionMeta, transactionMeta);
2215
2211
  }
2216
- const shouldSkipHistory = __classPrivateFieldGet(this, _TransactionController_isHistoryDisabled, "f") || skipHistory;
2217
- if (!shouldSkipHistory) {
2218
- transactionMeta = (0, history_1.updateTransactionHistory)(transactionMeta, note ?? 'Transaction updated');
2219
- }
2220
2212
  state.transactions[index] = transactionMeta;
2221
2213
  });
2222
2214
  const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
@@ -2278,7 +2270,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2278
2270
  }
2279
2271
  const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
2280
2272
  transactionId,
2281
- note: 'TransactionController#updateSimulationData - Update simulation data',
2282
2273
  skipResimulateCheck: Boolean(blockTime),
2283
2274
  }, (txMeta) => {
2284
2275
  txMeta.gasFeeTokens = gasFeeTokens;
@@ -2291,7 +2282,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2291
2282
  (0, logger_1.projectLogger)('Updated simulation data', transactionId, updatedTransactionMeta);
2292
2283
  await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_runAfterSimulateHook).call(this, updatedTransactionMeta);
2293
2284
  }, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
2294
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipHistory: true }, (txMeta) => {
2285
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, (txMeta) => {
2295
2286
  (0, GasFeePoller_1.updateTransactionGasProperties)({
2296
2287
  txMeta,
2297
2288
  gasFeeEstimates,
@@ -2397,7 +2388,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2397
2388
  try {
2398
2389
  newTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
2399
2390
  transactionId: transactionMeta.id,
2400
- note: 'TransactionController#failTransaction - Add error message and set status to failed',
2401
2391
  skipValidation: true,
2402
2392
  }, (draftTransactionMeta) => {
2403
2393
  draftTransactionMeta.status = types_1.TransactionStatus.failed;
@@ -2439,7 +2429,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2439
2429
  const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
2440
2430
  transactionId,
2441
2431
  skipResimulateCheck: true,
2442
- note: 'afterSimulate Hook',
2443
2432
  }, (txMeta) => {
2444
2433
  txMeta.txParamsOriginal = (0, lodash_1.cloneDeep)(txMeta.txParams);
2445
2434
  updateTransaction(txMeta);