@metamask-previews/transaction-controller 60.4.0-preview-b896289e → 60.5.0-preview-683bbcb0

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 +18 -4
  2. package/dist/TransactionController.cjs +74 -127
  3. package/dist/TransactionController.cjs.map +1 -1
  4. package/dist/TransactionController.d.cts +18 -50
  5. package/dist/TransactionController.d.cts.map +1 -1
  6. package/dist/TransactionController.d.mts +18 -50
  7. package/dist/TransactionController.d.mts.map +1 -1
  8. package/dist/TransactionController.mjs +75 -128
  9. package/dist/TransactionController.mjs.map +1 -1
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.cts +2 -2
  12. package/dist/index.d.cts.map +1 -1
  13. package/dist/index.d.mts +2 -2
  14. package/dist/index.d.mts.map +1 -1
  15. package/dist/index.mjs.map +1 -1
  16. package/dist/types.cjs.map +1 -1
  17. package/dist/types.d.cts +44 -0
  18. package/dist/types.d.cts.map +1 -1
  19. package/dist/types.d.mts +44 -0
  20. package/dist/types.d.mts.map +1 -1
  21. package/dist/types.mjs.map +1 -1
  22. package/dist/utils/first-time-interaction.cjs +77 -0
  23. package/dist/utils/first-time-interaction.cjs.map +1 -0
  24. package/dist/utils/first-time-interaction.d.cts +30 -0
  25. package/dist/utils/first-time-interaction.d.cts.map +1 -0
  26. package/dist/utils/first-time-interaction.d.mts +30 -0
  27. package/dist/utils/first-time-interaction.d.mts.map +1 -0
  28. package/dist/utils/first-time-interaction.mjs +73 -0
  29. package/dist/utils/first-time-interaction.mjs.map +1 -0
  30. package/dist/utils/transaction-type.cjs +22 -5
  31. package/dist/utils/transaction-type.cjs.map +1 -1
  32. package/dist/utils/transaction-type.d.cts +14 -0
  33. package/dist/utils/transaction-type.d.cts.map +1 -1
  34. package/dist/utils/transaction-type.d.mts +14 -0
  35. package/dist/utils/transaction-type.d.mts.map +1 -1
  36. package/dist/utils/transaction-type.mjs +20 -4
  37. package/dist/utils/transaction-type.mjs.map +1 -1
  38. package/package.json +2 -3
@@ -9,28 +9,27 @@ 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_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_updateFirstTimeInteraction, _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;
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_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;
13
13
  function $importDefault(module) {
14
14
  if (module?.__esModule) {
15
15
  return module.default;
16
16
  }
17
17
  return module;
18
18
  }
19
- import { BaseController } from "@metamask/base-controller/next";
19
+ import { BaseController } from "@metamask/base-controller";
20
20
  import { query, ApprovalType, ORIGIN_METAMASK, convertHexToDecimal } from "@metamask/controller-utils";
21
21
  import $EthQuery from "@metamask/eth-query";
22
22
  const EthQuery = $importDefault($EthQuery);
23
23
  import { NetworkClientType } from "@metamask/network-controller";
24
24
  import { NonceTracker } from "@metamask/nonce-tracker";
25
25
  import { errorCodes, rpcErrors, providerErrors, JsonRpcError } from "@metamask/rpc-errors";
26
- import { add0x, hexToNumber } from "@metamask/utils";
26
+ import { add0x } from "@metamask/utils";
27
27
  // This package purposefully relies on Node's EventEmitter module.
28
28
  // eslint-disable-next-line import-x/no-nodejs-modules
29
29
  import { EventEmitter } from "events";
30
30
  import $lodash from "lodash";
31
31
  const { cloneDeep, mapValues, merge, pickBy, sortBy } = $lodash;
32
32
  import { v1 as random } from "uuid";
33
- import { getAccountAddressRelationship } from "./api/accounts-api.mjs";
34
33
  import { DefaultGasFeeFlow } from "./gas-flows/DefaultGasFeeFlow.mjs";
35
34
  import { LineaGasFeeFlow } from "./gas-flows/LineaGasFeeFlow.mjs";
36
35
  import { OptimismLayer1GasFeeFlow } from "./gas-flows/OptimismLayer1GasFeeFlow.mjs";
@@ -51,6 +50,7 @@ import { getBalanceChanges } from "./utils/balance-changes.mjs";
51
50
  import { addTransactionBatch, isAtomicBatchSupported } from "./utils/batch.mjs";
52
51
  import { generateEIP7702BatchTransaction, getDelegationAddress, signAuthorizationList } from "./utils/eip7702.mjs";
