@metamask-previews/transaction-controller 39.1.0-preview-fd7ad7de → 39.1.0-preview-690da12e

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 (47) hide show
  1. package/dist/TransactionController.cjs +25 -30
  2. package/dist/TransactionController.cjs.map +1 -1
  3. package/dist/TransactionController.d.cts +73 -4
  4. package/dist/TransactionController.d.cts.map +1 -1
  5. package/dist/TransactionController.d.mts +73 -4
  6. package/dist/TransactionController.d.mts.map +1 -1
  7. package/dist/TransactionController.mjs +25 -30
  8. package/dist/TransactionController.mjs.map +1 -1
  9. package/dist/api/accounts-api.cjs +7 -24
  10. package/dist/api/accounts-api.cjs.map +1 -1
  11. package/dist/api/accounts-api.d.cts +1 -7
  12. package/dist/api/accounts-api.d.cts.map +1 -1
  13. package/dist/api/accounts-api.d.mts +1 -7
  14. package/dist/api/accounts-api.d.mts.map +1 -1
  15. package/dist/api/accounts-api.mjs +6 -22
  16. package/dist/api/accounts-api.mjs.map +1 -1
  17. package/dist/helpers/AccountsApiRemoteTransactionSource.cjs +77 -31
  18. package/dist/helpers/AccountsApiRemoteTransactionSource.cjs.map +1 -1
  19. package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts +1 -0
  20. package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts.map +1 -1
  21. package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts +1 -0
  22. package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts.map +1 -1
  23. package/dist/helpers/AccountsApiRemoteTransactionSource.mjs +75 -29
  24. package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +1 -1
  25. package/dist/helpers/IncomingTransactionHelper.cjs +24 -45
  26. package/dist/helpers/IncomingTransactionHelper.cjs.map +1 -1
  27. package/dist/helpers/IncomingTransactionHelper.d.cts +6 -8
  28. package/dist/helpers/IncomingTransactionHelper.d.cts.map +1 -1
  29. package/dist/helpers/IncomingTransactionHelper.d.mts +6 -8
  30. package/dist/helpers/IncomingTransactionHelper.d.mts.map +1 -1
  31. package/dist/helpers/IncomingTransactionHelper.mjs +24 -45
  32. package/dist/helpers/IncomingTransactionHelper.mjs.map +1 -1
  33. package/dist/index.cjs +3 -1
  34. package/dist/index.cjs.map +1 -1
  35. package/dist/index.d.cts +1 -0
  36. package/dist/index.d.cts.map +1 -1
  37. package/dist/index.d.mts +1 -0
  38. package/dist/index.d.mts.map +1 -1
  39. package/dist/index.mjs +1 -0
  40. package/dist/index.mjs.map +1 -1
  41. package/dist/types.cjs.map +1 -1
  42. package/dist/types.d.cts +14 -10
  43. package/dist/types.d.cts.map +1 -1
  44. package/dist/types.d.mts +14 -10
  45. package/dist/types.d.mts.map +1 -1
  46. package/dist/types.mjs.map +1 -1
  47. package/package.json +1 -1
@@ -70,7 +70,7 @@ const metadata = {
70
70
  persist: true,
71
71
  anonymous: false,
72
72
  },
73
- lastFetchedTimestamps: {
73
+ lastFetchedBlockNumbers: {
74
74
  persist: true,
75
75
  anonymous: false,
76
76
  },
@@ -111,7 +111,7 @@ function getDefaultTransactionControllerState() {
111
111
  return {
112
112
  methodData: {},
113
113
  transactions: [],
114
- lastFetchedTimestamps: {},
114
+ lastFetchedBlockNumbers: {},
115
115
  submitHistory: [],
116
116
  };
117
117
  }
@@ -599,12 +599,12 @@ class TransactionController extends base_controller_1.BaseController {
599
599
  if (ignoreNetwork && !address) {
600
600
  this.update((state) => {
601
601
  state.transactions = [];
602
- state.lastFetchedTimestamps = {};
602
+ state.lastFetchedBlockNumbers = {};
603
603
  });
604
604
  return;
605
605
  }
606
606
  const currentChainId = this.getChainId();
607
- const { lastFetchedTimestamps, transactions } = this.state;
607
+ const { transactions } = this.state;
608
608
  const newTransactions = transactions.filter((tx) => {
609
609
  const { chainId, txParams } = tx;
610
610
  const isMatchingNetwork = ignoreNetwork || chainId === currentChainId;
@@ -619,20 +619,8 @@ class TransactionController extends base_controller_1.BaseController {
619
619
  }
620
620
  return !isMatchingAddress;
621
621
  });
622
- const newLastFetchedTimestamps = Object.keys(lastFetchedTimestamps).reduce((acc, key) => {
623
- const timestamp = lastFetchedTimestamps[key];
624
- const isMatchingNetwork = ignoreNetwork || key.startsWith(`${currentChainId}#`);
625
- const isMatchingAddress = !address || key.endsWith(`#${address.toLowerCase()}`);
626
- if (!isMatchingNetwork || !isMatchingAddress) {
627
- acc[key] = timestamp;
628
- }
629
- else {
630
- (0, logger_1.projectLogger)('Removing last fetched timestamp', { key, timestamp });
631
- }
632
- return acc;
633
- }, {});
634
622
  this.update((state) => {
635
- state.lastFetchedTimestamps = newLastFetchedTimestamps;
623
+ state.lastFetchedBlockNumbers = {};
636
624
  state.transactions = this.trimTransactionsForState(newTransactions);
637
625
  });
638
626
  }
@@ -1523,20 +1511,20 @@ class TransactionController extends base_controller_1.BaseController {
1523
1511
  };
1524
1512
  return common_1.Common.custom(customChainParams);
1525
1513
  }
