@metamask/transaction-controller 49.0.0 → 50.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.
Files changed (62) hide show
  1. package/CHANGELOG.md +24 -1
  2. package/dist/TransactionController.cjs +59 -47
  3. package/dist/TransactionController.cjs.map +1 -1
  4. package/dist/TransactionController.d.cts +3 -8
  5. package/dist/TransactionController.d.cts.map +1 -1
  6. package/dist/TransactionController.d.mts +3 -8
  7. package/dist/TransactionController.d.mts.map +1 -1
  8. package/dist/TransactionController.mjs +60 -48
  9. package/dist/TransactionController.mjs.map +1 -1
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.cts +1 -1
  12. package/dist/index.d.cts.map +1 -1
  13. package/dist/index.d.mts +1 -1
  14. package/dist/index.d.mts.map +1 -1
  15. package/dist/index.mjs.map +1 -1
  16. package/dist/types.cjs.map +1 -1
  17. package/dist/types.d.cts +21 -12
  18. package/dist/types.d.cts.map +1 -1
  19. package/dist/types.d.mts +21 -12
  20. package/dist/types.d.mts.map +1 -1
  21. package/dist/types.mjs.map +1 -1
  22. package/dist/utils/batch.cjs +32 -6
  23. package/dist/utils/batch.cjs.map +1 -1
  24. package/dist/utils/batch.d.cts +3 -1
  25. package/dist/utils/batch.d.cts.map +1 -1
  26. package/dist/utils/batch.d.mts +3 -1
  27. package/dist/utils/batch.d.mts.map +1 -1
  28. package/dist/utils/batch.mjs +33 -7
  29. package/dist/utils/batch.mjs.map +1 -1
  30. package/dist/utils/eip7702.cjs +21 -9
  31. package/dist/utils/eip7702.cjs.map +1 -1
  32. package/dist/utils/eip7702.d.cts +10 -1
  33. package/dist/utils/eip7702.d.cts.map +1 -1
  34. package/dist/utils/eip7702.d.mts +10 -1
  35. package/dist/utils/eip7702.d.mts.map +1 -1
  36. package/dist/utils/eip7702.mjs +19 -8
  37. package/dist/utils/eip7702.mjs.map +1 -1
  38. package/dist/utils/feature-flags.cjs +26 -5
  39. package/dist/utils/feature-flags.cjs.map +1 -1
  40. package/dist/utils/feature-flags.d.cts +27 -7
  41. package/dist/utils/feature-flags.d.cts.map +1 -1
  42. package/dist/utils/feature-flags.d.mts +27 -7
  43. package/dist/utils/feature-flags.d.mts.map +1 -1
  44. package/dist/utils/feature-flags.mjs +24 -4
  45. package/dist/utils/feature-flags.mjs.map +1 -1
  46. package/dist/utils/signature.cjs +26 -0
  47. package/dist/utils/signature.cjs.map +1 -0
  48. package/dist/utils/signature.d.cts +11 -0
  49. package/dist/utils/signature.d.cts.map +1 -0
  50. package/dist/utils/signature.d.mts +11 -0
  51. package/dist/utils/signature.d.mts.map +1 -0
  52. package/dist/utils/signature.mjs +22 -0
  53. package/dist/utils/signature.mjs.map +1 -0
  54. package/dist/utils/validation.cjs +5 -1
  55. package/dist/utils/validation.cjs.map +1 -1
  56. package/dist/utils/validation.d.cts +3 -1
  57. package/dist/utils/validation.d.cts.map +1 -1
  58. package/dist/utils/validation.d.mts +3 -1
  59. package/dist/utils/validation.d.mts.map +1 -1
  60. package/dist/utils/validation.mjs +5 -1
  61. package/dist/utils/validation.mjs.map +1 -1
  62. package/package.json +3 -2