53
52
  import { validateConfirmedExternalTransaction } from "./utils/external-transactions.mjs";
53
+ import { updateFirstTimeInteraction } from "./utils/first-time-interaction.mjs";
54
54
  import { addGasBuffer, estimateGas, updateGas } from "./utils/gas.mjs";
55
55
  import { getGasFeeTokens } from "./utils/gas-fee-tokens.mjs";
56
56
  import { updateGasFees } from "./utils/gas-fees.mjs";
@@ -63,7 +63,7 @@ import { getTransactionParamsWithIncreasedGasFee } from "./utils/retry.mjs";
63
63
  import { updatePostTransactionBalance, updateSwapsTransaction } from "./utils/swaps.mjs";
64
64
  import { determineTransactionType } from "./utils/transaction-type.mjs";
65
65
  import { normalizeTransactionParams, isEIP1559Transaction, validateGasValues, validateIfTransactionUnapproved, normalizeTxError, normalizeGasFeeValues, setEnvelopeType } from "./utils/utils.mjs";
66
- import { ErrorCode, validateParamTo, validateTransactionOrigin, validateTxParams } from "./utils/validation.mjs";
66
+ import { ErrorCode, validateTransactionOrigin, validateTxParams } from "./utils/validation.mjs";
67
67
  /**
68
68
  * Metadata for the TransactionController state, describing how to "anonymize"
69
69
  * the state and which parts should be persisted.
@@ -72,31 +72,31 @@ const metadata = {
72
72
  transactions: {
73
73
  includeInStateLogs: true,
74
74
  persist: true,
75
- includeInDebugSnapshot: false,
75
+ anonymous: false,
76
76
  usedInUi: true,
77
77
  },
78
78
  transactionBatches: {
79
79
  includeInStateLogs: true,
80
80
  persist: true,
81
- includeInDebugSnapshot: false,
81
+ anonymous: false,
82
82
  usedInUi: true,
83
83
  },
84
84
  methodData: {
85
85
  includeInStateLogs: true,
86
86
  persist: true,
87
- includeInDebugSnapshot: false,
87
+ anonymous: false,
88
88
  usedInUi: true,
89
89
  },
90
90
  lastFetchedBlockNumbers: {
91
91
  includeInStateLogs: true,
92
92
  persist: true,
93
- includeInDebugSnapshot: false,
93
+ anonymous: false,
94
94
  usedInUi: false,
95
95
  },
96
96
  submitHistory: {
97
97
  includeInStateLogs: true,
98
98
  persist: true,
99
- includeInDebugSnapshot: false,
99
+ anonymous: false,
100
100
  usedInUi: false,
101
101
  },
102
102
  };
@@ -201,7 +201,7 @@ export class TransactionController extends BaseController {
201
201
  _TransactionController_checkForPendingTransactionAndStartPolling.set(this, () => {
202
202
  __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").checkForPendingTransactionAndStartPolling();
203
203
  });
204
- this.messenger = messenger;
204
+ this.messagingSystem = messenger;
205
205
  __classPrivateFieldSet(this, _TransactionController_afterAdd, hooks?.afterAdd ?? (() => Promise.resolve({})), "f");
206
206
  __classPrivateFieldSet(this, _TransactionController_afterSign, hooks?.afterSign ?? (() => true), "f");
207
207
  __classPrivateFieldSet(this, _TransactionController_afterSimulate, hooks?.afterSimulate ?? (() => Promise.resolve({})), "f");
@@ -237,19 +237,19 @@ export class TransactionController extends BaseController {
237
237
  __classPrivateFieldSet(this, _TransactionController_trace, trace ?? ((_request, fn) => fn?.()), "f");
238
238
  __classPrivateFieldSet(this, _TransactionController_transactionHistoryLimit, transactionHistoryLimit, "f");
239
239
  const findNetworkClientIdByChainId = (chainId) => {
240
- return this.messenger.call(`NetworkController:findNetworkClientIdByChainId`, chainId);
240
+ return this.messagingSystem.call(`NetworkController:findNetworkClientIdByChainId`, chainId);
241
241
  };
242
242
  __classPrivateFieldSet(this, _TransactionController_multichainTrackingHelper, new MultichainTrackingHelper({
243
243
  findNetworkClientIdByChainId,
244
244
  getNetworkClientById: ((networkClientId) => {
245
- return this.messenger.call(`NetworkController:getNetworkClientById`, networkClientId);
245
+ return this.messagingSystem.call(`NetworkController:getNetworkClientById`, networkClientId);
246
246
  }),
247
247
  getNetworkClientRegistry,
248
248
  removePendingTransactionTrackerListeners: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removePendingTransactionTrackerListeners).bind(this),
249
249
  createNonceTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createNonceTracker).bind(this),
250
250
  createPendingTransactionTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).bind(this),
251
251
  onNetworkStateChange: (listener) => {
252
- this.messenger.subscribe('NetworkController:stateChange', listener);
252
+ this.messagingSystem.subscribe('NetworkController:stateChange', listener);
253
253
  },
254
254
  }), "f");
255
255
  __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").initialize();
@@ -263,9 +263,9 @@ export class TransactionController extends BaseController {
263
263
  getTransactions: () => this.state.transactions,
264
264
  getTransactionBatches: () => this.state.transactionBatches,
265
265
  layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
266
- messenger: this.messenger,
266
+ messenger: this.messagingSystem,
267
267
  onStateChange: (listener) => {
268
- this.messenger.subscribe('TransactionController:stateChange', listener);
268
+ this.messagingSystem.subscribe('TransactionController:stateChange', listener);
269
269
  },
270
270
  });
271
271
  gasFeePoller.hub.on('transaction-updated', __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onGasFeePollerTransactionUpdate).bind(this));
@@ -285,7 +285,7 @@ export class TransactionController extends BaseController {
285
285
  getLocalTransactions: () => this.state.transactions,
286
286
  includeTokenTransfers: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").includeTokenTransfers,
287
287
  isEnabled: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").isEnabled,
288
- messenger: this.messenger,
288
+ messenger: this.messagingSystem,
289
289
  remoteTransactionSource: new AccountsApiRemoteTransactionSource(),
290
290
  trimTransactions: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).bind(this),
291
291
  updateTransactions: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").updateTransactions,
@@ -293,11 +293,11 @@ export class TransactionController extends BaseController {
293
293
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addIncomingTransactionHelperListeners).call(this, __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f"));
294
294
  // when transactionsController state changes
295
295
  // check for pending transactions and start polling if there are any
296
- this.messenger.subscribe('TransactionController:stateChange', __classPrivateFieldGet(this, _TransactionController_checkForPendingTransactionAndStartPolling, "f"));
296
+ this.messagingSystem.subscribe('TransactionController:stateChange', __classPrivateFieldGet(this, _TransactionController_checkForPendingTransactionAndStartPolling, "f"));
297
297
  new ResimulateHelper({
298
298
  simulateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).bind(this),
299
299
  onTransactionsUpdate: (listener) => {
300
- this.messenger.subscribe('TransactionController:stateChange', listener, (controllerState) => controllerState.transactions);
300
+ this.messagingSystem.subscribe('TransactionController:stateChange', listener, (controllerState) => controllerState.transactions);
301
301
  },
302
302
  getTransactions: () => this.state.transactions,
303
303
  });
@@ -328,7 +328,7 @@ export class TransactionController extends BaseController {
328
328
  * @returns Result object containing the generated batch ID.
329
329
  */
