@metamask-previews/transaction-controller 52.3.0-preview-8ea9b81f → 52.3.0-preview-888fa154

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 (60) hide show
  1. package/CHANGELOG.md +0 -5
  2. package/dist/TransactionController.cjs +18 -35
  3. package/dist/TransactionController.cjs.map +1 -1
  4. package/dist/TransactionController.d.cts +16 -17
  5. package/dist/TransactionController.d.cts.map +1 -1
  6. package/dist/TransactionController.d.mts +16 -17
  7. package/dist/TransactionController.d.mts.map +1 -1
  8. package/dist/TransactionController.mjs +18 -35
  9. package/dist/TransactionController.mjs.map +1 -1
  10. package/dist/helpers/AccountsApiRemoteTransactionSource.cjs +60 -17
  11. package/dist/helpers/AccountsApiRemoteTransactionSource.cjs.map +1 -1
  12. package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts.map +1 -1
  13. package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts.map +1 -1
  14. package/dist/helpers/AccountsApiRemoteTransactionSource.mjs +60 -17
  15. package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +1 -1
  16. package/dist/helpers/PendingTransactionTracker.cjs +7 -7
  17. package/dist/helpers/PendingTransactionTracker.cjs.map +1 -1
  18. package/dist/helpers/PendingTransactionTracker.d.cts +2 -1
  19. package/dist/helpers/PendingTransactionTracker.d.cts.map +1 -1
  20. package/dist/helpers/PendingTransactionTracker.d.mts +2 -1
  21. package/dist/helpers/PendingTransactionTracker.d.mts.map +1 -1
  22. package/dist/helpers/PendingTransactionTracker.mjs +7 -7
  23. package/dist/helpers/PendingTransactionTracker.mjs.map +1 -1
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.cts +1 -1
  26. package/dist/index.d.cts.map +1 -1
  27. package/dist/index.d.mts +1 -1
  28. package/dist/index.d.mts.map +1 -1
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/types.cjs.map +1 -1
  31. package/dist/types.d.cts +9 -29
  32. package/dist/types.d.cts.map +1 -1
  33. package/dist/types.d.mts +9 -29
  34. package/dist/types.d.mts.map +1 -1
  35. package/dist/types.mjs.map +1 -1
  36. package/dist/utils/feature-flags.cjs +1 -21
  37. package/dist/utils/feature-flags.cjs.map +1 -1
  38. package/dist/utils/feature-flags.d.cts +0 -35
  39. package/dist/utils/feature-flags.d.cts.map +1 -1
  40. package/dist/utils/feature-flags.d.mts +0 -35
  41. package/dist/utils/feature-flags.d.mts.map +1 -1
  42. package/dist/utils/feature-flags.mjs +0 -19
  43. package/dist/utils/feature-flags.mjs.map +1 -1
  44. package/dist/utils/gas.cjs +4 -10
  45. package/dist/utils/gas.cjs.map +1 -1
  46. package/dist/utils/gas.d.cts +2 -5
  47. package/dist/utils/gas.d.cts.map +1 -1
  48. package/dist/utils/gas.d.mts +2 -5
  49. package/dist/utils/gas.d.mts.map +1 -1
  50. package/dist/utils/gas.mjs +4 -10
  51. package/dist/utils/gas.mjs.map +1 -1
  52. package/dist/utils/validation.cjs +11 -10
  53. package/dist/utils/validation.cjs.map +1 -1
  54. package/dist/utils/validation.d.cts +1 -3
  55. package/dist/utils/validation.d.cts.map +1 -1
  56. package/dist/utils/validation.d.mts +1 -3
  57. package/dist/utils/validation.d.mts.map +1 -1
  58. package/dist/utils/validation.mjs +11 -10
  59. package/dist/utils/validation.mjs.map +1 -1
  60. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -7,11 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- ### Changed
