@metamask/transaction-controller 60.9.0 → 61.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [61.0.0]
11
+
12
+ ### Changed
13
+
14
+ - **BREAKING:** Use new `Messenger` from `@metamask/messenger` ([#6386](https://github.com/MetaMask/core/pull/6386))
15
+ - Previously, `TransactionController` accepted a `RestrictedMessenger` instance from `@metamask/base-controller`.
16
+ - **BREAKING:** Bump `@metamask/accounts-controller` from `^33.0.0` to `^34.0.0` ([#6962](https://github.com/MetaMask/core/pull/6962))
17
+ - **BREAKING:** Bump `@metamask/approval-controller` from `^7.0.0` to `^8.0.0` ([#6962](https://github.com/MetaMask/core/pull/6962))
18
+ - **BREAKING:** Bump `@metamask/gas-fee-controller` from `^24.0.0` to `^25.0.0` ([#6962](https://github.com/MetaMask/core/pull/6962))
19
+ - **BREAKING:** Bump `@metamask/network-controller` from `^24.0.0` to `^25.0.0` ([#6962](https://github.com/MetaMask/core/pull/6962))
20
+ - **BREAKING:** Bump `@metamask/remote-feature-flag-controller` from `^1.5.0` to `^2.0.0` ([#6962](https://github.com/MetaMask/core/pull/6962))
21
+ - Bump `@metamask/base-controller` from `^8.4.2` to `^9.0.0` ([#6962](https://github.com/MetaMask/core/pull/6962))
22
+ - Bump `@metamask/polling-controller` from `^14.0.2` to `^15.0.0` ( [#6962](https://github.com/MetaMask/core/pull/6962))
23
+
24
+ ## [60.10.0]
25
+
26
+ ### Added
27
+
28
+ - Add actions `TransactionController:emulateNewTransaction` and `TransactionController:emulateTransactionUpdate` ([#6935](https://github.com/MetaMask/core/pull/6935))
29
+
30
+ ### Changed
31
+
32
+ - Bump `@metamask/base-controller` from `^8.4.1` to `^8.4.2` ([#6917](https://github.com/MetaMask/core/pull/6917))
33
+
34
+ ### Fixed
35
+
36
+ - Prevent race condition causing excessive incoming transaction polling ([#6913](https://github.com/MetaMask/core/pull/6913))
37
+
10
38
  ## [60.9.0]
11
39
 
12
40
  ### Added
@@ -1877,7 +1905,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1877
1905
 
1878
1906
  All changes listed after this point were applied to this package following the monorepo conversion.
1879
1907
 
1880
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.9.0...HEAD
1908
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@61.0.0...HEAD
1909
+ [61.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.10.0...@metamask/transaction-controller@61.0.0
1910
+ [60.10.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.9.0...@metamask/transaction-controller@60.10.0
1881
1911
  [60.9.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.8.0...@metamask/transaction-controller@60.9.0
1882
1912
  [60.8.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.7.0...@metamask/transaction-controller@60.8.0
1883
1913
  [60.7.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.6.1...@metamask/transaction-controller@60.7.0
@@ -70,31 +70,31 @@ const metadata = {
70
70
  transactions: {
71
71
  includeInStateLogs: true,
72
72
  persist: true,
73
- anonymous: false,
73
+ includeInDebugSnapshot: false,
74
74
  usedInUi: true,
75
75
  },
76
76
  transactionBatches: {
77
77
  includeInStateLogs: true,
78
78
  persist: true,
79
- anonymous: false,
79
+ includeInDebugSnapshot: false,
80
80
  usedInUi: true,
81
81
  },
82
82
  methodData: {
83
83
  includeInStateLogs: true,
84
84
  persist: true,
85
- anonymous: false,
85
+ includeInDebugSnapshot: false,
86
86
  usedInUi: true,
87
87
  },
88
88
  lastFetchedBlockNumbers: {
89
89
  includeInStateLogs: true,
90
90
  persist: true,
91
- anonymous: false,
91
+ includeInDebugSnapshot: false,
92
92
  usedInUi: false,
93
93
  },
94
94
  submitHistory: {
95
95
  includeInStateLogs: true,
96
96
  persist: true,
97
- anonymous: false,
97
+ includeInDebugSnapshot: false,
98
98
  usedInUi: false,
99
99
  },
100
100
  };
@@ -199,7 +199,7 @@ class TransactionController extends base_controller_1.BaseController {
199
199
  _TransactionController_checkForPendingTransactionAndStartPolling.set(this, () => {
200
200
  __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").checkForPendingTransactionAndStartPolling();
201
201
  });
202
- this.messagingSystem = messenger;
202
+ this.messenger = messenger;
203
203
  __classPrivateFieldSet(this, _TransactionController_afterAdd, hooks?.afterAdd ?? (() => Promise.resolve({})), "f");
204
204
  __classPrivateFieldSet(this, _TransactionController_afterSign, hooks?.afterSign ?? (() => true), "f");
205
205
  __classPrivateFieldSet(this, _TransactionController_afterSimulate, hooks?.afterSimulate ?? (() => Promise.resolve({})), "f");
@@ -235,19 +235,19 @@ class TransactionController extends base_controller_1.BaseController {
235
235
  __classPrivateFieldSet(this, _TransactionController_trace, trace ?? ((_request, fn) => fn?.()), "f");
236
236
  __classPrivateFieldSet(this, _TransactionController_transactionHistoryLimit, transactionHistoryLimit, "f");
237
237
  const findNetworkClientIdByChainId = (chainId) => {
238
- return this.messagingSystem.call(`NetworkController:findNetworkClientIdByChainId`, chainId);
238
+ return this.messenger.call(`NetworkController:findNetworkClientIdByChainId`, chainId);
239
239
  };
240
240
  __classPrivateFieldSet(this, _TransactionController_multichainTrackingHelper, new MultichainTrackingHelper_1.MultichainTrackingHelper({
241
241
  findNetworkClientIdByChainId,
242
242
  getNetworkClientById: ((networkClientId) => {
243
- return this.messagingSystem.call(`NetworkController:getNetworkClientById`, networkClientId);
243
+ return this.messenger.call(`NetworkController:getNetworkClientById`, networkClientId);
244
244
  }),
245
245
  getNetworkClientRegistry,
246
246
  removePendingTransactionTrackerListeners: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removePendingTransactionTrackerListeners).bind(this),
247
247
  createNonceTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createNonceTracker).bind(this),
248
248
  createPendingTransactionTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).bind(this),
249
249
  onNetworkStateChange: (listener) => {
250
- this.messagingSystem.subscribe('NetworkController:stateChange', listener);
250
+ this.messenger.subscribe('NetworkController:stateChange', listener);
251
251
  },
252
252
  }), "f");
253
253
  __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").initialize();
@@ -261,9 +261,9 @@ class TransactionController extends base_controller_1.BaseController {
261
261
  getTransactions: () => this.state.transactions,
262
262
  getTransactionBatches: () => this.state.transactionBatches,
263
263
  layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
264
- messenger: this.messagingSystem,
264
+ messenger: this.messenger,
265
265
  onStateChange: (listener) => {
266
- this.messagingSystem.subscribe('TransactionController:stateChange', listener);
266
+ this.messenger.subscribe('TransactionController:stateChange', listener);
267
267
  },
268
268
  });
269
269
  gasFeePoller.hub.on('transaction-updated', __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onGasFeePollerTransactionUpdate).bind(this));
@@ -283,7 +283,7 @@ class TransactionController extends base_controller_1.BaseController {
283
283
  getLocalTransactions: () => this.state.transactions,
284
284
  includeTokenTransfers: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").includeTokenTransfers,
285
285
  isEnabled: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").isEnabled,
286
- messenger: this.messagingSystem,
286
+ messenger: this.messenger,
287
287
  remoteTransactionSource: new AccountsApiRemoteTransactionSource_1.AccountsApiRemoteTransactionSource(),
288
288
  trimTransactions: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).bind(this),
289
289
  updateTransactions: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").updateTransactions,
@@ -291,11 +291,11 @@ class TransactionController extends base_controller_1.BaseController {
291
291
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addIncomingTransactionHelperListeners).call(this, __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f"));
292
292
  // when transactionsController state changes
293
293
  // check for pending transactions and start polling if there are any
294
- this.messagingSystem.subscribe('TransactionController:stateChange', __classPrivateFieldGet(this, _TransactionController_checkForPendingTransactionAndStartPolling, "f"));
294
+ this.messenger.subscribe('TransactionController:stateChange', __classPrivateFieldGet(this, _TransactionController_checkForPendingTransactionAndStartPolling, "f"));
295
295
  new ResimulateHelper_1.ResimulateHelper({
296
296
  simulateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).bind(this),
297
297
  onTransactionsUpdate: (listener) => {
298
- this.messagingSystem.subscribe('TransactionController:stateChange', listener, (controllerState) => controllerState.transactions);
298
+ this.messenger.subscribe('TransactionController:stateChange', listener, (controllerState) => controllerState.transactions);
299
299
  },
300
300
  getTransactions: () => this.state.transactions,
301
301
  });
@@ -326,7 +326,7 @@ class TransactionController extends base_controller_1.BaseController {
326
326
  * @returns Result object containing the generated batch ID.
327
327
  */
328
328
  async addTransactionBatch(request) {
329
- const { blockTracker } = this.messagingSystem.call(`NetworkController:getNetworkClientById`, request.networkClientId);
329
+ const { blockTracker } = this.messenger.call(`NetworkController:getNetworkClientById`, request.networkClientId);
330
330
  return await (0, batch_1.addTransactionBatch)({
331
331
  addTransaction: this.addTransaction.bind(this),
332
332
  estimateGas: this.estimateGas.bind(this),
@@ -343,7 +343,7 @@ class TransactionController extends base_controller_1.BaseController {
343
343
  }),
344
344
  getTransaction: (transactionId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId),
345
345
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f"),
346
- messenger: this.messagingSystem,
346
+ messenger: this.messenger,
347
347
  publishBatchHook: __classPrivateFieldGet(this, _TransactionController_publishBatchHook, "f"),
348
348
  publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
349
349
  publishTransaction: (ethQuery, transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, ethQuery, transactionMeta),
@@ -363,7 +363,7 @@ class TransactionController extends base_controller_1.BaseController {
363
363
  return (0, batch_1.isAtomicBatchSupported)({
364
364
  ...request,
365
365
  getEthQuery: (chainId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId }),
366
- messenger: this.messagingSystem,
366
+ messenger: this.messenger,
367
367
  publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
368
368
  });
369
369
  }
@@ -472,7 +472,7 @@ class TransactionController extends base_controller_1.BaseController {
472
472
  addedTransactionMeta = (0, swaps_1.updateSwapsTransaction)(addedTransactionMeta, transactionType, swaps, {
473
473
  isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
474
474
  cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
475
- messenger: this.messagingSystem,
475
+ messenger: this.messenger,
476
476
  });
477
477
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addMetadata).call(this, addedTransactionMeta);
478
478
  if (requireApproval !== false) {
@@ -497,7 +497,7 @@ class TransactionController extends base_controller_1.BaseController {
497
497
  else {
498
498
  (0, logger_1.projectLogger)('Skipping simulation & first interaction update as approval not required');
499
499
  }
500
- this.messagingSystem.publish(`${controllerName}:unapprovedTransactionAdded`, addedTransactionMeta);
500
+ this.messenger.publish(`${controllerName}:unapprovedTransactionAdded`, addedTransactionMeta);
501
501
  }
502
502
  return {
503
503
  result: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_processApproval).call(this, addedTransactionMeta, {
@@ -550,7 +550,7 @@ class TransactionController extends base_controller_1.BaseController {
550
550
  txParams.value = '0x0';
551
551
  },
552
552
  afterSubmit: (newTransactionMeta) => {
553
- this.messagingSystem.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
553
+ this.messenger.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
554
554
  __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${newTransactionMeta.id}:finished`, newTransactionMeta);
555
555
  },
556
556
  });
@@ -574,7 +574,7 @@ class TransactionController extends base_controller_1.BaseController {
574
574
  transactionId,
575
575
  transactionType: types_1.TransactionType.retry,
576
576
  afterSubmit: (newTransactionMeta) => {
577
- this.messagingSystem.publish(`${controllerName}:speedupTransactionAdded`, newTransactionMeta);
577
+ this.messenger.publish(`${controllerName}:speedupTransactionAdded`, newTransactionMeta);
578
578
  },
579
579
  });
580
580
  }
@@ -597,7 +597,7 @@ class TransactionController extends base_controller_1.BaseController {
597
597
  ignoreDelegationSignatures,
598
598
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
599
599
  getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
600
- messenger: this.messagingSystem,
600
+ messenger: this.messenger,
601
601
  txParams: transaction,
602
602
  });
603
603
  return { gas: estimatedGas, simulationFails };
@@ -619,7 +619,7 @@ class TransactionController extends base_controller_1.BaseController {
619
619
  ethQuery,
620
620
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
621
621
  getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
622
- messenger: this.messagingSystem,
622
+ messenger: this.messenger,
623
623
  txParams: transaction,
624
624
  });
625
625
  const gas = (0, gas_1.addGasBuffer)(estimatedGas, blockGasLimit, multiplier);
@@ -721,7 +721,7 @@ class TransactionController extends base_controller_1.BaseController {
721
721
  (0, logger_1.projectLogger)('Error while updating post balance', error);
722
722
  throw error;
723
723
  });
724
- this.messagingSystem.publish(`${controllerName}:transactionConfirmed`, updatedTransactionMeta);
724
+ this.messenger.publish(`${controllerName}:transactionConfirmed`, updatedTransactionMeta);
725
725
  }
726
726
  catch (error) {
727
727
  console.error('Failed to confirm external transaction', error);
@@ -918,7 +918,7 @@ class TransactionController extends base_controller_1.BaseController {
918
918
  }
919
919
  await (0, layer1_gas_fee_flow_1.updateTransactionLayer1GasFee)({
920
920
  layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
921
- messenger: this.messagingSystem,
921
+ messenger: this.messenger,
922
922
  provider,
923
923
  transactionMeta: updatedTransaction,
924
924
  });
@@ -1046,7 +1046,7 @@ class TransactionController extends base_controller_1.BaseController {
1046
1046
  this.updateTransaction(updatedTransactionMeta, `${controllerName}:updateCustodialTransaction - Custodial transaction updated`);
1047
1047
  if (status &&
1048
1048
  [types_1.TransactionStatus.submitted, types_1.TransactionStatus.failed].includes(status)) {
1049
- this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
1049
+ this.messenger.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
1050
1050
  __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${updatedTransactionMeta.id}:finished`, updatedTransactionMeta);
1051
1051
  }
1052
1052
  return updatedTransactionMeta;
@@ -1143,7 +1143,7 @@ class TransactionController extends base_controller_1.BaseController {
1143
1143
  networkClientId,
1144
1144
  };
1145
1145
  // Guaranteed as the default gas fee flow matches all transactions.
1146
- const gasFeeFlow = (0, gas_flow_1.getGasFeeFlow)(transactionMeta, __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"), this.messagingSystem);
1146
+ const gasFeeFlow = (0, gas_flow_1.getGasFeeFlow)(transactionMeta, __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"), this.messenger);
1147
1147
  const ethQuery = new eth_query_1.default(provider);
1148
1148
  const gasFeeControllerData = await __classPrivateFieldGet(this, _TransactionController_getGasFeeEstimates, "f").call(this, {
1149
1149
  networkClientId,
@@ -1151,7 +1151,7 @@ class TransactionController extends base_controller_1.BaseController {
1151
1151
  return gasFeeFlow.getGasFees({
1152
1152
  ethQuery,
1153
1153
  gasFeeControllerData,
1154
- messenger: this.messagingSystem,
1154
+ messenger: this.messenger,
1155
1155
  transactionMeta,
1156
1156
  });
1157
1157
  }
@@ -1171,7 +1171,7 @@ class TransactionController extends base_controller_1.BaseController {
1171
1171
  });
1172
1172
  return await (0, layer1_gas_fee_flow_1.getTransactionLayer1GasFee)({
1173
1173
  layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
1174
- messenger: this.messagingSystem,
1174
+ messenger: this.messenger,
1175
1175
  provider,
1176
1176
  transactionMeta: {
1177
1177
  txParams: transactionParams,
@@ -1303,6 +1303,50 @@ class TransactionController extends base_controller_1.BaseController {
1303
1303
  ];
1304
1304
  });
1305
1305
  }
1306
+ /**
1307
+ * Emulate a new transaction.
1308
+ *
1309
+ * @param transactionId - The transaction ID.
1310
+ */
1311
+ emulateNewTransaction(transactionId) {
1312
+ const transactionMeta = this.state.transactions.find((tx) => tx.id === transactionId);
1313
+ if (!transactionMeta) {
1314
+ return;
1315
+ }
1316
+ if (transactionMeta.type === types_1.TransactionType.swap) {
1317
+ this.messenger.publish('TransactionController:transactionNewSwap', {
1318
+ transactionMeta,
1319
+ });
1320
+ }
1321
+ else if (transactionMeta.type === types_1.TransactionType.swapApproval) {
1322
+ this.messenger.publish('TransactionController:transactionNewSwapApproval', { transactionMeta });
1323
+ }
1324
+ }
1325
+ /**
1326
+ * Emulate a transaction update.
1327
+ *
1328
+ * @param transactionMeta - Transaction metadata.
1329
+ */
1330
+ emulateTransactionUpdate(transactionMeta) {
1331
+ const updatedTransactionMeta = {
1332
+ ...transactionMeta,
1333
+ txParams: {
1334
+ ...transactionMeta.txParams,
1335
+ from: this.messenger.call('AccountsController:getSelectedAccount')
1336
+ .address,
1337
+ },
1338
+ };
1339
+ const transactionExists = this.state.transactions.some((tx) => tx.id === updatedTransactionMeta.id);
1340
+ if (!transactionExists) {
1341
+ this.update((state) => {
1342
+ state.transactions.push(updatedTransactionMeta);
1343
+ });
1344
+ }
1345
+ this.updateTransaction(updatedTransactionMeta, 'Generated from user operation');
1346
+ this.messenger.publish('TransactionController:transactionStatusUpdated', {
1347
+ transactionMeta: updatedTransactionMeta,
1348
+ });
1349
+ }
1306
1350
  }
1307
1351
  exports.TransactionController = TransactionController;
1308
1352
  _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_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, }) {
@@ -1361,11 +1405,11 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1361
1405
  newTransactionMeta.hash = hash;
1362
1406
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addMetadata).call(this, newTransactionMeta);
1363
1407
  // speedUpTransaction has no approval request, so we assume the user has already approved the transaction
1364
- this.messagingSystem.publish(`${controllerName}:transactionApproved`, {
1408
+ this.messenger.publish(`${controllerName}:transactionApproved`, {
1365
1409
  transactionMeta: newTransactionMeta,
1366
1410
  actionId,
1367
1411
  });
1368
- this.messagingSystem.publish(`${controllerName}:transactionSubmitted`, {
1412
+ this.messenger.publish(`${controllerName}:transactionSubmitted`, {
1369
1413
  transactionMeta: newTransactionMeta,
1370
1414
  actionId,
1371
1415
  });
@@ -1412,12 +1456,12 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1412
1456
  gasFeeFlows: __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"),
1413
1457
  getGasFeeEstimates: __classPrivateFieldGet(this, _TransactionController_getGasFeeEstimates, "f"),
1414
1458
  getSavedGasFees: __classPrivateFieldGet(this, _TransactionController_getSavedGasFees, "f").bind(this),
1415
- messenger: this.messagingSystem,
1459
+ messenger: this.messenger,
1416
1460
  txMeta: transactionMeta,
1417
1461
  }));
1418
1462
  await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Layer 1 Gas Fees', parentContext: traceContext }, async () => await (0, layer1_gas_fee_flow_1.updateTransactionLayer1GasFee)({
1419
1463
  layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
1420
- messenger: this.messagingSystem,
1464
+ messenger: this.messenger,
1421
1465
  provider,
1422
1466
  transactionMeta,
1423
1467
  }));
@@ -1462,7 +1506,7 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1462
1506
  resultCallbacks.success();
1463
1507
  }
1464
1508
  const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
1465
- this.messagingSystem.publish(`${controllerName}:transactionApproved`, {
1509
+ this.messenger.publish(`${controllerName}:transactionApproved`, {
1466
1510
  transactionMeta: updatedTransactionMeta,
1467
1511
  actionId,
1468
1512
  });
@@ -1550,7 +1594,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1550
1594
  const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_signTransaction).call(this, transactionMeta));
1551
1595
  if (!(await __classPrivateFieldGet(this, _TransactionController_beforePublish, "f").call(this, transactionMeta))) {
1552
1596
  (0, logger_1.projectLogger)('Skipping publishing transaction based on hook');
1553
- this.messagingSystem.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
1597
+ this.messenger.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
1554
1598
  return ApprovalState.SkippedViaBeforePublishHook;
1555
1599
  }
1556
1600
  if (!rawTx && !transactionMeta.isExternalSign) {
@@ -1596,10 +1640,10 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1596
1640
  (0, logger_1.projectLogger)('Updated pre-transaction balance', preTxBalance);
1597
1641
  }
1598
1642
  });
1599
- this.messagingSystem.publish(`${controllerName}:transactionSubmitted`, {
1643
+ this.messenger.publish(`${controllerName}:transactionSubmitted`, {
1600
1644
  transactionMeta,
1601
1645
  });
1602
- this.messagingSystem.publish(`${controllerName}:transactionFinished`, transactionMeta);
1646
+ this.messenger.publish(`${controllerName}:transactionFinished`, transactionMeta);
1603
1647
  __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionId}:finished`, transactionMeta);
1604
1648
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMeta);
1605
1649
  return ApprovalState.Approved;
@@ -1633,9 +1677,9 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1633
1677
  status: types_1.TransactionStatus.rejected,
1634
1678
  error: (0, utils_2.normalizeTxError)(error ?? rpc_errors_1.providerErrors.userRejectedRequest()),
1635
1679
  };
1636
- this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
1680
+ this.messenger.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
1637
1681
  __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, updatedTransactionMeta);
1638
- this.messagingSystem.publish(`${controllerName}:transactionRejected`, {
1682
+ this.messenger.publish(`${controllerName}:transactionRejected`, {
1639
1683
  transactionMeta: updatedTransactionMeta,
1640
1684
  actionId,
1641
1685
  });
@@ -1682,7 +1726,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1682
1726
  id,
1683
1727
  parentContext: traceContext,
1684
1728
  });
1685
- return (await this.messagingSystem.call('ApprovalController:addRequest', {
1729
+ return (await this.messenger.call('ApprovalController:addRequest', {
1686
1730
  id,
1687
1731
  origin: origin || controller_utils_1.ORIGIN_METAMASK,
1688
1732
  type,
@@ -1753,7 +1797,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1753
1797
  ]);
1754
1798
  (0, logger_1.projectLogger)('Added incoming transactions to state', finalTransactions.length, finalTransactions);
1755
1799
  });
1756
- this.messagingSystem.publish(`${controllerName}:incomingTransactionsReceived`, finalTransactions);
1800
+ this.messenger.publish(`${controllerName}:incomingTransactionsReceived`, finalTransactions);
1757
1801
  }, _TransactionController_generateDappSuggestedGasFees = function _TransactionController_generateDappSuggestedGasFees(txParams, origin) {
1758
1802
  if (!origin || origin === controller_utils_1.ORIGIN_METAMASK) {
1759
1803
  return undefined;
@@ -1835,7 +1879,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1835
1879
  ...transactionMeta,
1836
1880
  status: types_1.TransactionStatus.dropped,
1837
1881
  };
1838
- this.messagingSystem.publish(`${controllerName}:transactionDropped`, {
1882
+ this.messenger.publish(`${controllerName}:transactionDropped`, {
1839
1883
  transactionMeta: updatedTransactionMeta,
1840
1884
  });
1841
1885
  this.updateTransaction(updatedTransactionMeta, 'TransactionController#setTransactionStatusDropped - Transaction dropped');
@@ -1871,7 +1915,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1871
1915
  const { authorizationList, from } = txParams;
1872
1916
  const signedAuthorizationList = await (0, eip7702_1.signAuthorizationList)({
1873
1917
  authorizationList,
1874
- messenger: this.messagingSystem,
1918
+ messenger: this.messenger,
1875
1919
  transactionMeta,
1876
1920
  });
1877
1921
  if (signedAuthorizationList) {
@@ -1919,7 +1963,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1919
1963
  this.updateTransaction(transactionMetaWithRawTx, 'TransactionController#approveTransaction - RawTransaction added');
1920
1964
  return rawTx;
1921
1965
  }, _TransactionController_onTransactionStatusChange = function _TransactionController_onTransactionStatusChange(transactionMeta) {
1922
- this.messagingSystem.publish(`${controllerName}:transactionStatusUpdated`, {
1966
+ this.messenger.publish(`${controllerName}:transactionStatusUpdated`, {
1923
1967
  transactionMeta,
1924
1968
  });
1925
1969
  }, _TransactionController_getNonceTrackerTransactions = function _TransactionController_getNonceTrackerTransactions(statuses, address, chainId) {
@@ -1927,7 +1971,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1927
1971
  }, _TransactionController_onConfirmedTransaction = function _TransactionController_onConfirmedTransaction(transactionMeta) {
1928
1972
  (0, logger_1.projectLogger)('Processing confirmed transaction', transactionMeta.id);
1929
1973
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_markNonceDuplicatesDropped).call(this, transactionMeta.id);
1930
- this.messagingSystem.publish(`${controllerName}:transactionConfirmed`, transactionMeta);
1974
+ this.messenger.publish(`${controllerName}:transactionConfirmed`, transactionMeta);
1931
1975
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMeta);
1932
1976
  // Intentional given potential duration of process.
1933
1977
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updatePostBalance).call(this, transactionMeta).catch((error) => {
@@ -1946,7 +1990,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1946
1990
  getTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).bind(this),
1947
1991
  updateTransaction: this.updateTransaction.bind(this),
1948
1992
  });
1949
- this.messagingSystem.publish(`${controllerName}:postTransactionBalanceUpdated`, {
1993
+ this.messenger.publish(`${controllerName}:postTransactionBalanceUpdated`, {
1950
1994
  transactionMeta: updatedTransactionMeta,
1951
1995
  approvalTransactionMeta,
1952
1996
  });
@@ -1977,7 +2021,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1977
2021
  getGlobalLock: () => __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").acquireNonceLockForChainIdKey({
1978
2022
  chainId,
1979
2023
  }),
1980
- messenger: this.messagingSystem,
2024
+ messenger: this.messenger,
1981
2025
  publishTransaction: (_ethQuery, transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, _ethQuery, transactionMeta, {
1982
2026
  skipSubmitHistory: true,
1983
2027
  }),
@@ -2107,7 +2151,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2107
2151
  chainId,
2108
2152
  getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
2109
2153
  isEIP7702GasFeeTokensEnabled: __classPrivateFieldGet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, "f"),
2110
- messenger: this.messagingSystem,
2154
+ messenger: this.messenger,
2111
2155
  publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
2112
2156
  transactionMeta,
2113
2157
  });
@@ -2159,9 +2203,9 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2159
2203
  state.transactionBatches[index] = updated ?? batch;
2160
2204
  });
2161
2205
  }, _TransactionController_getSelectedAccount = function _TransactionController_getSelectedAccount() {
2162
- return this.messagingSystem.call('AccountsController:getSelectedAccount');
2206
+ return this.messenger.call('AccountsController:getSelectedAccount');
2163
2207
  }, _TransactionController_getInternalAccounts = function _TransactionController_getInternalAccounts() {
2164
- const state = this.messagingSystem.call('AccountsController:getState');
2208
+ const state = this.messenger.call('AccountsController:getState');
2165
2209
  return Object.values(state.internalAccounts?.accounts ?? {})
2166
2210
  .filter((account) => account.type === 'eip155:eoa')
2167
2211
  .map((account) => account.address);
@@ -2201,18 +2245,20 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2201
2245
  isCustomNetwork,
2202
2246
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
2203
2247
  getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
2204
- messenger: this.messagingSystem,
2248
+ messenger: this.messenger,
2205
2249
  txMeta: transactionMeta,
2206
2250
  });
2207
2251
  }, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
2208
- this.messagingSystem.registerActionHandler(`${controllerName}:addTransaction`, this.addTransaction.bind(this));
2209
- this.messagingSystem.registerActionHandler(`${controllerName}:addTransactionBatch`, this.addTransactionBatch.bind(this));
2210
- this.messagingSystem.registerActionHandler(`${controllerName}:confirmExternalTransaction`, this.confirmExternalTransaction.bind(this));
2211
- this.messagingSystem.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
2212
- this.messagingSystem.registerActionHandler(`${controllerName}:getNonceLock`, this.getNonceLock.bind(this));
2213
- this.messagingSystem.registerActionHandler(`${controllerName}:getTransactions`, this.getTransactions.bind(this));
2214
- this.messagingSystem.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
2215
- this.messagingSystem.registerActionHandler(`${controllerName}:updateTransaction`, this.updateTransaction.bind(this));
2252
+ this.messenger.registerActionHandler(`${controllerName}:addTransaction`, this.addTransaction.bind(this));
2253
+ this.messenger.registerActionHandler(`${controllerName}:addTransactionBatch`, this.addTransactionBatch.bind(this));
2254
+ this.messenger.registerActionHandler(`${controllerName}:confirmExternalTransaction`, this.confirmExternalTransaction.bind(this));
2255
+ this.messenger.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
2256
+ this.messenger.registerActionHandler(`${controllerName}:getNonceLock`, this.getNonceLock.bind(this));
2257
+ this.messenger.registerActionHandler(`${controllerName}:getTransactions`, this.getTransactions.bind(this));
2258
+ this.messenger.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
2259
+ this.messenger.registerActionHandler(`${controllerName}:updateTransaction`, this.updateTransaction.bind(this));
2260
+ this.messenger.registerActionHandler(`${controllerName}:emulateNewTransaction`, this.emulateNewTransaction.bind(this));
2261
+ this.messenger.registerActionHandler(`${controllerName}:emulateTransactionUpdate`, this.emulateTransactionUpdate.bind(this));
2216
2262
  }, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
2217
2263
  this.update((state) => {
2218
2264
  const transactions = state.transactions.filter(({ id }) => id !== transactionId);
@@ -2252,13 +2298,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2252
2298
  error: (0, utils_2.normalizeTxError)(error),
2253
2299
  };
2254
2300
  }
2255
- this.messagingSystem.publish(`${controllerName}:transactionFailed`, {
2301
+ this.messenger.publish(`${controllerName}:transactionFailed`, {
2256
2302
  actionId,
2257
2303
  error: error.message,
2258
2304
  transactionMeta: newTransactionMeta,
2259
2305
  });
2260
2306
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, newTransactionMeta);
2261
- this.messagingSystem.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
2307
+ this.messenger.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
2262
2308
  __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, newTransactionMeta);
2263
2309
  }, _TransactionController_runAfterSimulateHook = async function _TransactionController_runAfterSimulateHook(transactionMeta) {
2264
2310
  (0, logger_1.projectLogger)('Calling afterSimulate hook', transactionMeta);