@metamask-previews/transaction-controller 50.0.0-preview-86cafc23 → 51.0.0-preview-29fe07c

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 (74) hide show
  1. package/CHANGELOG.md +22 -1
  2. package/dist/TransactionController.cjs +18 -18
  3. package/dist/TransactionController.cjs.map +1 -1
  4. package/dist/TransactionController.d.cts +3 -3
  5. package/dist/TransactionController.d.cts.map +1 -1
  6. package/dist/TransactionController.d.mts +3 -3
  7. package/dist/TransactionController.d.mts.map +1 -1
  8. package/dist/TransactionController.mjs +18 -18
  9. package/dist/TransactionController.mjs.map +1 -1
  10. package/dist/gas-flows/DefaultGasFeeFlow.cjs +0 -1
  11. package/dist/gas-flows/DefaultGasFeeFlow.cjs.map +1 -1
  12. package/dist/gas-flows/DefaultGasFeeFlow.mjs +0 -1
  13. package/dist/gas-flows/DefaultGasFeeFlow.mjs.map +1 -1
  14. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.cjs +162 -0
  15. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.cjs.map +1 -0
  16. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.d.cts +11 -0
  17. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.d.cts.map +1 -0
  18. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.d.mts +11 -0
  19. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.d.mts.map +1 -0
  20. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.mjs +158 -0
  21. package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.mjs.map +1 -0
  22. package/dist/helpers/AccountsApiRemoteTransactionSource.cjs +3 -8
  23. package/dist/helpers/AccountsApiRemoteTransactionSource.cjs.map +1 -1
  24. package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts.map +1 -1
  25. package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts.map +1 -1
  26. package/dist/helpers/AccountsApiRemoteTransactionSource.mjs +3 -8
  27. package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +1 -1
  28. package/dist/helpers/GasFeePoller.cjs +10 -4
  29. package/dist/helpers/GasFeePoller.cjs.map +1 -1
  30. package/dist/helpers/GasFeePoller.d.cts +4 -1
  31. package/dist/helpers/GasFeePoller.d.cts.map +1 -1
  32. package/dist/helpers/GasFeePoller.d.mts +4 -1
  33. package/dist/helpers/GasFeePoller.d.mts.map +1 -1
  34. package/dist/helpers/GasFeePoller.mjs +10 -4
  35. package/dist/helpers/GasFeePoller.mjs.map +1 -1
  36. package/dist/helpers/IncomingTransactionHelper.cjs +4 -12
  37. package/dist/helpers/IncomingTransactionHelper.cjs.map +1 -1
  38. package/dist/helpers/IncomingTransactionHelper.d.cts +1 -3
  39. package/dist/helpers/IncomingTransactionHelper.d.cts.map +1 -1
  40. package/dist/helpers/IncomingTransactionHelper.d.mts +1 -3
  41. package/dist/helpers/IncomingTransactionHelper.d.mts.map +1 -1
  42. package/dist/helpers/IncomingTransactionHelper.mjs +4 -12
  43. package/dist/helpers/IncomingTransactionHelper.mjs.map +1 -1
  44. package/dist/types.cjs.map +1 -1
  45. package/dist/types.d.cts +4 -5
  46. package/dist/types.d.cts.map +1 -1
  47. package/dist/types.d.mts +4 -5
  48. package/dist/types.d.mts.map +1 -1
  49. package/dist/types.mjs.map +1 -1
  50. package/dist/utils/feature-flags.cjs +3 -1
  51. package/dist/utils/feature-flags.cjs.map +1 -1
  52. package/dist/utils/feature-flags.d.cts +16 -0
  53. package/dist/utils/feature-flags.d.cts.map +1 -1
  54. package/dist/utils/feature-flags.d.mts +16 -0
  55. package/dist/utils/feature-flags.d.mts.map +1 -1
  56. package/dist/utils/feature-flags.mjs +2 -1
  57. package/dist/utils/feature-flags.mjs.map +1 -1
  58. package/dist/utils/gas-fees.cjs +3 -2
  59. package/dist/utils/gas-fees.cjs.map +1 -1
  60. package/dist/utils/gas-fees.d.cts +2 -0
  61. package/dist/utils/gas-fees.d.cts.map +1 -1
  62. package/dist/utils/gas-fees.d.mts +2 -0
  63. package/dist/utils/gas-fees.d.mts.map +1 -1
  64. package/dist/utils/gas-fees.mjs +3 -2
  65. package/dist/utils/gas-fees.mjs.map +1 -1
  66. package/dist/utils/gas-flow.cjs +3 -2
  67. package/dist/utils/gas-flow.cjs.map +1 -1
  68. package/dist/utils/gas-flow.d.cts +3 -1
  69. package/dist/utils/gas-flow.d.cts.map +1 -1
  70. package/dist/utils/gas-flow.d.mts +3 -1
  71. package/dist/utils/gas-flow.d.mts.map +1 -1
  72. package/dist/utils/gas-flow.mjs +3 -2
  73. package/dist/utils/gas-flow.mjs.map +1 -1
  74. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -7,6 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Added