11
-
12
- - Throw if `chainId` in `TransactionParams` does not match `networkClientId` when calling `addTransaction` ([#5511](https://github.com/MetaMask/core/pull/5569))
13
- - Mark `chainId` in `TransactionParams` as deprecated.
14
-
15
10
  ## [52.3.0]
16
11
 
17
12
  ### Added
@@ -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_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_publishBatchHook, _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_registerActionHandlers, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow;
16
+ var _TransactionController_instances, _TransactionController_internalEvents, _TransactionController_methodDataHelper, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_publishBatchHook, _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");
@@ -215,9 +215,10 @@ class TransactionController extends base_controller_1.BaseController {
215
215
  __classPrivateFieldSet(this, _TransactionController_trace, trace ?? ((_request, fn) => fn?.()), "f");
216
216
  this.afterSign = hooks?.afterSign ?? (() => true);
217
217
  this.beforeCheckPendingTransaction =
218
- /* istanbul ignore next */
219
- hooks?.beforeCheckPendingTransaction ?? (() => Promise.resolve(true));
220
- this.beforePublish = hooks?.beforePublish ?? (() => Promise.resolve(true));
218
+ hooks?.beforeCheckPendingTransaction ??
219
+ /* istanbul ignore next */
220
+ (() => true);
221
+ this.beforePublish = hooks?.beforePublish ?? (() => true);
221
222
  this.getAdditionalSignArguments =
222
223
  hooks?.getAdditionalSignArguments ?? (() => []);
223
224
  this.publish =
@@ -293,7 +294,6 @@ class TransactionController extends base_controller_1.BaseController {
293
294
  });
294
295
  this.onBootCleanup();
295
296
  __classPrivateFieldGet(this, _TransactionController_checkForPendingTransactionAndStartPolling, "f").call(this);
296
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_registerActionHandlers).call(this);
297
297
  }
298
298
  /**
299
299
  * Stops polling and removes listeners to prepare the controller for garbage collection.
@@ -399,7 +399,7 @@ class TransactionController extends base_controller_1.BaseController {
399
399
  });
400
400
  const delegationAddressPromise = (0, eip7702_1.getDelegationAddress)(txParams.from, ethQuery).catch(() => undefined);
401
401
  const isEIP1559Compatible = await this.getEIP1559Compatibility(networkClientId);
402
- (0, validation_1.validateTxParams)(txParams, isEIP1559Compatible, chainId);
402
+ (0, validation_1.validateTxParams)(txParams, isEIP1559Compatible);
403
403
  if (!txParams.type) {
404
404
  // Determine transaction type based on transaction parameters and network compatibility
405
405
  (0, utils_2.setEnvelopeType)(txParams, isEIP1559Compatible);
@@ -568,7 +568,6 @@ class TransactionController extends base_controller_1.BaseController {
568
568
  chainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId),
569
569
  ethQuery,
570
570
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
571
- messenger: this.messagingSystem,
572
571
  txParams: transaction,
573
572
  });
574
573
  return { gas: estimatedGas, simulationFails };
@@ -589,7 +588,6 @@ class TransactionController extends base_controller_1.BaseController {
589
588
  chainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId),
590
589
  ethQuery,
591
590
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
592
- messenger: this.messagingSystem,
593
591
  txParams: transaction,
594
592
  });
595
593
  const gas = (0, gas_1.addGasBuffer)(estimatedGas, blockGasLimit, multiplier);
@@ -684,7 +682,6 @@ class TransactionController extends base_controller_1.BaseController {
684
682
  this.onTransactionStatusChange(updatedTransactionMeta);
685
683
  // Intentional given potential duration of process.
686
684
  this.updatePostBalance(updatedTransactionMeta).catch((error) => {
687
- /* istanbul ignore next */
688
685
  (0, logger_1.projectLogger)('Error while updating post balance', error);
689
686
  throw error;
690
687
  });
