@metamask/transaction-controller 60.9.0 → 60.10.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,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [60.10.0]
11
+
12
+ ### Added
13
+
14
+ - Add actions `TransactionController:emulateNewTransaction` and `TransactionController:emulateTransactionUpdate` ([#6935](https://github.com/MetaMask/core/pull/6935))
15
+
16
+ ### Changed
17
+
18
+ - Bump `@metamask/base-controller` from `^8.4.1` to `^8.4.2` ([#6917](https://github.com/MetaMask/core/pull/6917))
19
+
20
+ ### Fixed
21
+
22
+ - Prevent race condition causing excessive incoming transaction polling ([#6913](https://github.com/MetaMask/core/pull/6913))
23
+
10
24
  ## [60.9.0]
11
25
 
12
26
  ### Added
@@ -1877,7 +1891,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1877
1891
 
1878
1892
  All changes listed after this point were applied to this package following the monorepo conversion.
1879
1893
 
1880
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.9.0...HEAD
1894
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.10.0...HEAD
1895
+ [60.10.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.9.0...@metamask/transaction-controller@60.10.0
1881
1896
  [60.9.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.8.0...@metamask/transaction-controller@60.9.0
1882
1897
  [60.8.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.7.0...@metamask/transaction-controller@60.8.0
1883
1898
  [60.7.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.6.1...@metamask/transaction-controller@60.7.0
@@ -1303,6 +1303,48 @@ 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.messagingSystem.publish('TransactionController:transactionNewSwap', {
1318
+ transactionMeta,
1319
+ });
1320
+ }
1321
+ else if (transactionMeta.type === types_1.TransactionType.swapApproval) {
1322
+ this.messagingSystem.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.messagingSystem.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.messagingSystem.publish('TransactionController:transactionStatusUpdated', { transactionMeta: updatedTransactionMeta });
1347
+ }
1306
1348
  }
1307
1349
  exports.TransactionController = TransactionController;
1308
1350
  _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, }) {
@@ -2213,6 +2255,8 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2213
2255
  this.messagingSystem.registerActionHandler(`${controllerName}:getTransactions`, this.getTransactions.bind(this));
2214
2256
  this.messagingSystem.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
2215
2257
  this.messagingSystem.registerActionHandler(`${controllerName}:updateTransaction`, this.updateTransaction.bind(this));
2258
+ this.messagingSystem.registerActionHandler(`${controllerName}:emulateNewTransaction`, this.emulateNewTransaction.bind(this));
2259
+ this.messagingSystem.registerActionHandler(`${controllerName}:emulateTransactionUpdate`, this.emulateTransactionUpdate.bind(this));
2216
2260
  }, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
2217
2261
  this.update((state) => {
2218
2262
  const transactions = state.transactions.filter(({ id }) => id !== transactionId);