11
+
12
+ - Adds `RandomisedEstimationsGasFeeFlow` to gas fee flows in `TransactionController` ([#5511](https://github.com/MetaMask/core/pull/5511))
13
+ - Added flow only will be activated if chainId is defined in feature flags.
14
+
15
+ ### Changed
16
+
17
+ - **BREAKING:** Remove `chainIds` argument from incoming transaction methods ([#5436](https://github.com/MetaMask/core/pull/5436))
18
+ - `startIncomingTransactionPolling`
19
+ - `stopIncomingTransactionPolling`
20
+ - `updateIncomingTransactions`
21
+
22
+ ## [51.0.0]
23
+
24
+ ### Changed
25
+
26
+ - **BREAKING:** Bump peer dependency `@metamask/accounts-controller` to `^27.0.0` ([#5507](https://github.com/MetaMask/core/pull/5507))
27
+ - **BREAKING:** Bump peer dependency `@metamask/gas-fee-controller` to `^23.0.0` ([#5507](https://github.com/MetaMask/core/pull/5507))
28
+ - **BREAKING:** Bump peer dependency `@metamask/network-controller` to `^23.0.0` ([#5507](https://github.com/MetaMask/core/pull/5507))
29
+
10
30
  ## [50.0.0]
11
31
 
12
32
  ### Added
@@ -1380,7 +1400,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1380
1400
 
1381
1401
  All changes listed after this point were applied to this package following the monorepo conversion.
1382
1402
 
1383
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@50.0.0...HEAD
1403
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@51.0.0...HEAD
1404
+ [51.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@50.0.0...@metamask/transaction-controller@51.0.0
1384
1405
  [50.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@49.0.0...@metamask/transaction-controller@50.0.0
1385
1406
  [49.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.2.0...@metamask/transaction-controller@49.0.0
1386
1407
  [48.2.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.1.0...@metamask/transaction-controller@48.2.0
@@ -13,7 +13,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
13
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
- var _TransactionController_instances, _TransactionController_internalEvents, _TransactionController_methodDataHelper, _TransactionController_incomingTransactionChainIds, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_rejectTransaction, _TransactionController_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateFirstTimeInteraction, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow;
16
+ var _TransactionController_instances, _TransactionController_internalEvents, _TransactionController_methodDataHelper, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_rejectTransaction, _TransactionController_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateFirstTimeInteraction, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.TransactionController = exports.ApprovalState = exports.SPEED_UP_RATE = exports.CANCEL_RATE = void 0;
19
19
  const base_controller_1 = require("@metamask/base-controller");
@@ -33,6 +33,7 @@ const accounts_api_1 = require("./api/accounts-api.cjs");
33
33
  const DefaultGasFeeFlow_1 = require("./gas-flows/DefaultGasFeeFlow.cjs");
34
34
  const LineaGasFeeFlow_1 = require("./gas-flows/LineaGasFeeFlow.cjs");
35
35
  const OptimismLayer1GasFeeFlow_1 = require("./gas-flows/OptimismLayer1GasFeeFlow.cjs");
36
+ const RandomisedEstimationsGasFeeFlow_1 = require("./gas-flows/RandomisedEstimationsGasFeeFlow.cjs");
36
37
  const ScrollLayer1GasFeeFlow_1 = require("./gas-flows/ScrollLayer1GasFeeFlow.cjs");
37
38
  const TestGasFeeFlow_1 = require("./gas-flows/TestGasFeeFlow.cjs");
38
39
  const AccountsApiRemoteTransactionSource_1 = require("./helpers/AccountsApiRemoteTransactionSource.cjs");
@@ -47,6 +48,7 @@ const types_1 = require("./types.cjs");
47
48
  const batch_1 = require("./utils/batch.cjs");
48
49
  const eip7702_1 = require("./utils/eip7702.cjs");
49
50
  const external_transactions_1 = require("./utils/external-transactions.cjs");
51
+ const feature_flags_1 = require("./utils/feature-flags.cjs");
50
52
  const gas_1 = require("./utils/gas.cjs");
51
53
  const gas_fees_1 = require("./utils/gas-fees.cjs");
52
54
  const gas_flow_1 = require("./utils/gas-flow.cjs");
@@ -171,7 +173,6 @@ class TransactionController extends base_controller_1.BaseController {
171
173
  this.approvingTransactionIds = new Set();
172
174
  _TransactionController_methodDataHelper.set(this, void 0);
173
175
  this.mutex = new async_mutex_1.Mutex();
174
- _TransactionController_incomingTransactionChainIds.set(this, new Set());
175
176
  _TransactionController_incomingTransactionHelper.set(this, void 0);
176
177
  _TransactionController_incomingTransactionOptions.set(this, void 0);
177
178
  _TransactionController_pendingTransactionOptions.set(this, void 0);
@@ -247,6 +248,7 @@ class TransactionController extends base_controller_1.BaseController {
247
248
  getProvider: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getProvider).call(this, { networkClientId }),
248
249
  getTransactions: () => this.state.transactions,
249
250
  layer1GasFeeFlows: this.layer1GasFeeFlows,
251
+ messenger: this.messagingSystem,
250
252
  onStateChange: (listener) => {
251
253
  this.messagingSystem.subscribe('TransactionController:stateChange', listener);
252
254
  },
@@ -268,7 +270,6 @@ class TransactionController extends base_controller_1.BaseController {
268
270
  };
269
271
  __classPrivateFieldSet(this, _TransactionController_incomingTransactionHelper, new IncomingTransactionHelper_1.IncomingTransactionHelper({
270
272
  getCache: () => this.state.lastFetchedBlockNumbers,
271
- getChainIds: () => [...__classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f")],
272
273
  getCurrentAccount: () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSelectedAccount).call(this),
273
274
  getLocalTransactions: () => this.state.transactions,
274
275
  includeTokenTransfers: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").includeTokenTransfers,
@@ -478,21 +479,13 @@ class TransactionController extends base_controller_1.BaseController {
478
479
  transactionMeta: addedTransactionMeta,
479
480
  };
480
481
  }
481
- startIncomingTransactionPolling(chainIds) {
482
- chainIds.forEach((chainId) => __classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").add(chainId));
482
+ startIncomingTransactionPolling() {
483
483
  __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").start();
484
484
  }
485
- stopIncomingTransactionPolling(chainIds) {
486
- chainIds?.forEach((chainId) => __classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").delete(chainId));
487
- if (!chainIds) {
488
- __classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").clear();
489
- }
490
- if (__classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").size === 0) {
491
- __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").stop();
492
- }
485
+ stopIncomingTransactionPolling() {
486
+ __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").stop();
493
487
  }
494
- async updateIncomingTransactions(chainIds) {
495
- chainIds.forEach((chainId) => __classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").add(chainId));
488
+ async updateIncomingTransactions() {
496
489
  await __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").update();
497
490
  }
498
491
  /**
@@ -1031,19 +1024,21 @@ class TransactionController extends base_controller_1.BaseController {
1031
1024
  chainId,
1032
1025
  networkClientId: requestNetworkClientId,
1033
1026
  });
1027
+ const featureFlags = (0, feature_flags_1.getFeatureFlags)(this.messagingSystem);
1034
1028
  const transactionMeta = {
1035
1029
  txParams: transactionParams,
1036
1030
  chainId,
1037
1031
  networkClientId,
1038
1032
  };
1039
1033
  // Guaranteed as the default gas fee flow matches all transactions.
1040
- const gasFeeFlow = (0, gas_flow_1.getGasFeeFlow)(transactionMeta, this.gasFeeFlows);
1034
+ const gasFeeFlow = (0, gas_flow_1.getGasFeeFlow)(transactionMeta, this.gasFeeFlows, featureFlags);
1041
1035
  const ethQuery = new eth_query_1.default(provider);
1042
1036
  const gasFeeControllerData = await this.getGasFeeEstimates({
1043
1037
  networkClientId,
1044
1038
  });
1045
1039
  return gasFeeFlow.getGasFees({
1046
1040
  ethQuery,
1041
+ featureFlags,
1047
1042
  gasFeeControllerData,
1048
1043
  transactionMeta,
1049
1044
  });
@@ -1187,6 +1182,7 @@ class TransactionController extends base_controller_1.BaseController {
1187
1182
  await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Gas Fees', parentContext: traceContext }, async () => await (0, gas_fees_1.updateGasFees)({
1188
1183
  eip1559: isEIP1559Compatible,
1189
1184
  ethQuery,
1185
+ featureFlags: (0, feature_flags_1.getFeatureFlags)(this.messagingSystem),
1190
1186
  gasFeeFlows: this.gasFeeFlows,
1191
1187
  getGasFeeEstimates: this.getGasFeeEstimates,
1192
1188
  getSavedGasFees: this.getSavedGasFees.bind(this),
@@ -1769,7 +1765,7 @@ class TransactionController extends base_controller_1.BaseController {
1769
1765
  }
1770
1766
  }
1771
1767
  exports.TransactionController = TransactionController;
1772
- _TransactionController_internalEvents = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_incomingTransactionChainIds = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_publicKeyEIP7702 = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_multichainTrackingHelper = 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, }) {
1768
+ _TransactionController_internalEvents = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_publicKeyEIP7702 = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_multichainTrackingHelper = 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, }) {
1773
1769
  // If transaction is found for same action id, do not create a new transaction.
1774
1770
  if (this.getTransactionWithActionId(actionId)) {
1775
1771
  return;
@@ -1923,7 +1919,11 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
1923
1919
  if (__classPrivateFieldGet(this, _TransactionController_testGasFeeFlows, "f")) {
1924
1920
  return [new TestGasFeeFlow_1.TestGasFeeFlow()];
1925
1921
  }
1926
- return [new LineaGasFeeFlow_1.LineaGasFeeFlow(), new DefaultGasFeeFlow_1.DefaultGasFeeFlow()];
1922
+ return [
1923
+ new RandomisedEstimationsGasFeeFlow_1.RandomisedEstimationsGasFeeFlow(),
1924
+ new LineaGasFeeFlow_1.LineaGasFeeFlow(),
1925
+ new DefaultGasFeeFlow_1.DefaultGasFeeFlow(),
1926
+ ];
1927
1927
  }, _TransactionController_getLayer1GasFeeFlows = function _TransactionController_getLayer1GasFeeFlows() {
1928
1928
  return [new OptimismLayer1GasFeeFlow_1.OptimismLayer1GasFeeFlow(), new ScrollLayer1GasFeeFlow_1.ScrollLayer1GasFeeFlow()];
1929
1929
  }, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, note, skipHistory, skipValidation, skipResimulateCheck, }, callback) {