@@ -933,16 +930,20 @@ class TransactionController extends base_controller_1.BaseController {
933
930
  /**
934
931
  * Update a custodial transaction.
935
932
  *
936
- * @param request - The custodial transaction update request.
937
- *
938
- * @returns The updated transaction metadata.
933
+ * @param transactionId - The ID of the transaction to update.
934
+ * @param options - The custodial transaction options to update.
935
+ * @param options.errorMessage - The error message to be assigned in case transaction status update to failed.
936
+ * @param options.hash - The new hash value to be assigned.
937
+ * @param options.status - The new status value to be assigned.
939
938
  */
940
- updateCustodialTransaction(request) {
941
- const { transactionId, errorMessage, hash, status, gasLimit, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, type, } = request;
939
+ updateCustodialTransaction(transactionId, { errorMessage, hash, status, }) {
942
940
  const transactionMeta = this.getTransaction(transactionId);
943
941
  if (!transactionMeta) {
944
942
  throw new Error(`Cannot update custodial transaction as no transaction metadata found`);
945
943
  }
944
+ if (!transactionMeta.custodyId) {
945
+ throw new Error('Transaction must be a custodian transaction');
946
+ }
946
947
  if (status &&
947
948
  ![
948
949
  types_1.TransactionStatus.submitted,
@@ -958,27 +959,11 @@ class TransactionController extends base_controller_1.BaseController {
958
959
  if (updatedTransactionMeta.status === types_1.TransactionStatus.failed) {
959
960
  updatedTransactionMeta.error = (0, utils_2.normalizeTxError)(new Error(errorMessage));
960
961
  }
961
- // Update txParams properties with a single pickBy operation
962
- updatedTransactionMeta.txParams = (0, lodash_1.merge)({}, updatedTransactionMeta.txParams, (0, lodash_1.pickBy)({
963
- gasLimit,
964
- gasPrice,
965
- maxFeePerGas,
966
- maxPriorityFeePerGas,
967
- nonce,
968
- type,
969
- }));
970
- // Special case for type change to legacy
971
- if (type === types_1.TransactionEnvelopeType.legacy) {
972
- delete updatedTransactionMeta.txParams.maxFeePerGas;
973
- delete updatedTransactionMeta.txParams.maxPriorityFeePerGas;
974
- }
975
962
  this.updateTransaction(updatedTransactionMeta, `${controllerName}:updateCustodialTransaction - Custodial transaction updated`);
976
- if (status &&
977
- [types_1.TransactionStatus.submitted, types_1.TransactionStatus.failed].includes(status)) {
963
+ if ([types_1.TransactionStatus.submitted, types_1.TransactionStatus.failed].includes(status)) {
978
964
  this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
979
965
  __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${updatedTransactionMeta.id}:finished`, updatedTransactionMeta);
980
966
  }
981
- return updatedTransactionMeta;
982
967
  }
983
968
  /**
984
969
  * Search transaction metadata for matching entries.
@@ -1395,7 +1380,7 @@ class TransactionController extends base_controller_1.BaseController {
1395
1380
  });
1396
1381
  this.onTransactionStatusChange(transactionMeta);
1397
1382
  const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => this.signTransaction(transactionMeta));
1398
- if (!(await this.beforePublish(transactionMeta))) {
1383
+ if (!this.beforePublish(transactionMeta)) {
1399
1384
  (0, logger_1.projectLogger)('Skipping publishing transaction based on hook');
1400
1385
  this.messagingSystem.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
1401
1386
  return ApprovalState.SkippedViaBeforePublishHook;
@@ -1981,6 +1966,7 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
1981
1966
  }),
1982
1967
  hooks: {
1983
1968
  beforeCheckPendingTransaction: this.beforeCheckPendingTransaction.bind(this),
1969
+ beforePublish: this.beforePublish.bind(this),
1984
1970
  },
1985
1971
  });
1986
1972
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addPendingTransactionTrackerListeners).call(this, pendingTransactionTracker);
@@ -2196,11 +2182,8 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
2196
2182
  ethQuery,
2197
2183
  isCustomNetwork,
2198
2184
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
2199
- messenger: this.messagingSystem,
2200
2185
  txMeta: transactionMeta,
2201
2186
  });
2202
- }, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
2203
- this.messagingSystem.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
2204
2187
  }, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
2205
2188
  this.update((state) => {
2206
2189
  const transactions = state.transactions.filter(({ id }) => id !== transactionId);