@metamask-previews/transaction-controller 52.3.0-preview-6cc620a → 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 (44) hide show
  1. package/CHANGELOG.md +0 -5
  2. package/dist/TransactionController.cjs +18 -32
  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 -32
  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/validation.cjs +11 -10
  37. package/dist/utils/validation.cjs.map +1 -1
  38. package/dist/utils/validation.d.cts +1 -3
  39. package/dist/utils/validation.d.cts.map +1 -1
  40. package/dist/utils/validation.d.mts +1 -3
  41. package/dist/utils/validation.d.mts.map +1 -1
  42. package/dist/utils/validation.mjs +11 -10
  43. package/dist/utils/validation.mjs.map +1 -1
  44. 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);
@@ -682,7 +682,6 @@ class TransactionController extends base_controller_1.BaseController {
682
682
  this.onTransactionStatusChange(updatedTransactionMeta);
683
683
  // Intentional given potential duration of process.
684
684
  this.updatePostBalance(updatedTransactionMeta).catch((error) => {
685
- /* istanbul ignore next */
686
685
  (0, logger_1.projectLogger)('Error while updating post balance', error);
687
686
  throw error;
688
687
  });
@@ -931,16 +930,20 @@ class TransactionController extends base_controller_1.BaseController {
931
930
  /**
932
931
  * Update a custodial transaction.
933
932
  *
934
- * @param request - The custodial transaction update request.
935
- *
936
- * @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.
937
938
  */
938
- updateCustodialTransaction(request) {
939
- const { transactionId, errorMessage, hash, status, gasLimit, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, type, } = request;
939
+ updateCustodialTransaction(transactionId, { errorMessage, hash, status, }) {
940
940
  const transactionMeta = this.getTransaction(transactionId);
941
941
  if (!transactionMeta) {
942
942
  throw new Error(`Cannot update custodial transaction as no transaction metadata found`);
943
943
  }
944
+ if (!transactionMeta.custodyId) {
945
+ throw new Error('Transaction must be a custodian transaction');
946
+ }
944
947
  if (status &&
945
948
  ![
946
949
  types_1.TransactionStatus.submitted,
@@ -956,27 +959,11 @@ class TransactionController extends base_controller_1.BaseController {
956
959
  if (updatedTransactionMeta.status === types_1.TransactionStatus.failed) {
957
960
  updatedTransactionMeta.error = (0, utils_2.normalizeTxError)(new Error(errorMessage));
958
961
  }
959
- // Update txParams properties with a single pickBy operation
960
- updatedTransactionMeta.txParams = (0, lodash_1.merge)({}, updatedTransactionMeta.txParams, (0, lodash_1.pickBy)({
961
- gasLimit,
962
- gasPrice,
963
- maxFeePerGas,
964
- maxPriorityFeePerGas,
965
- nonce,
966
- type,
967
- }));
968
- // Special case for type change to legacy
969
- if (type === types_1.TransactionEnvelopeType.legacy) {
970
- delete updatedTransactionMeta.txParams.maxFeePerGas;
971
- delete updatedTransactionMeta.txParams.maxPriorityFeePerGas;
972
- }
973
962
  this.updateTransaction(updatedTransactionMeta, `${controllerName}:updateCustodialTransaction - Custodial transaction updated`);
974
- if (status &&
975
- [types_1.TransactionStatus.submitted, types_1.TransactionStatus.failed].includes(status)) {
963
+ if ([types_1.TransactionStatus.submitted, types_1.TransactionStatus.failed].includes(status)) {
976
964
  this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
977
965
  __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${updatedTransactionMeta.id}:finished`, updatedTransactionMeta);
978
966
  }
979
- return updatedTransactionMeta;
980
967
  }
981
968
  /**
982
969
  * Search transaction metadata for matching entries.
@@ -1393,7 +1380,7 @@ class TransactionController extends base_controller_1.BaseController {
1393
1380
  });
1394
1381
  this.onTransactionStatusChange(transactionMeta);
1395
1382
  const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => this.signTransaction(transactionMeta));
1396
- if (!(await this.beforePublish(transactionMeta))) {
1383
+ if (!this.beforePublish(transactionMeta)) {
1397
1384
  (0, logger_1.projectLogger)('Skipping publishing transaction based on hook');
1398
1385
  this.messagingSystem.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
1399
1386
  return ApprovalState.SkippedViaBeforePublishHook;
@@ -1979,6 +1966,7 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
1979
1966
  }),
1980
1967
  hooks: {
1981
1968
  beforeCheckPendingTransaction: this.beforeCheckPendingTransaction.bind(this),
1969
+ beforePublish: this.beforePublish.bind(this),
1982
1970
  },
1983
1971
  });
1984
1972
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addPendingTransactionTrackerListeners).call(this, pendingTransactionTracker);
@@ -2196,8 +2184,6 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
2196
2184
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
2197
2185
  txMeta: transactionMeta,
2198
2186
  });
2199
- }, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
2200
- this.messagingSystem.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
2201
2187
  }, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
2202
2188
  this.update((state) => {
2203
2189
  const transactions = state.transactions.filter(({ id }) => id !== transactionId);