@metamask-previews/transaction-controller 43.0.0-preview-009eef6b → 43.0.0-preview-bd04b248

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 (36) hide show
  1. package/CHANGELOG.md +5 -5
  2. package/dist/TransactionController.cjs +27 -3
  3. package/dist/TransactionController.cjs.map +1 -1
  4. package/dist/TransactionController.d.cts +6 -0
  5. package/dist/TransactionController.d.cts.map +1 -1
  6. package/dist/TransactionController.d.mts +6 -0
  7. package/dist/TransactionController.d.mts.map +1 -1
  8. package/dist/TransactionController.mjs +25 -1
  9. package/dist/TransactionController.mjs.map +1 -1
  10. package/dist/helpers/MethodDataHelper.cjs +22 -94
  11. package/dist/helpers/MethodDataHelper.cjs.map +1 -1
  12. package/dist/helpers/MethodDataHelper.d.cts +3 -2
  13. package/dist/helpers/MethodDataHelper.d.cts.map +1 -1
  14. package/dist/helpers/MethodDataHelper.d.mts +3 -2
  15. package/dist/helpers/MethodDataHelper.d.mts.map +1 -1
  16. package/dist/helpers/MethodDataHelper.mjs +22 -94
  17. package/dist/helpers/MethodDataHelper.mjs.map +1 -1
  18. package/dist/{utils/resimulate.cjs → helpers/ResimulateHelper.cjs} +99 -4
  19. package/dist/helpers/ResimulateHelper.cjs.map +1 -0
  20. package/dist/{utils/resimulate.d.cts → helpers/ResimulateHelper.d.cts} +13 -1
  21. package/dist/helpers/ResimulateHelper.d.cts.map +1 -0
  22. package/dist/{utils/resimulate.d.mts → helpers/ResimulateHelper.d.mts} +13 -1
  23. package/dist/helpers/ResimulateHelper.d.mts.map +1 -0
  24. package/dist/{utils/resimulate.mjs → helpers/ResimulateHelper.mjs} +99 -5
  25. package/dist/helpers/ResimulateHelper.mjs.map +1 -0
  26. package/dist/types.cjs.map +1 -1
  27. package/dist/types.d.cts +4 -0
  28. package/dist/types.d.cts.map +1 -1
  29. package/dist/types.d.mts +4 -0
  30. package/dist/types.d.mts.map +1 -1
  31. package/dist/types.mjs.map +1 -1
  32. package/package.json +2 -1
  33. package/dist/utils/resimulate.cjs.map +0 -1
  34. package/dist/utils/resimulate.d.cts.map +0 -1
  35. package/dist/utils/resimulate.d.mts.map +0 -1
  36. package/dist/utils/resimulate.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,12 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- ### Changed
10
+ ### Added
11
11
 