package/CHANGELOG.md CHANGED
@@ -7,6 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [50.0.0]
11
+
12
+ ### Added
13
+
14
+ - Add additional metadata for batch metrics ([#5488](https://github.com/MetaMask/core/pull/5488))
15
+ - Add `delegationAddress` to `TransactionMetadata`.
16
+ - Add `NestedTransactionMetadata` type containing `BatchTransactionParams` and `type`.
17
+ - Add optional `type` to `TransactionBatchSingleRequest`.
18
+ - Verify EIP-7702 contract address using signatures ([#5472](https://github.com/MetaMask/core/pull/5472))
19
+ - Add optional `publicKeyEIP7702` property to constructor.
20
+ - Add dependency on `^5.7.0` of `@ethersproject/wallet`.
21
+
22
+ ### Changed
23
+
24
+ - **BREAKING:** Bump `@metamask/accounts-controller` peer dependency to `^26.1.0` ([#5481](https://github.com/MetaMask/core/pull/5481))
25
+ - **BREAKING:** Add additional metadata for batch metrics ([#5488](https://github.com/MetaMask/core/pull/5488))
26
+ - Change `error` in `TransactionMetadata` to optional for all statuses.
27
+ - Change `nestedTransactions` in `TransactionMetadata` to array of `NestedTransactionMetadata`.
28
+ - Throw if `addTransactionBatch` called with external origin and size limit exceeded ([#5489](https://github.com/MetaMask/core/pull/5489))
29
+ - Verify EIP-7702 contract address using signatures ([#5472](https://github.com/MetaMask/core/pull/5472))
30
+ - Use new `contracts` property from feature flags instead of `contractAddresses`.
31
+
10
32
  ## [49.0.0]
11
33
 
12
34
  ### Added
@@ -1358,7 +1380,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1358
1380
 
1359
1381
  All changes listed after this point were applied to this package following the monorepo conversion.
1360
1382
 
1361
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@49.0.0...HEAD
1383
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@50.0.0...HEAD
1384
+ [50.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@49.0.0...@metamask/transaction-controller@50.0.0
1362
1385
  [49.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.2.0...@metamask/transaction-controller@49.0.0
1363
1386
  [48.2.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.1.0...@metamask/transaction-controller@48.2.0
1364
1387
  [48.1.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.0.0...@metamask/transaction-controller@48.1.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_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _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;
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;
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");
@@ -156,7 +156,7 @@ class TransactionController extends base_controller_1.BaseController {
156
156
  * @param options - The controller options.
157
157
  */
158
158
  constructor(options) {
159
- const { disableHistory, disableSendFlowHistory, disableSwaps, getCurrentAccountEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, getExternalPendingTransactions, getGasFeeEstimates, getNetworkClientRegistry, getNetworkState, getPermittedAccounts, getSavedGasFees, incomingTransactions = {}, isFirstTimeInteractionEnabled, isSimulationEnabled, messenger, pendingTransactions = {}, securityProviderRequest, sign, state, testGasFeeFlows, trace, transactionHistoryLimit = 40, hooks, } = options;
159
+ const { disableHistory, disableSendFlowHistory, disableSwaps, getCurrentAccountEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, getExternalPendingTransactions, getGasFeeEstimates, getNetworkClientRegistry, getNetworkState, getPermittedAccounts, getSavedGasFees, incomingTransactions = {}, isFirstTimeInteractionEnabled, isSimulationEnabled, messenger, pendingTransactions = {}, publicKeyEIP7702, securityProviderRequest, sign, state, testGasFeeFlows, trace, transactionHistoryLimit = 40, hooks, } = options;
160
160
  super({
161
161
  name: controllerName,
162
162
  metadata,
@@ -175,6 +175,7 @@ class TransactionController extends base_controller_1.BaseController {
175
175
  _TransactionController_incomingTransactionHelper.set(this, void 0);
176
176
  _TransactionController_incomingTransactionOptions.set(this, void 0);
177
177
  _TransactionController_pendingTransactionOptions.set(this, void 0);
178
+ _TransactionController_publicKeyEIP7702.set(this, void 0);
178
179
  this.signAbortCallbacks = new Map();
179
180
  _TransactionController_trace.set(this, void 0);
180
181
  _TransactionController_transactionHistoryLimit.set(this, void 0);
@@ -205,6 +206,7 @@ class TransactionController extends base_controller_1.BaseController {
205
206
  this.securityProviderRequest = securityProviderRequest;
206
207
  __classPrivateFieldSet(this, _TransactionController_incomingTransactionOptions, incomingTransactions, "f");
207
208
  __classPrivateFieldSet(this, _TransactionController_pendingTransactionOptions, pendingTransactions, "f");
209
+ __classPrivateFieldSet(this, _TransactionController_publicKeyEIP7702, publicKeyEIP7702, "f");
208
210
  __classPrivateFieldSet(this, _TransactionController_transactionHistoryLimit, transactionHistoryLimit, "f");
209
211
  this.sign = sign;
210
212
  __classPrivateFieldSet(this, _TransactionController_testGasFeeFlows, testGasFeeFlows === true, "f");
@@ -320,6 +322,7 @@ class TransactionController extends base_controller_1.BaseController {
320
322
  getEthQuery: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId }),
321
323
  getInternalAccounts: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getInternalAccounts).bind(this),
322
324
  messenger: this.messagingSystem,
325
+ publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
323
326
  request,
324
327
  });
325
328
  }
@@ -334,6 +337,7 @@ class TransactionController extends base_controller_1.BaseController {
334
337
  address,
335
338
  getEthQuery: (chainId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId }),
336
339
  messenger: this.messagingSystem,
340
+ publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
337
341
  });
338
342
  }
339
343
  /**
@@ -367,6 +371,10 @@ class TransactionController extends base_controller_1.BaseController {
367
371
  if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
368
372
  throw new Error(`Network client not found - ${networkClientId}`);
369
373
  }
374
+ const chainId = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId);
375
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
376
+ networkClientId,
377
+ });
370
378
  const permittedAddresses = origin === undefined
371
379
  ? undefined
372
380
  : await this.getPermittedAccounts?.(origin);
@@ -382,6 +390,7 @@ class TransactionController extends base_controller_1.BaseController {
382
390
  txParams,
383
391
  type,
384
392
  });
393
+ const delegationAddressPromise = (0, eip7702_1.getDelegationAddress)(txParams.from, ethQuery).catch(() => undefined);
385
394
  const isEIP1559Compatible = await this.getEIP1559Compatibility(networkClientId);
386
395
  (0, validation_1.validateTxParams)(txParams, isEIP1559Compatible);
387
396
  const isDuplicateBatchId = batchId?.length &&
@@ -390,11 +399,8 @@ class TransactionController extends base_controller_1.BaseController {
390
399
  throw rpc_errors_1.rpcErrors.invalidInput('Batch ID already exists');
391
400
  }
392
401
  const dappSuggestedGasFees = this.generateDappSuggestedGasFees(txParams, origin);
393
- const chainId = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId);
394
- const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
395
- networkClientId,
396
- });
397
402
  const transactionType = type ?? (await (0, transaction_type_1.determineTransactionType)(txParams, ethQuery)).type;
403
+ const delegationAddress = await delegationAddressPromise;
398
404
  const existingTransactionMeta = this.getTransactionWithActionId(actionId);
399
405
  // If a request to add a transaction with the same actionId is submitted again, a new transaction will not be created for it.
400
406
  let addedTransactionMeta = existingTransactionMeta
@@ -405,6 +411,7 @@ class TransactionController extends base_controller_1.BaseController {
405
411
  batchId,
406
412
  chainId,
407
413
  dappSuggestedGasFees,
414
+ delegationAddress,
408
415
  deviceConfirmedOn,
409
416
  id: (0, uuid_1.v1)(),
410
417
  isFirstTimeInteraction: undefined,
@@ -439,7 +446,7 @@ class TransactionController extends base_controller_1.BaseController {
439
446
  }
440
447
  addedTransactionMeta = (0, swaps_1.updateSwapsTransaction)(addedTransactionMeta, transactionType, swaps, {
441
448
  isSwapsDisabled: this.isSwapsDisabled,
442
- cancelTransaction: this.cancelTransaction.bind(this),
449
+ cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
443
450
  messenger: this.messagingSystem,
444
451
  });
445
452
  this.addMetadata(addedTransactionMeta);
@@ -1239,18 +1246,13 @@ class TransactionController extends base_controller_1.BaseController {
1239
1246
  actionId,
1240
1247
  });
1241
1248
  }
1242
- // TODO: Replace `any` with type
1243
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1244
1249
  }
1245
- catch (error) {
1250
+ catch (rawError) {
1251
+ const error = rawError;
1246
1252
  const { isCompleted: isTxCompleted } = this.isTransactionCompleted(transactionId);
1247
1253
  if (!isTxCompleted) {
1248
- if (error?.code === rpc_errors_1.errorCodes.provider.userRejectedRequest) {
1249
- this.cancelTransaction(transactionId, actionId);
1250
- throw rpc_errors_1.providerErrors.userRejectedRequest({
1251
- message: 'MetaMask Tx Signature: User denied transaction signature.',
1252
- data: error?.data,
1253
- });
1254
+ if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isRejectError).call(this, error)) {
1255
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransactionAndThrow).call(this, transactionId, actionId, error);
1254
1256
  }
1255
1257
  else {
1256
1258
  this.failTransaction(meta, error, actionId);
@@ -1261,8 +1263,9 @@ class TransactionController extends base_controller_1.BaseController {
1261
1263
  const finalMeta = await finishedPromise;
1262
1264
  switch (finalMeta?.status) {
1263
1265
  case types_1.TransactionStatus.failed:
1264
- resultCallbacks?.error(finalMeta.error);
1265
- throw rpc_errors_1.rpcErrors.internal(finalMeta.error.message);
1266
+ const error = finalMeta.error;
1267
+ resultCallbacks?.error(error);
1268
+ throw rpc_errors_1.rpcErrors.internal(error.message);
1266
1269
  case types_1.TransactionStatus.submitted:
1267
1270
  resultCallbacks?.success();
1268
1271
  return finalMeta.hash;
@@ -1389,34 +1392,6 @@ class TransactionController extends base_controller_1.BaseController {
1389
1392
  }
1390
1393
  return transactionHash;
1391
1394
  }
1392
- /**
1393
- * Cancels a transaction based on its ID by setting its status to "rejected"
1394
- * and emitting a `<tx.id>:finished` hub event.
1395
- *
1396
- * @param transactionId - The ID of the transaction to cancel.
1397
- * @param actionId - The actionId passed from UI
1398
- */
1399
- cancelTransaction(transactionId, actionId) {
1400
- const transactionMeta = this.state.transactions.find(({ id }) => id === transactionId);
1401
- if (!transactionMeta) {
1402
- return;
1403
- }
1404
- this.update((state) => {
1405
- const transactions = state.transactions.filter(({ id }) => id !== transactionId);
1406
- state.transactions = this.trimTransactionsForState(transactions);
1407
- });
1408
- const updatedTransactionMeta = {
1409
- ...transactionMeta,
1410
- status: types_1.TransactionStatus.rejected,
1411
- };
1412
- this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
1413
- __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, updatedTransactionMeta);
1414
- this.messagingSystem.publish(`${controllerName}:transactionRejected`, {
1415
- transactionMeta: updatedTransactionMeta,
1416
- actionId,
1417
- });
1418
- this.onTransactionStatusChange(updatedTransactionMeta);
1419
- }
1420
1395
  /**
1421
1396
  * Trim the amount of transactions that are set on the state. Checks
1422
1397
  * if the length of the tx history is longer then desired persistence
@@ -1794,7 +1769,7 @@ class TransactionController extends base_controller_1.BaseController {
1794
1769
  }
1795
1770
  }
1796
1771
  exports.TransactionController = TransactionController;
1797
- _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_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, }) {
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, }) {
1798
1773
  // If transaction is found for same action id, do not create a new transaction.
1799
1774
  if (this.getTransactionWithActionId(actionId)) {
1800
1775
  return;
@@ -1859,6 +1834,24 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
1859
1834
  actionId,
1860
1835
  });
1861
1836
  afterSubmit?.(newTransactionMeta);
1837
+ }, _TransactionController_rejectTransaction = function _TransactionController_rejectTransaction(transactionId, actionId, error) {
1838
+ const transactionMeta = this.getTransaction(transactionId);
1839
+ if (!transactionMeta) {
1840
+ return;
1841
+ }
1842
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_deleteTransaction).call(this, transactionId);
1843
+ const updatedTransactionMeta = {
1844
+ ...transactionMeta,
1845
+ status: types_1.TransactionStatus.rejected,
1846
+ error: (0, utils_2.normalizeTxError)(error ?? rpc_errors_1.providerErrors.userRejectedRequest()),
1847
+ };
1848
+ this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
1849
+ __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, updatedTransactionMeta);
1850
+ this.messagingSystem.publish(`${controllerName}:transactionRejected`, {
1851
+ transactionMeta: updatedTransactionMeta,
1852
+ actionId,
1853
+ });
1854
+ this.onTransactionStatusChange(updatedTransactionMeta);
1862
1855
  }, _TransactionController_getChainId = function _TransactionController_getChainId(networkClientId) {
1863
1856
  return __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({ networkClientId })
1864
1857
  .configuration.chainId;
@@ -2106,5 +2099,24 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
2106
2099
  isCustomNetwork,
2107
2100
  txMeta: transactionMeta,
2108
2101
  });
2102
+ }, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
2103
+ this.update((state) => {
2104
+ const transactions = state.transactions.filter(({ id }) => id !== transactionId);
2105
+ state.transactions = this.trimTransactionsForState(transactions);
2106
+ });
2107
+ }, _TransactionController_isRejectError = function _TransactionController_isRejectError(error) {
2108
+ return [
2109
+ rpc_errors_1.errorCodes.provider.userRejectedRequest,
2110
+ rpc_errors_1.errorCodes.rpc.methodNotSupported,
2111
+ ].includes(error.code);
2112
+ }, _TransactionController_rejectTransactionAndThrow = function _TransactionController_rejectTransactionAndThrow(transactionId, actionId, error) {
2113
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).call(this, transactionId, actionId, error);
2114
+ if (error.code === rpc_errors_1.errorCodes.provider.userRejectedRequest) {
2115
+ throw rpc_errors_1.providerErrors.userRejectedRequest({
2116
+ message: 'MetaMask Tx Signature: User denied transaction signature.',
2117
+ data: error?.data,
2118
+ });
2119
+ }
2120
+ throw error;
2109
2121
  };
2110
2122
  //# sourceMappingURL=TransactionController.cjs.map