@metamask-previews/transaction-controller 48.0.0-preview-b08aa8e7 → 48.0.0-preview-a615cdf2

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 (43) hide show
  1. package/dist/TransactionController.cjs +21 -63
  2. package/dist/TransactionController.cjs.map +1 -1
  3. package/dist/TransactionController.d.cts +14 -35
  4. package/dist/TransactionController.d.cts.map +1 -1
  5. package/dist/TransactionController.d.mts +14 -35
  6. package/dist/TransactionController.d.mts.map +1 -1
  7. package/dist/TransactionController.mjs +21 -61
  8. package/dist/TransactionController.mjs.map +1 -1
  9. package/dist/helpers/AccountsApiRemoteTransactionSource.cjs +3 -8
  10. package/dist/helpers/AccountsApiRemoteTransactionSource.cjs.map +1 -1
  11. package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts.map +1 -1
  12. package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts.map +1 -1
  13. package/dist/helpers/AccountsApiRemoteTransactionSource.mjs +3 -8
  14. package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +1 -1
  15. package/dist/helpers/IncomingTransactionHelper.cjs +4 -12
  16. package/dist/helpers/IncomingTransactionHelper.cjs.map +1 -1
  17. package/dist/helpers/IncomingTransactionHelper.d.cts +1 -3
  18. package/dist/helpers/IncomingTransactionHelper.d.cts.map +1 -1
  19. package/dist/helpers/IncomingTransactionHelper.d.mts +1 -3
  20. package/dist/helpers/IncomingTransactionHelper.d.mts.map +1 -1
  21. package/dist/helpers/IncomingTransactionHelper.mjs +4 -12
  22. package/dist/helpers/IncomingTransactionHelper.mjs.map +1 -1
  23. package/dist/helpers/PendingTransactionTracker.cjs +7 -7
  24. package/dist/helpers/PendingTransactionTracker.cjs.map +1 -1
  25. package/dist/helpers/PendingTransactionTracker.d.cts +2 -1
  26. package/dist/helpers/PendingTransactionTracker.d.cts.map +1 -1
  27. package/dist/helpers/PendingTransactionTracker.d.mts +2 -1
  28. package/dist/helpers/PendingTransactionTracker.d.mts.map +1 -1
  29. package/dist/helpers/PendingTransactionTracker.mjs +7 -7
  30. package/dist/helpers/PendingTransactionTracker.mjs.map +1 -1
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.cts +1 -1
  33. package/dist/index.d.cts.map +1 -1
  34. package/dist/index.d.mts +1 -1
  35. package/dist/index.d.mts.map +1 -1
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/types.cjs.map +1 -1
  38. package/dist/types.d.cts +8 -4
  39. package/dist/types.d.cts.map +1 -1
  40. package/dist/types.d.mts +8 -4
  41. package/dist/types.d.mts.map +1 -1
  42. package/dist/types.mjs.map +1 -1
  43. package/package.json +1 -1
@@ -1,6 +1,4 @@
1
1
  "use strict";
2
- /* istanbul ignore file */
3
- // FIXME - remove above ignore
4
2
  var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
5
3
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
6
4
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
@@ -15,7 +13,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
15
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
16
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
17
15
  };
18
- 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_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;
19
17
  Object.defineProperty(exports, "__esModule", { value: true });
20
18
  exports.TransactionController = exports.ApprovalState = exports.SPEED_UP_RATE = exports.CANCEL_RATE = void 0;
21
19
  const base_controller_1 = require("@metamask/base-controller");