12
- - Replaced `eth-method-registry` dependency with `@ethersproject/abi` for ABI method lookups ([#5203](https://github.com/MetaMask/core/pull/5203))
13
- - The `MethodDataHelper` class now uses ethers.js `Interface` class to parse and lookup method signatures
14
- - Method data is now derived directly from the ABI interface
15
- - The structure of returned method data remains compatible with previous implementation
12
+ - Adds ability of re-simulating transaction depending on the `isFocused` property on `transactionMeta` ([#5189](https://github.com/MetaMask/core/pull/5189))
13
+ - `isFocused` property is expected to set by client.
14
+ - Re-simulation of transactions will occur every 3 seconds if `isFocused` is `true`.
15
+ - Adds `updateTransactionFocus` function to update the `isFocused` property on `transactionMeta`. ([#5189](https://github.com/MetaMask/core/pull/5189))
16
16
 
17
17
  ## [43.0.0]
18
18
 
@@ -44,6 +44,7 @@ const IncomingTransactionHelper_1 = require("./helpers/IncomingTransactionHelper
44
44
  const MethodDataHelper_1 = require("./helpers/MethodDataHelper.cjs");
45
45
  const MultichainTrackingHelper_1 = require("./helpers/MultichainTrackingHelper.cjs");
46
46
  const PendingTransactionTracker_1 = require("./helpers/PendingTransactionTracker.cjs");
47
+ const ResimulateHelper_1 = require("./helpers/ResimulateHelper.cjs");
47
48
  const logger_1 = require("./logger.cjs");
48
49
  const types_1 = require("./types.cjs");
49
50
  const external_transactions_1 = require("./utils/external-transactions.cjs");
@@ -53,7 +54,6 @@ const gas_flow_1 = require("./utils/gas-flow.cjs");
53
54
  const history_1 = require("./utils/history.cjs");
54
55
  const layer1_gas_fee_flow_1 = require("./utils/layer1-gas-fee-flow.cjs");
55
56
  const nonce_1 = require("./utils/nonce.cjs");
56
- const resimulate_1 = require("./utils/resimulate.cjs");
57
57
  const retry_1 = require("./utils/retry.cjs");
58
58
  const simulation_1 = require("./utils/simulation.cjs");
59
59
  const swaps_1 = require("./utils/swaps.cjs");
@@ -274,6 +274,7 @@ class TransactionController extends base_controller_1.BaseController {
274
274
  });
275
275
  gasFeePoller.hub.on('transaction-updated', __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onGasFeePollerTransactionUpdate).bind(this));
276
276
  __classPrivateFieldSet(this, _TransactionController_methodDataHelper, new MethodDataHelper_1.MethodDataHelper({
277
+ getProvider: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getProvider).call(this, { networkClientId }),
277
278
  getState: () => this.state.methodData,
278
279
  }), "f");
279
280
  __classPrivateFieldGet(this, _TransactionController_methodDataHelper, "f").hub.on('update', ({ fourBytePrefix, methodData }) => {
@@ -303,6 +304,13 @@ class TransactionController extends base_controller_1.BaseController {
303
304
  // when transactionsController state changes
304
305
  // check for pending transactions and start polling if there are any
305
306
  this.messagingSystem.subscribe('TransactionController:stateChange', __classPrivateFieldGet(this, _TransactionController_checkForPendingTransactionAndStartPolling, "f"));
307
+ new ResimulateHelper_1.ResimulateHelper({
308
+ updateSimulationData: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).bind(this),
309
+ onStateChange: (listener) => {
310
+ this.messagingSystem.subscribe('TransactionController:stateChange', listener);
311
+ },
312
+ getTransactions: () => this.state.transactions,
313
+ });
306
314
  this.onBootCleanup();
307
315
  __classPrivateFieldGet(this, _TransactionController_checkForPendingTransactionAndStartPolling, "f").call(this);
308
316
  }
@@ -788,6 +796,22 @@ class TransactionController extends base_controller_1.BaseController {
788
796
  this.updateTransaction(updatedTransaction, `Update Editable Params for ${txId}`);
789
797
  return this.getTransaction(txId);
790
798
  }
799
+ /**
800
+ * Update the isFocus state of a transaction.
801
+ * @param transactionId - The ID of the transaction to update.
802
+ * @param isFocused - The new focus state.
803
+ */
804
+ updateTransactionFocus(transactionId, isFocused) {
805
+ const transactionMeta = this.getTransaction(transactionId);
806
+ if (!transactionMeta) {
807
+ throw new Error(`Transaction with id ${transactionId} not found`);
808
+ }
809
+ const updatedTransactionMeta = {
810
+ ...transactionMeta,
811
+ isFocused,
812
+ };
813
+ this.updateTransaction(updatedTransactionMeta, 'TransactionController#updateTransactionFocus - Transaction focus updated');
814
+ }
791
815
  /**
792
816
  * Signs and returns the raw transaction data for provided transaction params list.
793
817
  *
@@ -1868,7 +1892,7 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
1868
1892
  (0, validation_1.validateTxParams)(transactionMeta.txParams);
1869
1893
  }
1870
1894
  if (!skipResimulateCheck && __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this)) {
1871
- resimulateResponse = (0, resimulate_1.shouldResimulate)(originalTransactionMeta, transactionMeta);
1895
+ resimulateResponse = (0, ResimulateHelper_1.shouldResimulate)(originalTransactionMeta, transactionMeta);
1872
1896
  }
1873
1897
  const shouldSkipHistory = this.isHistoryDisabled || skipHistory;
1874
1898
  if (!shouldSkipHistory) {
@@ -1950,7 +1974,7 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
1950
1974
  }));
1951
1975
  if (blockTime &&
1952
1976
  prevSimulationData &&
1953
- (0, resimulate_1.hasSimulationDataChanged)(prevSimulationData, simulationData)) {
1977
+ (0, ResimulateHelper_1.hasSimulationDataChanged)(prevSimulationData, simulationData)) {
1954
1978
  simulationData = {
1955
1979
  ...simulationData,
1956
1980
  isUpdatedAfterSecurityCheck: true,