@metamask-previews/transaction-controller 39.1.0-preview-608079df → 40.0.0-preview-e6722625

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 (40) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/dist/TransactionController.cjs +6 -58
  3. package/dist/TransactionController.cjs.map +1 -1
  4. package/dist/TransactionController.d.cts +1 -3
  5. package/dist/TransactionController.d.cts.map +1 -1
  6. package/dist/TransactionController.d.mts +1 -3
  7. package/dist/TransactionController.d.mts.map +1 -1
  8. package/dist/TransactionController.mjs +8 -60
  9. package/dist/TransactionController.mjs.map +1 -1
  10. package/dist/errors.cjs +1 -8
  11. package/dist/errors.cjs.map +1 -1
  12. package/dist/errors.d.cts +0 -4
  13. package/dist/errors.d.cts.map +1 -1
  14. package/dist/errors.d.mts +0 -4
  15. package/dist/errors.d.mts.map +1 -1
  16. package/dist/errors.mjs +0 -6
  17. package/dist/errors.mjs.map +1 -1
  18. package/dist/types.cjs.map +1 -1
  19. package/dist/types.d.cts +2 -4
  20. package/dist/types.d.cts.map +1 -1
  21. package/dist/types.d.mts +2 -4
  22. package/dist/types.d.mts.map +1 -1
  23. package/dist/types.mjs.map +1 -1
  24. package/dist/utils/validation.cjs +1 -13
  25. package/dist/utils/validation.cjs.map +1 -1
  26. package/dist/utils/validation.d.cts +0 -7
  27. package/dist/utils/validation.d.cts.map +1 -1
  28. package/dist/utils/validation.d.mts +0 -7
  29. package/dist/utils/validation.d.mts.map +1 -1
  30. package/dist/utils/validation.mjs +0 -11
  31. package/dist/utils/validation.mjs.map +1 -1
  32. package/package.json +3 -4
  33. package/dist/api/accounts-api.cjs +0 -47
  34. package/dist/api/accounts-api.cjs.map +0 -1
  35. package/dist/api/accounts-api.d.cts +0 -43
  36. package/dist/api/accounts-api.d.cts.map +0 -1
  37. package/dist/api/accounts-api.d.mts +0 -43
  38. package/dist/api/accounts-api.d.mts.map +0 -1
  39. package/dist/api/accounts-api.mjs +0 -43
  40. package/dist/api/accounts-api.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [40.0.0]