330
330
  async addTransactionBatch(request) {
331
- const { blockTracker } = this.messenger.call(`NetworkController:getNetworkClientById`, request.networkClientId);
331
+ const { blockTracker } = this.messagingSystem.call(`NetworkController:getNetworkClientById`, request.networkClientId);
332
332
  return await addTransactionBatch({
333
333
  addTransaction: this.addTransaction.bind(this),
334
334
  getChainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).bind(this),
@@ -344,7 +344,7 @@ export class TransactionController extends BaseController {
344
344
  }),
345
345
  getTransaction: (transactionId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId),
346
346
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f"),
347
- messenger: this.messenger,
347
+ messenger: this.messagingSystem,
348
348
  publishBatchHook: __classPrivateFieldGet(this, _TransactionController_publishBatchHook, "f"),
349
349
  publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
350
350
  publishTransaction: (ethQuery, transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, ethQuery, transactionMeta),
@@ -364,36 +364,17 @@ export class TransactionController extends BaseController {
364
364
  return isAtomicBatchSupported({
365
365
  ...request,
366
366
  getEthQuery: (chainId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId }),
367
- messenger: this.messenger,
367
+ messenger: this.messagingSystem,
368
368
  publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
369
369
  });
370
370
  }
371
371
  /**
372
372
  * Add a new unapproved transaction to state. Parameters will be validated, a
373
- * unique transaction id will be generated, and gas and gasPrice will be calculated
374
- * if not provided. If A `<tx.id>:unapproved` hub event will be emitted once added.
373
+ * unique transaction ID will be generated, and `gas` and `gasPrice` will be calculated
374
+ * if not provided. A `<tx.id>:unapproved` hub event will be emitted once added.
375
375
  *
376
376
  * @param txParams - Standard parameters for an Ethereum transaction.
377
377
  * @param options - Additional options to control how the transaction is added.
378
- * @param options.actionId - Unique ID to prevent duplicate requests.
379
- * @param options.assetsFiatValues - The fiat values of the assets being sent and received.
380
- * @param options.batchId - A custom ID for the batch this transaction belongs to.
381
- * @param options.deviceConfirmedOn - An enum to indicate what device confirmed the transaction.
382
- * @param options.disableGasBuffer - Whether to disable the gas estimation buffer.
383
- * @param options.isGasFeeIncluded - Whether MetaMask will be compensated for the gas fee by the transaction.
384
- * @param options.method - RPC method that requested the transaction.
385
- * @param options.nestedTransactions - Params for any nested transactions encoded in the data.
386
- * @param options.origin - The origin of the transaction request, such as a dApp hostname.
387
- * @param options.publishHook - Custom logic to publish the transaction.
388
- * @param options.requireApproval - Whether the transaction requires approval by the user, defaults to true unless explicitly disabled.
389
- * @param options.securityAlertResponse - Response from security validator.
390
- * @param options.sendFlowHistory - The sendFlowHistory entries to add.
391
- * @param options.type - Type of transaction to add, such as 'cancel' or 'swap'.
392
- * @param options.swaps - Options for swaps transactions.
393
- * @param options.swaps.hasApproveTx - Whether the transaction has an approval transaction.
394
- * @param options.swaps.meta - Metadata for swap transaction.
395
- * @param options.networkClientId - The id of the network client for this transaction.
396
- * @param options.traceContext - The parent context for any new traces.
397
378
  * @returns Object containing a promise resolving to the transaction hash if approved.
398
379
  */