1526
- onIncomingTransactions(incomingTransactions) {
1514
+ onIncomingTransactions(transactions) {
1527
1515
  this.update((state) => {
1528
1516
  const { transactions: currentTransactions } = state;
1517
+ const newTransactions = transactions.filter((tx) => !currentTransactions.some((currentTx) => currentTx.hash?.toLowerCase() === tx.hash?.toLowerCase() &&
1518
+ currentTx.type === types_1.TransactionType.incoming));
1519
+ (0, logger_1.projectLogger)('Adding incoming transactions to state', newTransactions.length, {
1520
+ newTransactions,
1521
+ });
1529
1522
  state.transactions = this.trimTransactionsForState([
1530
- ...incomingTransactions,
1523
+ ...newTransactions,
1531
1524
  ...currentTransactions,
1532
1525
  ]);
1533
1526
  });
1534
- this.messagingSystem.publish(`${controllerName}:incomingTransactionsReceived`, incomingTransactions);
1535
- }
1536
- onUpdatedLastFetchedTimestamp({ key, timestamp, }) {
1537
- this.update((state) => {
1538
- state.lastFetchedTimestamps[key] = timestamp;
1539
- });
1527
+ this.messagingSystem.publish(`${controllerName}:incomingTransactionsReceived`, transactions);
1540
1528
  }
1541
1529
  generateDappSuggestedGasFees(txParams, origin) {
1542
1530
  if (!origin || origin === controller_utils_1.ORIGIN_METAMASK) {
@@ -1864,13 +1852,21 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
1864
1852
  getConfirmedTransactions: this.getNonceTrackerTransactions.bind(this, types_1.TransactionStatus.confirmed),
1865
1853
  });
1866
1854
  }, _TransactionController_createIncomingTransactionHelper = function _TransactionController_createIncomingTransactionHelper({ chainId, } = {}) {
1855
+ const updateCache = (fn) => {
1856
+ this.update((state) => {
1857
+ fn(state.lastFetchedBlockNumbers);
1858
+ });
1859
+ };
1867
1860
  const incomingTransactionHelper = new IncomingTransactionHelper_1.IncomingTransactionHelper({
1868
1861
  getCurrentAccount: () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSelectedAccount).call(this),
1869
- getLastFetchedTimestamps: () => this.state.lastFetchedTimestamps,
1862
+ getCache: () => this.state.lastFetchedBlockNumbers,
1870
1863
  getChainIds: chainId ? () => [chainId] : () => [this.getChainId()],
1864
+ includeTokenTransfers: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").includeTokenTransfers,
1871
1865
  isEnabled: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").isEnabled,
1866
+ queryEntireHistory: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").queryEntireHistory,
1872
1867
  remoteTransactionSource: new AccountsApiRemoteTransactionSource_1.AccountsApiRemoteTransactionSource(),
1873
- transactionLimit: __classPrivateFieldGet(this, _TransactionController_transactionHistoryLimit, "f"),
1868
+ updateCache,
1869
+ updateTransactions: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").updateTransactions,
1874
1870
  });
1875
1871
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addIncomingTransactionHelperListeners).call(this, incomingTransactionHelper);
1876
1872
  return incomingTransactionHelper;
@@ -1903,11 +1899,10 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
1903
1899
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removeIncomingTransactionHelperListeners).call(this, this.incomingTransactionHelper);
1904
1900
  __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").stopAllTracking();
1905
1901
  }, _TransactionController_removeIncomingTransactionHelperListeners = function _TransactionController_removeIncomingTransactionHelperListeners(incomingTransactionHelper) {
1906
- incomingTransactionHelper.hub.removeAllListeners('incoming-transactions');
1902
+ incomingTransactionHelper.hub.removeAllListeners('transactions');
1907
1903
  incomingTransactionHelper.hub.removeAllListeners('updated-last-fetched-timestamp');
1908
1904
  }, _TransactionController_addIncomingTransactionHelperListeners = function _TransactionController_addIncomingTransactionHelperListeners(incomingTransactionHelper) {
1909
- incomingTransactionHelper.hub.on('incoming-transactions', this.onIncomingTransactions.bind(this));
1910
- incomingTransactionHelper.hub.on('updated-last-fetched-timestamp', this.onUpdatedLastFetchedTimestamp.bind(this));
1905
+ incomingTransactionHelper.hub.on('transactions', this.onIncomingTransactions.bind(this));
1911
1906
  }, _TransactionController_removePendingTransactionTrackerListeners = function _TransactionController_removePendingTransactionTrackerListeners(pendingTransactionTracker) {
1912
1907
  pendingTransactionTracker.hub.removeAllListeners('transaction-confirmed');
1913
1908
  pendingTransactionTracker.hub.removeAllListeners('transaction-dropped');