11
+
12
+ ### Changed
13
+
14
+ - **BREAKING:** Bump `@metamask/accounts-controller` peer dependency from `^19.0.0` to `^20.0.0` ([#4195](https://github.com/MetaMask/core/pull/4956))
15
+
10
16
  ## [39.1.0]
11
17
 
12
18
  ### Changed
@@ -1127,7 +1133,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1127
1133
 
1128
1134
  All changes listed after this point were applied to this package following the monorepo conversion.
1129
1135
 
1130
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@39.1.0...HEAD
1136
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@40.0.0...HEAD
1137
+ [40.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@39.1.0...@metamask/transaction-controller@40.0.0
1131
1138
  [39.1.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@39.0.0...@metamask/transaction-controller@39.1.0
1132
1139
  [39.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@38.3.0...@metamask/transaction-controller@39.0.0
1133
1140
  [38.3.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@38.2.0...@metamask/transaction-controller@38.3.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_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_createNonceTracker, _TransactionController_createIncomingTransactionHelper, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_removeIncomingTransactionHelperListeners, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateFirstTimeInteraction, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getNetworkClientId, _TransactionController_getGlobalNetworkClientId, _TransactionController_getGlobalChainId, _TransactionController_isCustomNetwork, _TransactionController_getSelectedAccount, _TransactionController_updateSubmitHistory;
16
+ var _TransactionController_instances, _TransactionController_internalEvents, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_createNonceTracker, _TransactionController_createIncomingTransactionHelper, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_removeIncomingTransactionHelperListeners, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getNetworkClientId, _TransactionController_getGlobalNetworkClientId, _TransactionController_getGlobalChainId, _TransactionController_isCustomNetwork, _TransactionController_getSelectedAccount, _TransactionController_updateSubmitHistory;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.TransactionController = exports.ApprovalState = exports.SPEED_UP_RATE = exports.CANCEL_RATE = exports.HARDFORK = void 0;
19
19
  const common_1 = require("@ethereumjs/common");
@@ -31,7 +31,6 @@ const eth_method_registry_1 = require("eth-method-registry");
31
31
  const events_1 = require("events");
32
32
  const lodash_1 = require("lodash");
33
33
  const uuid_1 = require("uuid");
34
- const accounts_api_1 = require("./api/accounts-api.cjs");
35
34
  const DefaultGasFeeFlow_1 = require("./gas-flows/DefaultGasFeeFlow.cjs");
36
35
  const LineaGasFeeFlow_1 = require("./gas-flows/LineaGasFeeFlow.cjs");
37
36
  const OptimismLayer1GasFeeFlow_1 = require("./gas-flows/OptimismLayer1GasFeeFlow.cjs");
@@ -178,7 +177,6 @@ class TransactionController extends base_controller_1.BaseController {
178
177
  * @param options.getSavedGasFees - Gets the saved gas fee config.
179
178
  * @param options.incomingTransactions - Configuration options for incoming transaction support.
180
179
  * @param options.isMultichainEnabled - Enable multichain support.
181
- * @param options.isFirstTimeInteractionEnabled - Whether first time interaction checks are enabled.
182
180
  * @param options.isSimulationEnabled - Whether new transactions will be automatically simulated.
183
181
  * @param options.messenger - The controller messenger.
184
182
  * @param options.onNetworkStateChange - Allows subscribing to network controller state changes.
@@ -192,7 +190,7 @@ class TransactionController extends base_controller_1.BaseController {
192
190
  * @param options.transactionHistoryLimit - Transaction history limit.
193
191
  * @param options.hooks - The controller hooks.
194
192
  */
195
- constructor({ blockTracker, disableHistory, disableSendFlowHistory, disableSwaps, getCurrentAccountEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, getExternalPendingTransactions, getGasFeeEstimates, getNetworkClientRegistry, getNetworkState, getPermittedAccounts, getSavedGasFees, incomingTransactions = {}, isMultichainEnabled = false, isFirstTimeInteractionEnabled, isSimulationEnabled, messenger, onNetworkStateChange, pendingTransactions = {}, provider, securityProviderRequest, sign, state, testGasFeeFlows, trace, transactionHistoryLimit = 40, hooks, }) {
193
+ constructor({ blockTracker, disableHistory, disableSendFlowHistory, disableSwaps, getCurrentAccountEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, getExternalPendingTransactions, getGasFeeEstimates, getNetworkClientRegistry, getNetworkState, getPermittedAccounts, getSavedGasFees, incomingTransactions = {}, isMultichainEnabled = false, isSimulationEnabled, messenger, onNetworkStateChange, pendingTransactions = {}, provider, securityProviderRequest, sign, state, testGasFeeFlows, trace, transactionHistoryLimit = 40, hooks, }) {
196
194
  super({
197
195
  name: controllerName,
198
196
  metadata,
@@ -211,7 +209,6 @@ class TransactionController extends base_controller_1.BaseController {
211
209
  this.signAbortCallbacks = new Map();
212
210
  _TransactionController_trace.set(this, void 0);
213
211
  _TransactionController_transactionHistoryLimit.set(this, void 0);
214
- _TransactionController_isFirstTimeInteractionEnabled.set(this, void 0);
215
212
  _TransactionController_isSimulationEnabled.set(this, void 0);
216
213
  _TransactionController_testGasFeeFlows.set(this, void 0);
217
214
  _TransactionController_multichainTrackingHelper.set(this, void 0);
@@ -225,7 +222,6 @@ class TransactionController extends base_controller_1.BaseController {
225
222
  this.isSendFlowHistoryDisabled = disableSendFlowHistory ?? false;
226
223
  this.isHistoryDisabled = disableHistory ?? false;
227
224
  this.isSwapsDisabled = disableSwaps ?? false;
228
- __classPrivateFieldSet(this, _TransactionController_isFirstTimeInteractionEnabled, isFirstTimeInteractionEnabled ?? (() => true), "f");
229
225
  __classPrivateFieldSet(this, _TransactionController_isSimulationEnabled, isSimulationEnabled ?? (() => true), "f");
230
226
  // @ts-expect-error the type in eth-method-registry is inappropriate and should be changed
231
227
  this.registry = new eth_method_registry_1.MethodRegistry({ provider });
@@ -407,16 +403,15 @@ class TransactionController extends base_controller_1.BaseController {
407
403
  dappSuggestedGasFees,
408
404
  deviceConfirmedOn,
409
405
  id: (0, uuid_1.v1)(),
410
- isFirstTimeInteraction: undefined,
411
- networkClientId,
412
406
  origin,
413
407
  securityAlertResponse,
414
408
  status: types_1.TransactionStatus.unapproved,
415
409
  time: Date.now(),
416
410
  txParams,
417
- type: transactionType,
418
411
  userEditedGasLimit: false,
419
412
  verifiedOnBlockchain: false,
413
+ type: transactionType,
414
+ networkClientId,
420
415
  };
421
416
  await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Estimate Gas Properties', parentContext: traceContext }, (context) => this.updateGasProperties(addedTransactionMeta, {
422
417
  traceContext: context,
@@ -449,14 +444,9 @@ class TransactionController extends base_controller_1.BaseController {
449
444
  (0, logger_1.projectLogger)('Error while updating simulation data', error);
450
445
  throw error;
451
446
  });
452
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateFirstTimeInteraction).call(this, addedTransactionMeta, {
453
- traceContext,
454
- }).catch((error) => {
455
- (0, logger_1.projectLogger)('Error while updating first interaction properties', error);
456
- });
457
447
  }
458
448
  else {
459
- (0, logger_1.projectLogger)('Skipping simulation & first interaction update as approval not required');
449
+ (0, logger_1.projectLogger)('Skipping simulation as approval not required');
460
450
  }
461
451
  this.messagingSystem.publish(`${controllerName}:unapprovedTransactionAdded`, addedTransactionMeta);
462
452
  }
@@ -1795,7 +1785,7 @@ class TransactionController extends base_controller_1.BaseController {
1795
1785
  }
1796
1786
  }
1797
1787
  exports.TransactionController = TransactionController;
1798
- _TransactionController_internalEvents = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = 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, }) {
1788
+ _TransactionController_internalEvents = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = 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, }) {
1799
1789
  // If transaction is found for same action id, do not create a new transaction.
1800
1790
  if (this.getTransactionWithActionId(actionId)) {
1801
1791
  return;
@@ -1973,48 +1963,6 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
1973
1963
  });
1974
1964
  }
1975
1965
  return transactionMeta;
1976
- }, _TransactionController_updateFirstTimeInteraction = async function _TransactionController_updateFirstTimeInteraction(transactionMeta, { traceContext, } = {}) {
1977
- if (!__classPrivateFieldGet(this, _TransactionController_isFirstTimeInteractionEnabled, "f").call(this)) {
1978
- return;
1979
- }
1980
- const { chainId, id: transactionId, txParams: { to, from }, } = transactionMeta;
1981
- const request = {
1982
- chainId: (0, utils_1.hexToNumber)(chainId),
1983
- to: to,
1984
- from,
1985
- };
1986
- (0, validation_1.validateParamTo)(to);
1987
- const existingTransaction = this.state.transactions.find((tx) => tx.chainId === chainId &&
1988
- tx.txParams.from === from &&
1989
- tx.txParams.to === to &&
1990
- tx.id !== transactionId);
1991
- // Check if there is an existing transaction with the same from, to, and chainId
1992
- // else we continue to check the account address relationship from API
1993
- if (existingTransaction) {
1994
- return;
1995
- }
1996
- try {
1997
- const { count } = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Account Address Relationship', parentContext: traceContext }, () => (0, accounts_api_1.getAccountAddressRelationship)(request));
1998
- const isFirstTimeInteraction = count === undefined ? undefined : count === 0;
1999
- const finalTransactionMeta = this.getTransaction(transactionId);
2000
- /* istanbul ignore if */
2001
- if (!finalTransactionMeta) {
2002
- (0, logger_1.projectLogger)('Cannot update first time interaction as transaction not found', transactionId);
2003
- return;
2004
- }
2005
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
2006
- transactionId,
2007
- note: 'TransactionController#updateFirstInteraction - Update first time interaction',
2008
- }, (txMeta) => {
2009
- txMeta.isFirstTimeInteraction = isFirstTimeInteraction;
2010
- });
2011
- (0, logger_1.projectLogger)('Updated first time interaction', transactionId, {
2012
- isFirstTimeInteraction,
2013
- });
2014
- }
2015
- catch (error) {
2016
- (0, logger_1.projectLogger)('Error fetching account address relationship, skipping first time interaction update', error);
2017
- }
2018
1966
  }, _TransactionController_updateSimulationData = async function _TransactionController_updateSimulationData(transactionMeta, { blockTime, traceContext, } = {}) {
2019
1967
  const { id: transactionId, chainId, txParams, simulationData: prevSimulationData, } = transactionMeta;
2020
1968
  const { from, to, value, data } = txParams;