399
380
  async addTransaction(txParams, options) {
@@ -492,7 +473,7 @@ export class TransactionController extends BaseController {
492
473
  addedTransactionMeta = updateSwapsTransaction(addedTransactionMeta, transactionType, swaps, {
493
474
  isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
494
475
  cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
495
- messenger: this.messenger,
476
+ messenger: this.messagingSystem,
496
477
  });
497
478
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addMetadata).call(this, addedTransactionMeta);
498
479
  if (requireApproval !== false) {
@@ -502,8 +483,14 @@ export class TransactionController extends BaseController {
502
483
  log('Error while updating simulation data', error);
503
484
  throw error;
504
485
  });
505
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateFirstTimeInteraction).call(this, addedTransactionMeta, {
486
+ updateFirstTimeInteraction({
487
+ existingTransactions: this.state.transactions,
488
+ getTransaction: (transactionId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId),
489
+ isFirstTimeInteractionEnabled: __classPrivateFieldGet(this, _TransactionController_isFirstTimeInteractionEnabled, "f"),
490
+ trace: __classPrivateFieldGet(this, _TransactionController_trace, "f"),
506
491
  traceContext,
492
+ transactionMeta: addedTransactionMeta,
493
+ updateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).bind(this),
507
494
  }).catch((error) => {
508
495
  log('Error while updating first interaction properties', error);
509
496
  });
@@ -511,7 +498,7 @@ export class TransactionController extends BaseController {
511
498
  else {
512
499
  log('Skipping simulation & first interaction update as approval not required');
513
500
  }
514
- this.messenger.publish(`${controllerName}:unapprovedTransactionAdded`, addedTransactionMeta);
501
+ this.messagingSystem.publish(`${controllerName}:unapprovedTransactionAdded`, addedTransactionMeta);
515
502
  }
516
503
  return {
517
504
  result: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_processApproval).call(this, addedTransactionMeta, {
@@ -564,7 +551,7 @@ export class TransactionController extends BaseController {
564
551
  txParams.value = '0x0';
565
552
  },
566
553
  afterSubmit: (newTransactionMeta) => {
567
- this.messenger.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
554
+ this.messagingSystem.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
568
555
  __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${newTransactionMeta.id}:finished`, newTransactionMeta);
569
556
  },
570
557
  });
@@ -588,7 +575,7 @@ export class TransactionController extends BaseController {
588
575
  transactionId,
589
576
  transactionType: TransactionType.retry,
590
577
  afterSubmit: (newTransactionMeta) => {
591
- this.messenger.publish(`${controllerName}:speedupTransactionAdded`, newTransactionMeta);
578
+ this.messagingSystem.publish(`${controllerName}:speedupTransactionAdded`, newTransactionMeta);
592
579
  },
593
580
  });
594
581
  }
@@ -611,7 +598,7 @@ export class TransactionController extends BaseController {
611
598
  ignoreDelegationSignatures,
612
599
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
613
600
  getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
614
- messenger: this.messenger,
601
+ messenger: this.messagingSystem,
615
602
  txParams: transaction,
616
603
  });
617
604
  return { gas: estimatedGas, simulationFails };
@@ -633,7 +620,7 @@ export class TransactionController extends BaseController {
633
620
  ethQuery,
634
621
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
635
622
  getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
636
- messenger: this.messenger,
623
+ messenger: this.messagingSystem,
637
624
  txParams: transaction,
638
625
  });
639
626
  const gas = addGasBuffer(estimatedGas, blockGasLimit, multiplier);
@@ -735,7 +722,7 @@ export class TransactionController extends BaseController {
735
722
  log('Error while updating post balance', error);
736
723
  throw error;
737
724
  });
738
- this.messenger.publish(`${controllerName}:transactionConfirmed`, updatedTransactionMeta);
725
+ this.messagingSystem.publish(`${controllerName}:transactionConfirmed`, updatedTransactionMeta);
739
726
  }
740
727
  catch (error) {
741
728
  console.error('Failed to confirm external transaction', error);
@@ -932,7 +919,7 @@ export class TransactionController extends BaseController {
932
919
  }
933
920
  await updateTransactionLayer1GasFee({
934
921
  layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
935
- messenger: this.messenger,
922
+ messenger: this.messagingSystem,
936
923
  provider,
937
924
  transactionMeta: updatedTransaction,
938
925
  });
@@ -1060,7 +1047,7 @@ export class TransactionController extends BaseController {
1060
1047
  this.updateTransaction(updatedTransactionMeta, `${controllerName}:updateCustodialTransaction - Custodial transaction updated`);
1061
1048
  if (status &&
1062
1049
  [TransactionStatus.submitted, TransactionStatus.failed].includes(status)) {
1063
- this.messenger.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
1050
+ this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
1064
1051
  __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${updatedTransactionMeta.id}:finished`, updatedTransactionMeta);
1065
1052
  }
1066
1053
  return updatedTransactionMeta;
@@ -1157,7 +1144,7 @@ export class TransactionController extends BaseController {
1157
1144
  networkClientId,
1158
1145
  };
1159
1146
  // Guaranteed as the default gas fee flow matches all transactions.
1160
- const gasFeeFlow = getGasFeeFlow(transactionMeta, __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"), this.messenger);
1147
+ const gasFeeFlow = getGasFeeFlow(transactionMeta, __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"), this.messagingSystem);
1161
1148
  const ethQuery = new EthQuery(provider);
1162
1149
  const gasFeeControllerData = await __classPrivateFieldGet(this, _TransactionController_getGasFeeEstimates, "f").call(this, {
1163
1150
  networkClientId,
@@ -1165,7 +1152,7 @@ export class TransactionController extends BaseController {
1165
1152
  return gasFeeFlow.getGasFees({
1166
1153
  ethQuery,
1167
1154
  gasFeeControllerData,
1168
- messenger: this.messenger,
1155
+ messenger: this.messagingSystem,
1169
1156
  transactionMeta,
1170
1157
  });
1171
1158
  }
@@ -1185,7 +1172,7 @@ export class TransactionController extends BaseController {
1185
1172
  });
1186
1173
  return await getTransactionLayer1GasFee({
1187
1174
  layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
1188
- messenger: this.messenger,
1175
+ messenger: this.messagingSystem,
1189
1176
  provider,
1190
1177
  transactionMeta: {
1191
1178
  txParams: transactionParams,
@@ -1374,11 +1361,11 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1374
1361
  newTransactionMeta.hash = hash;
1375
1362
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addMetadata).call(this, newTransactionMeta);
1376
1363
  // speedUpTransaction has no approval request, so we assume the user has already approved the transaction
1377
- this.messenger.publish(`${controllerName}:transactionApproved`, {
1364
+ this.messagingSystem.publish(`${controllerName}:transactionApproved`, {
1378
1365
  transactionMeta: newTransactionMeta,
1379
1366
  actionId,
1380
1367
  });
1381
- this.messenger.publish(`${controllerName}:transactionSubmitted`, {
1368
+ this.messagingSystem.publish(`${controllerName}:transactionSubmitted`, {
1382
1369
  transactionMeta: newTransactionMeta,
1383
1370
  actionId,
1384
1371
  });
@@ -1425,12 +1412,12 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1425
1412
  gasFeeFlows: __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"),
1426
1413
  getGasFeeEstimates: __classPrivateFieldGet(this, _TransactionController_getGasFeeEstimates, "f"),
1427
1414
  getSavedGasFees: __classPrivateFieldGet(this, _TransactionController_getSavedGasFees, "f").bind(this),
1428
- messenger: this.messenger,
1415
+ messenger: this.messagingSystem,
1429
1416
  txMeta: transactionMeta,
1430
1417
  }));
1431
1418
  await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Layer 1 Gas Fees', parentContext: traceContext }, async () => await updateTransactionLayer1GasFee({
1432
1419
  layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
1433
- messenger: this.messenger,
1420
+ messenger: this.messagingSystem,
1434
1421
  provider,
1435
1422
  transactionMeta,
1436
1423
  }));
@@ -1475,7 +1462,7 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1475
1462
  resultCallbacks.success();
1476
1463
  }
1477
1464
  const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
1478
- this.messenger.publish(`${controllerName}:transactionApproved`, {
1465
+ this.messagingSystem.publish(`${controllerName}:transactionApproved`, {
1479
1466
  transactionMeta: updatedTransactionMeta,
1480
1467
  actionId,
1481
1468
  });
@@ -1563,7 +1550,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1563
1550
  const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_signTransaction).call(this, transactionMeta));
1564
1551
  if (!(await __classPrivateFieldGet(this, _TransactionController_beforePublish, "f").call(this, transactionMeta))) {
1565
1552
  log('Skipping publishing transaction based on hook');
1566
- this.messenger.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
1553
+ this.messagingSystem.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
1567
1554
  return ApprovalState.SkippedViaBeforePublishHook;
1568
1555
  }
1569
1556
  if (!rawTx && !transactionMeta.isExternalSign) {
@@ -1613,10 +1600,10 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1613
1600
  log('Updated pre-transaction balance', preTxBalance);
1614
1601
  }
1615
1602
  });
1616
- this.messenger.publish(`${controllerName}:transactionSubmitted`, {
1603
+ this.messagingSystem.publish(`${controllerName}:transactionSubmitted`, {
1617
1604
  transactionMeta,
1618
1605
  });
1619
- this.messenger.publish(`${controllerName}:transactionFinished`, transactionMeta);
1606
+ this.messagingSystem.publish(`${controllerName}:transactionFinished`, transactionMeta);
1620
1607
  __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionId}:finished`, transactionMeta);
1621
1608
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMeta);
1622
1609
  return ApprovalState.Approved;
@@ -1650,9 +1637,9 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1650
1637
  status: TransactionStatus.rejected,
1651
1638
  error: normalizeTxError(error ?? providerErrors.userRejectedRequest()),
1652
1639
  };
1653
- this.messenger.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
1640
+ this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
1654
1641
  __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, updatedTransactionMeta);
1655
- this.messenger.publish(`${controllerName}:transactionRejected`, {
1642
+ this.messagingSystem.publish(`${controllerName}:transactionRejected`, {
1656
1643
  transactionMeta: updatedTransactionMeta,
1657
1644
  actionId,
1658
1645
  });
@@ -1699,7 +1686,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1699
1686
  id,
1700
1687
  parentContext: traceContext,
1701
1688
  });
1702
- return (await this.messenger.call('ApprovalController:addRequest', {
1689
+ return (await this.messagingSystem.call('ApprovalController:addRequest', {
1703
1690
  id,
1704
1691
  origin: origin || ORIGIN_METAMASK,
1705
1692
  type,
@@ -1770,7 +1757,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1770
1757
  ]);
1771
1758
  log('Added incoming transactions to state', finalTransactions.length, finalTransactions);
1772
1759
  });
1773
- this.messenger.publish(`${controllerName}:incomingTransactionsReceived`, finalTransactions);
1760
+ this.messagingSystem.publish(`${controllerName}:incomingTransactionsReceived`, finalTransactions);
1774
1761
  }, _TransactionController_generateDappSuggestedGasFees = function _TransactionController_generateDappSuggestedGasFees(txParams, origin) {
1775
1762
  if (!origin || origin === ORIGIN_METAMASK) {
1776
1763
  return undefined;
@@ -1852,7 +1839,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1852
1839
  ...transactionMeta,
1853
1840
  status: TransactionStatus.dropped,
1854
1841
  };
1855
- this.messenger.publish(`${controllerName}:transactionDropped`, {
1842
+ this.messagingSystem.publish(`${controllerName}:transactionDropped`, {
1856
1843
  transactionMeta: updatedTransactionMeta,
1857
1844
  });
1858
1845
  this.updateTransaction(updatedTransactionMeta, 'TransactionController#setTransactionStatusDropped - Transaction dropped');
@@ -1888,7 +1875,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1888
1875
  const { authorizationList, from } = txParams;
1889
1876
  const signedAuthorizationList = await signAuthorizationList({
1890
1877
  authorizationList,
1891
- messenger: this.messenger,
1878
+ messenger: this.messagingSystem,
1892
1879
  transactionMeta,
1893
1880
  });
1894
1881
  if (signedAuthorizationList) {
@@ -1936,7 +1923,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1936
1923
  this.updateTransaction(transactionMetaWithRawTx, 'TransactionController#approveTransaction - RawTransaction added');
1937
1924
  return rawTx;
1938
1925
  }, _TransactionController_onTransactionStatusChange = function _TransactionController_onTransactionStatusChange(transactionMeta) {
1939
- this.messenger.publish(`${controllerName}:transactionStatusUpdated`, {
1926
+ this.messagingSystem.publish(`${controllerName}:transactionStatusUpdated`, {
1940
1927
  transactionMeta,
1941
1928
  });
1942
1929
  }, _TransactionController_getNonceTrackerTransactions = function _TransactionController_getNonceTrackerTransactions(statuses, address, chainId) {
@@ -1944,7 +1931,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1944
1931
  }, _TransactionController_onConfirmedTransaction = function _TransactionController_onConfirmedTransaction(transactionMeta) {
1945
1932
  log('Processing confirmed transaction', transactionMeta.id);
1946
1933
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_markNonceDuplicatesDropped).call(this, transactionMeta.id);
1947
- this.messenger.publish(`${controllerName}:transactionConfirmed`, transactionMeta);
1934
+ this.messagingSystem.publish(`${controllerName}:transactionConfirmed`, transactionMeta);
1948
1935
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMeta);
1949
1936
  // Intentional given potential duration of process.
1950
1937
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updatePostBalance).call(this, transactionMeta).catch((error) => {
@@ -1963,7 +1950,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1963
1950
  getTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).bind(this),
1964
1951
  updateTransaction: this.updateTransaction.bind(this),
1965
1952
  });
1966
- this.messenger.publish(`${controllerName}:postTransactionBalanceUpdated`, {
1953
+ this.messagingSystem.publish(`${controllerName}:postTransactionBalanceUpdated`, {
1967
1954
  transactionMeta: updatedTransactionMeta,
1968
1955
  approvalTransactionMeta,
1969
1956
  });
@@ -1994,7 +1981,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1994
1981
  getGlobalLock: () => __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").acquireNonceLockForChainIdKey({
1995
1982
  chainId,
1996
1983
  }),
1997
- messenger: this.messenger,
1984
+ messenger: this.messagingSystem,
1998
1985
  publishTransaction: (_ethQuery, transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, _ethQuery, transactionMeta, {
1999
1986
  skipSubmitHistory: true,
2000
1987
  }),
@@ -2083,48 +2070,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2083
2070
  });
2084
2071
  }
2085
2072
  return transactionMeta;
2086
- }, _TransactionController_updateFirstTimeInteraction = async function _TransactionController_updateFirstTimeInteraction(transactionMeta, { traceContext, } = {}) {
2087
- if (!__classPrivateFieldGet(this, _TransactionController_isFirstTimeInteractionEnabled, "f").call(this)) {
2088
- return;
2089
- }
2090
- const { chainId, id: transactionId, txParams: { to, from }, } = transactionMeta;
2091
- const request = {
2092
- chainId: hexToNumber(chainId),
2093
- to: to,
2094
- from,
2095
- };
2096
- validateParamTo(to);
2097
- const existingTransaction = this.state.transactions.find((tx) => tx.chainId === chainId &&
2098
- tx.txParams.from === from &&
2099
- tx.txParams.to === to &&
2100
- tx.id !== transactionId);
2101
- // Check if there is an existing transaction with the same from, to, and chainId
2102
- // else we continue to check the account address relationship from API
2103
- if (existingTransaction) {
2104
- return;
2105
- }
2106
- try {
2107
- const { count } = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Account Address Relationship', parentContext: traceContext }, () => getAccountAddressRelationship(request));
2108
- const isFirstTimeInteraction = count === undefined ? undefined : count === 0;
2109
- const finalTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
2110
- /* istanbul ignore if */
2111
- if (!finalTransactionMeta) {
2112
- log('Cannot update first time interaction as transaction not found', transactionId);
2113
- return;
2114
- }
2115
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
2116
- transactionId,
2117
- note: 'TransactionController#updateFirstInteraction - Update first time interaction',
2118
- }, (txMeta) => {
2119
- txMeta.isFirstTimeInteraction = isFirstTimeInteraction;
2120
- });
2121
- log('Updated first time interaction', transactionId, {
2122
- isFirstTimeInteraction,
2123
- });
2124
- }
2125
- catch (error) {
2126
- log('Error fetching account address relationship, skipping first time interaction update', error);
2127
- }
2128
2073
  }, _TransactionController_updateSimulationData = async function _TransactionController_updateSimulationData(transactionMeta, { blockTime, traceContext, } = {}) {
2129
2074
  const { chainId, id: transactionId, nestedTransactions, networkClientId, simulationData: prevSimulationData, txParams, } = transactionMeta;
2130
2075
  let simulationData = {
@@ -2161,7 +2106,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2161
2106
  chainId,
2162
2107
  getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
2163
2108
  isEIP7702GasFeeTokensEnabled: __classPrivateFieldGet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, "f"),
2164
- messenger: this.messenger,
2109
+ messenger: this.messagingSystem,
2165
2110
  publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
2166
2111
  transactionMeta,
2167
2112
  });
@@ -2213,9 +2158,9 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2213
2158
  state.transactionBatches[index] = updated ?? batch;
2214
2159
  });
2215
2160
  }, _TransactionController_getSelectedAccount = function _TransactionController_getSelectedAccount() {
2216
- return this.messenger.call('AccountsController:getSelectedAccount');
2161
+ return this.messagingSystem.call('AccountsController:getSelectedAccount');
2217
2162
  }, _TransactionController_getInternalAccounts = function _TransactionController_getInternalAccounts() {
2218
- const state = this.messenger.call('AccountsController:getState');
2163
+ const state = this.messagingSystem.call('AccountsController:getState');
2219
2164
  return Object.values(state.internalAccounts?.accounts ?? {})
2220
2165
  .filter((account) => account.type === 'eip155:eoa')
2221
2166
  .map((account) => account.address);
@@ -2255,16 +2200,18 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2255
2200
  isCustomNetwork,
2256
2201
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
2257
2202
  getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
2258
- messenger: this.messenger,
2203
+ messenger: this.messagingSystem,
2259
2204
  txMeta: transactionMeta,
2260
2205
  });
2261
2206
  }, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
2262
- this.messenger.registerActionHandler(`${controllerName}:confirmExternalTransaction`, this.confirmExternalTransaction.bind(this));
2263
- this.messenger.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
2264
- this.messenger.registerActionHandler(`${controllerName}:getNonceLock`, this.getNonceLock.bind(this));
2265
- this.messenger.registerActionHandler(`${controllerName}:getTransactions`, this.getTransactions.bind(this));
2266
- this.messenger.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
2267
- this.messenger.registerActionHandler(`${controllerName}:updateTransaction`, this.updateTransaction.bind(this));
2207
+ this.messagingSystem.registerActionHandler(`${controllerName}:addTransaction`, this.addTransaction.bind(this));
2208
+ this.messagingSystem.registerActionHandler(`${controllerName}:addTransactionBatch`, this.addTransactionBatch.bind(this));
2209
+ this.messagingSystem.registerActionHandler(`${controllerName}:confirmExternalTransaction`, this.confirmExternalTransaction.bind(this));
2210
+ this.messagingSystem.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
2211
+ this.messagingSystem.registerActionHandler(`${controllerName}:getNonceLock`, this.getNonceLock.bind(this));
2212
+ this.messagingSystem.registerActionHandler(`${controllerName}:getTransactions`, this.getTransactions.bind(this));
2213
+ this.messagingSystem.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
2214
+ this.messagingSystem.registerActionHandler(`${controllerName}:updateTransaction`, this.updateTransaction.bind(this));
2268
2215
  }, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
2269
2216
  this.update((state) => {
2270
2217
  const transactions = state.transactions.filter(({ id }) => id !== transactionId);
@@ -2304,13 +2251,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2304
2251
  error: normalizeTxError(error),
2305
2252
  };
2306
2253
  }
2307
- this.messenger.publish(`${controllerName}:transactionFailed`, {
2254
+ this.messagingSystem.publish(`${controllerName}:transactionFailed`, {
2308
2255
  actionId,
2309
2256
  error: error.message,
2310
2257
  transactionMeta: newTransactionMeta,
2311
2258
  });
2312
2259
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, newTransactionMeta);
2313
- this.messenger.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
2260
+ this.messagingSystem.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
2314
2261
  __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, newTransactionMeta);
2315
2262
  }, _TransactionController_runAfterSimulateHook = async function _TransactionController_runAfterSimulateHook(transactionMeta) {
2316
2263
  log('Calling afterSimulate hook', transactionMeta);