@@ -173,7 +171,6 @@ class TransactionController extends base_controller_1.BaseController {
173
171
  this.approvingTransactionIds = new Set();
174
172
  _TransactionController_methodDataHelper.set(this, void 0);
175
173
  this.mutex = new async_mutex_1.Mutex();
176
- _TransactionController_incomingTransactionChainIds.set(this, new Set());
177
174
  _TransactionController_incomingTransactionHelper.set(this, void 0);
178
175
  _TransactionController_incomingTransactionOptions.set(this, void 0);
179
176
  _TransactionController_pendingTransactionOptions.set(this, void 0);
@@ -213,9 +210,10 @@ class TransactionController extends base_controller_1.BaseController {
213
210
  __classPrivateFieldSet(this, _TransactionController_trace, trace ?? ((_request, fn) => fn?.()), "f");
214
211
  this.afterSign = hooks?.afterSign ?? (() => true);
215
212
  this.beforeCheckPendingTransaction =
216
- /* istanbul ignore next */
217
- hooks?.beforeCheckPendingTransaction ?? (() => Promise.resolve(true));
218
- this.beforePublish = hooks?.beforePublish ?? (() => Promise.resolve(true));
213
+ hooks?.beforeCheckPendingTransaction ??
214
+ /* istanbul ignore next */
215
+ (() => true);
216
+ this.beforePublish = hooks?.beforePublish ?? (() => true);
219
217
  this.getAdditionalSignArguments =
220
218
  hooks?.getAdditionalSignArguments ?? (() => []);
221
219
  this.publish =
@@ -267,7 +265,6 @@ class TransactionController extends base_controller_1.BaseController {
267
265
  };
268
266
  __classPrivateFieldSet(this, _TransactionController_incomingTransactionHelper, new IncomingTransactionHelper_1.IncomingTransactionHelper({
269
267
  getCache: () => this.state.lastFetchedBlockNumbers,
270
- getChainIds: () => [...__classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f")],
271
268
  getCurrentAccount: () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSelectedAccount).call(this),
272
269
  getLocalTransactions: () => this.state.transactions,
273
270
  includeTokenTransfers: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").includeTokenTransfers,
@@ -291,10 +288,6 @@ class TransactionController extends base_controller_1.BaseController {
291
288
  });
292
289
  this.onBootCleanup();
293
290
  __classPrivateFieldGet(this, _TransactionController_checkForPendingTransactionAndStartPolling, "f").call(this);
294
- this.registerMessageHandlers();
295
- }
296
- registerMessageHandlers() {
297
- this.messagingSystem.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
298
291
  }
299
292
  /**
300
293
  * Stops polling and removes listeners to prepare the controller for garbage collection.
@@ -468,21 +461,13 @@ class TransactionController extends base_controller_1.BaseController {
468
461
  transactionMeta: addedTransactionMeta,
469
462
  };
470
463
  }
471
- startIncomingTransactionPolling(chainIds) {
472
- chainIds.forEach((chainId) => __classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").add(chainId));
464
+ startIncomingTransactionPolling() {
473
465
  __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").start();
474
466
  }
475
- stopIncomingTransactionPolling(chainIds) {
476
- chainIds?.forEach((chainId) => __classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").delete(chainId));
477
- if (!chainIds) {
478
- __classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").clear();
479
- }
480
- if (__classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").size === 0) {
481
- __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").stop();
482
- }
467
+ stopIncomingTransactionPolling() {
468
+ __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").stop();
483
469
  }
484
- async updateIncomingTransactions(chainIds) {
485
- chainIds.forEach((chainId) => __classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").add(chainId));
470
+ async updateIncomingTransactions() {
486
471
  await __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").update();
487
472
  }
488
473
  /**
@@ -657,7 +642,6 @@ class TransactionController extends base_controller_1.BaseController {
657
642
  this.onTransactionStatusChange(updatedTransactionMeta);
658
643
  // Intentional given potential duration of process.
659
644
  this.updatePostBalance(updatedTransactionMeta).catch((error) => {
660
- /* istanbul ignore next */
661
645
  (0, logger_1.projectLogger)('Error while updating post balance', error);
662
646
  throw error;
663
647
  });
@@ -901,23 +885,20 @@ class TransactionController extends base_controller_1.BaseController {
901
885
  /**
902
886
  * Update a custodial transaction.
903
887
  *
904
- * @param payload - The custodial transaction options to update.
905
- * @param payload.transactionId - The ID of the transaction to update.
906
- * @param payload.errorMessage - The error message to be assigned in case transaction status update to failed.
907
- * @param payload.hash - The new hash value to be assigned.
908
- * @param payload.status - The new status value to be assigned.
909
- * @param payload.gasLimit - The new gas limit value to be assigned
910
- * @param payload.gasPrice - The new gas price value to be assigned
911
- * @param payload.maxFeePerGas - The new max fee per gas value to be assigned
912
- * @param payload.maxPriorityFeePerGas - The new max priority fee per gas value to be assigned
913
- * @param payload.nonce - The new nonce value to be assigned
914
- * @param payload.type - The tranasction type (hardfork) to be assigned
888
+ * @param transactionId - The ID of the transaction to update.
889
+ * @param options - The custodial transaction options to update.
890
+ * @param options.errorMessage - The error message to be assigned in case transaction status update to failed.
891
+ * @param options.hash - The new hash value to be assigned.
892
+ * @param options.status - The new status value to be assigned.
915
893
  */
916
- updateCustodialTransaction({ transactionId, errorMessage, hash, status, gasLimit, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, type, }) {
894
+ updateCustodialTransaction(transactionId, { errorMessage, hash, status, }) {
917
895
  const transactionMeta = this.getTransaction(transactionId);
918
896
  if (!transactionMeta) {
919
897
  throw new Error(`Cannot update custodial transaction as no transaction metadata found`);
920
898
  }
899
+ if (!transactionMeta.custodyId) {
900
+ throw new Error('Transaction must be a custodian transaction');
901
+ }
921
902
  if (status &&
922
903
  ![
923
904
  types_1.TransactionStatus.submitted,
@@ -933,30 +914,6 @@ class TransactionController extends base_controller_1.BaseController {
933
914
  if (updatedTransactionMeta.status === types_1.TransactionStatus.failed) {
934
915
  updatedTransactionMeta.error = (0, utils_2.normalizeTxError)(new Error(errorMessage));
935
916
  }
936
- if (gasLimit) {
937
- updatedTransactionMeta.txParams.gasLimit = gasLimit;
938
- }
939
- if (gasPrice) {
940
- updatedTransactionMeta.txParams.gasPrice = gasPrice;
941
- }
942
- if (maxFeePerGas) {
943
- updatedTransactionMeta.txParams.maxFeePerGas = maxFeePerGas;
944
- }
945
- if (maxPriorityFeePerGas) {
946
- updatedTransactionMeta.txParams.maxPriorityFeePerGas =
947
- maxPriorityFeePerGas;
948
- }
949
- if (type) {
950
- updatedTransactionMeta.txParams.type = type;
951
- // If the type was reverted to legacy, we need to remove the maxFeePerGas and maxPriorityFeePerGas values
952
- if (type === types_1.TransactionEnvelopeType.legacy) {
953
- updatedTransactionMeta.txParams.maxFeePerGas = undefined;
954
- updatedTransactionMeta.txParams.maxPriorityFeePerGas = undefined;
955
- }
956
- }
957
- if (nonce) {
958
- updatedTransactionMeta.txParams.nonce = nonce;
959
- }
960
917
  this.updateTransaction(updatedTransactionMeta, `${controllerName}:updateCustodialTransaction - Custodial transaction updated`);
961
918
  if ([types_1.TransactionStatus.submitted, types_1.TransactionStatus.failed].includes(status)) {
962
919
  this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
@@ -1345,7 +1302,7 @@ class TransactionController extends base_controller_1.BaseController {
1345
1302
  });
1346
1303
  this.onTransactionStatusChange(transactionMeta);
1347
1304
  const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => this.signTransaction(transactionMeta));
1348
- if (!(await this.beforePublish(transactionMeta))) {
1305
+ if (!this.beforePublish(transactionMeta)) {
1349
1306
  (0, logger_1.projectLogger)('Skipping publishing transaction based on hook');
1350
1307
  this.messagingSystem.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
1351
1308
  return ApprovalState.SkippedViaBeforePublishHook;
@@ -1819,7 +1776,7 @@ class TransactionController extends base_controller_1.BaseController {
1819
1776
  }
1820
1777
  }
1821
1778
  exports.TransactionController = TransactionController;
1822
- _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, }) {
1779
+ _TransactionController_internalEvents = new WeakMap(), _TransactionController_methodDataHelper = 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, }) {
1823
1780
  // If transaction is found for same action id, do not create a new transaction.
1824
1781
  if (this.getTransactionWithActionId(actionId)) {
1825
1782
  return;
@@ -1928,6 +1885,7 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
1928
1885
  }),
1929
1886
  hooks: {
1930
1887
  beforeCheckPendingTransaction: this.beforeCheckPendingTransaction.bind(this),
1888
+ beforePublish: this.beforePublish.bind(this),
1931
1889
  },
1932
1890
  });
1933
1891
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addPendingTransactionTrackerListeners).call(this, pendingTransactionTracker);