@metamask-previews/transaction-controller 38.3.0-preview-7692db0d → 38.3.0-preview-de5d2fda
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.
- package/dist/TransactionController.cjs +44 -47
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +8 -8
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +8 -8
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +44 -47
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/api/accounts-api.cjs +61 -0
- package/dist/api/accounts-api.cjs.map +1 -0
- package/dist/api/accounts-api.d.cts +56 -0
- package/dist/api/accounts-api.d.cts.map +1 -0
- package/dist/api/accounts-api.d.mts +56 -0
- package/dist/api/accounts-api.d.mts.map +1 -0
- package/dist/api/accounts-api.mjs +56 -0
- package/dist/api/accounts-api.mjs.map +1 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.cjs +135 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.cjs.map +1 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts +11 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts.map +1 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts +11 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts.map +1 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.mjs +135 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +1 -0
- package/dist/helpers/IncomingTransactionHelper.cjs +96 -134
- package/dist/helpers/IncomingTransactionHelper.cjs.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.cts +7 -12
- package/dist/helpers/IncomingTransactionHelper.d.cts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.mts +7 -12
- package/dist/helpers/IncomingTransactionHelper.d.mts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.mjs +96 -134
- package/dist/helpers/IncomingTransactionHelper.mjs.map +1 -1
- package/dist/helpers/MultichainTrackingHelper.cjs +3 -66
- package/dist/helpers/MultichainTrackingHelper.cjs.map +1 -1
- package/dist/helpers/MultichainTrackingHelper.d.cts +1 -14
- package/dist/helpers/MultichainTrackingHelper.d.cts.map +1 -1
- package/dist/helpers/MultichainTrackingHelper.d.mts +1 -14
- package/dist/helpers/MultichainTrackingHelper.d.mts.map +1 -1
- package/dist/helpers/MultichainTrackingHelper.mjs +3 -66
- package/dist/helpers/MultichainTrackingHelper.mjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.cjs +7 -9
- package/dist/helpers/PendingTransactionTracker.cjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.cts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.mts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.mjs +7 -9
- package/dist/helpers/PendingTransactionTracker.mjs.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +7 -8
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +7 -8
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/helpers/EtherscanRemoteTransactionSource.cjs +0 -157
- package/dist/helpers/EtherscanRemoteTransactionSource.cjs.map +0 -1
- package/dist/helpers/EtherscanRemoteTransactionSource.d.cts +0 -16
- package/dist/helpers/EtherscanRemoteTransactionSource.d.cts.map +0 -1
- package/dist/helpers/EtherscanRemoteTransactionSource.d.mts +0 -16
- package/dist/helpers/EtherscanRemoteTransactionSource.d.mts.map +0 -1
- package/dist/helpers/EtherscanRemoteTransactionSource.mjs +0 -157
- package/dist/helpers/EtherscanRemoteTransactionSource.mjs.map +0 -1
- package/dist/helpers/TransactionPoller.cjs +0 -133
- package/dist/helpers/TransactionPoller.cjs.map +0 -1
- package/dist/helpers/TransactionPoller.d.cts +0 -31
- package/dist/helpers/TransactionPoller.d.cts.map +0 -1
- package/dist/helpers/TransactionPoller.d.mts +0 -31
- package/dist/helpers/TransactionPoller.d.mts.map +0 -1
- package/dist/helpers/TransactionPoller.mjs +0 -130
- package/dist/helpers/TransactionPoller.mjs.map +0 -1
- package/dist/utils/etherscan.cjs +0 -115
- package/dist/utils/etherscan.cjs.map +0 -1
- package/dist/utils/etherscan.d.cts +0 -74
- package/dist/utils/etherscan.d.cts.map +0 -1
- package/dist/utils/etherscan.d.mts +0 -74
- package/dist/utils/etherscan.d.mts.map +0 -1
- package/dist/utils/etherscan.mjs +0 -109
- package/dist/utils/etherscan.mjs.map +0 -1
|
@@ -36,7 +36,7 @@ const LineaGasFeeFlow_1 = require("./gas-flows/LineaGasFeeFlow.cjs");
|
|
|
36
36
|
const OptimismLayer1GasFeeFlow_1 = require("./gas-flows/OptimismLayer1GasFeeFlow.cjs");
|
|
37
37
|
const ScrollLayer1GasFeeFlow_1 = require("./gas-flows/ScrollLayer1GasFeeFlow.cjs");
|
|
38
38
|
const TestGasFeeFlow_1 = require("./gas-flows/TestGasFeeFlow.cjs");
|
|
39
|
-
const
|
|
39
|
+
const AccountsApiRemoteTransactionSource_1 = require("./helpers/AccountsApiRemoteTransactionSource.cjs");
|
|
40
40
|
const GasFeePoller_1 = require("./helpers/GasFeePoller.cjs");
|
|
41
41
|
const IncomingTransactionHelper_1 = require("./helpers/IncomingTransactionHelper.cjs");
|
|
42
42
|
const MultichainTrackingHelper_1 = require("./helpers/MultichainTrackingHelper.cjs");
|
|
@@ -70,7 +70,7 @@ const metadata = {
|
|
|
70
70
|
persist: true,
|
|
71
71
|
anonymous: false,
|
|
72
72
|
},
|
|
73
|
-
|
|
73
|
+
lastFetchedTimestamps: {
|
|
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
|
-
|
|
114
|
+
lastFetchedTimestamps: {},
|
|
115
115
|
submitHistory: [],
|
|
116
116
|
};
|
|
117
117
|
}
|
|
@@ -263,30 +263,20 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
263
263
|
isMultichainEnabled,
|
|
264
264
|
provider,
|
|
265
265
|
nonceTracker: this.nonceTracker,
|
|
266
|
-
incomingTransactionOptions: incomingTransactions,
|
|
267
266
|
findNetworkClientIdByChainId,
|
|
268
267
|
getNetworkClientById: ((networkClientId) => {
|
|
269
268
|
return this.messagingSystem.call(`NetworkController:getNetworkClientById`, networkClientId);
|
|
270
269
|
}),
|
|
271
270
|
getNetworkClientRegistry,
|
|
272
|
-
removeIncomingTransactionHelperListeners: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removeIncomingTransactionHelperListeners).bind(this),
|
|
273
271
|
removePendingTransactionTrackerListeners: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removePendingTransactionTrackerListeners).bind(this),
|
|
274
272
|
createNonceTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createNonceTracker).bind(this),
|
|
275
|
-
createIncomingTransactionHelper: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createIncomingTransactionHelper).bind(this),
|
|
276
273
|
createPendingTransactionTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).bind(this),
|
|
277
274
|
onNetworkStateChange: (listener) => {
|
|
278
275
|
this.messagingSystem.subscribe('NetworkController:stateChange', listener);
|
|
279
276
|
},
|
|
280
277
|
}), "f");
|
|
281
278
|
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").initialize();
|
|
282
|
-
|
|
283
|
-
apiKeysByChainId: incomingTransactions.etherscanApiKeysByChainId,
|
|
284
|
-
includeTokenTransfers: incomingTransactions.includeTokenTransfers,
|
|
285
|
-
});
|
|
286
|
-
this.incomingTransactionHelper = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createIncomingTransactionHelper).call(this, {
|
|
287
|
-
blockTracker,
|
|
288
|
-
etherscanRemoteTransactionSource,
|
|
289
|
-
});
|
|
279
|
+
this.incomingTransactionHelper = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createIncomingTransactionHelper).call(this);
|
|
290
280
|
this.pendingTransactionTracker = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).call(this, {
|
|
291
281
|
provider,
|
|
292
282
|
blockTracker,
|
|
@@ -463,27 +453,20 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
463
453
|
startIncomingTransactionPolling(networkClientIds = []) {
|
|
464
454
|
if (networkClientIds.length === 0) {
|
|
465
455
|
this.incomingTransactionHelper.start();
|
|
466
|
-
return;
|
|
467
456
|
}
|
|
468
|
-
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").startIncomingTransactionPolling(networkClientIds);
|
|
469
457
|
}
|
|
470
458
|
stopIncomingTransactionPolling(networkClientIds = []) {
|
|
471
459
|
if (networkClientIds.length === 0) {
|
|
472
460
|
this.incomingTransactionHelper.stop();
|
|
473
|
-
return;
|
|
474
461
|
}
|
|
475
|
-
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").stopIncomingTransactionPolling(networkClientIds);
|
|
476
462
|
}
|
|
477
463
|
stopAllIncomingTransactionPolling() {
|
|
478
464
|
this.incomingTransactionHelper.stop();
|
|
479
|
-
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").stopAllIncomingTransactionPolling();
|
|
480
465
|
}
|
|
481
466
|
async updateIncomingTransactions(networkClientIds = []) {
|
|
482
467
|
if (networkClientIds.length === 0) {
|
|
483
468
|
await this.incomingTransactionHelper.update();
|
|
484
|
-
return;
|
|
485
469
|
}
|
|
486
|
-
await __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").updateIncomingTransactions(networkClientIds);
|
|
487
470
|
}
|
|
488
471
|
/**
|
|
489
472
|
* Attempts to cancel a transaction based on its ID by setting its status to "rejected"
|
|
@@ -611,23 +594,45 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
611
594
|
* wiped on current network.
|
|
612
595
|
*/
|
|
613
596
|
wipeTransactions(ignoreNetwork, address) {
|
|
597
|
+
(0, logger_1.projectLogger)('Wiping transactions', { ignoreNetwork, address });
|
|
614
598
|
/* istanbul ignore next */
|
|
615
599
|
if (ignoreNetwork && !address) {
|
|
616
600
|
this.update((state) => {
|
|
617
601
|
state.transactions = [];
|
|
602
|
+
state.lastFetchedTimestamps = {};
|
|
618
603
|
});
|
|
619
604
|
return;
|
|
620
605
|
}
|
|
621
606
|
const currentChainId = this.getChainId();
|
|
622
|
-
const
|
|
607
|
+
const { lastFetchedTimestamps, transactions } = this.state;
|
|
608
|
+
const newTransactions = transactions.filter((tx) => {
|
|
609
|
+
const { chainId, txParams } = tx;
|
|
623
610
|
const isMatchingNetwork = ignoreNetwork || chainId === currentChainId;
|
|
624
611
|
if (!isMatchingNetwork) {
|
|
625
612
|
return true;
|
|
626
613
|
}
|
|
627
|
-
const isMatchingAddress = !address ||
|
|
614
|
+
const isMatchingAddress = !address ||
|
|
615
|
+
txParams.from?.toLowerCase() === address.toLowerCase() ||
|
|
616
|
+
txParams.to?.toLowerCase() === address.toLowerCase();
|
|
617
|
+
if (isMatchingAddress) {
|
|
618
|
+
(0, logger_1.projectLogger)('Removing transaction', tx);
|
|
619
|
+
}
|
|
628
620
|
return !isMatchingAddress;
|
|
629
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
|
+
}, {});
|
|
630
634
|
this.update((state) => {
|
|
635
|
+
state.lastFetchedTimestamps = newLastFetchedTimestamps;
|
|
631
636
|
state.transactions = this.trimTransactionsForState(newTransactions);
|
|
632
637
|
});
|
|
633
638
|
}
|
|
@@ -1518,24 +1523,20 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1518
1523
|
};
|
|
1519
1524
|
return common_1.Common.custom(customChainParams);
|
|
1520
1525
|
}
|
|
1521
|
-
onIncomingTransactions(
|
|
1526
|
+
onIncomingTransactions(incomingTransactions) {
|
|
1522
1527
|
this.update((state) => {
|
|
1523
1528
|
const { transactions: currentTransactions } = state;
|
|
1524
|
-
|
|
1525
|
-
...
|
|
1526
|
-
...currentTransactions
|
|
1527
|
-
|
|
1528
|
-
return updatedTransaction ?? originalTransaction;
|
|
1529
|
-
}),
|
|
1530
|
-
];
|
|
1531
|
-
state.transactions = this.trimTransactionsForState(updatedTransactions);
|
|
1529
|
+
state.transactions = this.trimTransactionsForState([
|
|
1530
|
+
...incomingTransactions,
|
|
1531
|
+
...currentTransactions,
|
|
1532
|
+
]);
|
|
1532
1533
|
});
|
|
1534
|
+
this.messagingSystem.publish(`${controllerName}:incomingTransactionsReceived`, incomingTransactions);
|
|
1533
1535
|
}
|
|
1534
|
-
|
|
1536
|
+
onUpdatedLastFetchedTimestamp({ key, timestamp, }) {
|
|
1535
1537
|
this.update((state) => {
|
|
1536
|
-
state.
|
|
1538
|
+
state.lastFetchedTimestamps[key] = timestamp;
|
|
1537
1539
|
});
|
|
1538
|
-
this.messagingSystem.publish(`${controllerName}:incomingTransactionBlockReceived`, blockNumber);
|
|
1539
1540
|
}
|
|
1540
1541
|
generateDappSuggestedGasFees(txParams, origin) {
|
|
1541
1542
|
if (!origin || origin === controller_utils_1.ORIGIN_METAMASK) {
|
|
@@ -1862,18 +1863,14 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
|
|
|
1862
1863
|
getPendingTransactions: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getNonceTrackerPendingTransactions).bind(this, chainId),
|
|
1863
1864
|
getConfirmedTransactions: this.getNonceTrackerTransactions.bind(this, types_1.TransactionStatus.confirmed),
|
|
1864
1865
|
});
|
|
1865
|
-
}, _TransactionController_createIncomingTransactionHelper = function _TransactionController_createIncomingTransactionHelper({
|
|
1866
|
+
}, _TransactionController_createIncomingTransactionHelper = function _TransactionController_createIncomingTransactionHelper({ chainId, } = {}) {
|
|
1866
1867
|
const incomingTransactionHelper = new IncomingTransactionHelper_1.IncomingTransactionHelper({
|
|
1867
|
-
blockTracker,
|
|
1868
1868
|
getCurrentAccount: () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSelectedAccount).call(this),
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
getChainId: chainId ? () => chainId : this.getChainId.bind(this),
|
|
1869
|
+
getLastFetchedTimestamps: () => this.state.lastFetchedTimestamps,
|
|
1870
|
+
getChainIds: chainId ? () => [chainId] : () => [this.getChainId()],
|
|
1872
1871
|
isEnabled: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").isEnabled,
|
|
1873
|
-
|
|
1874
|
-
remoteTransactionSource: etherscanRemoteTransactionSource,
|
|
1872
|
+
remoteTransactionSource: new AccountsApiRemoteTransactionSource_1.AccountsApiRemoteTransactionSource(),
|
|
1875
1873
|
transactionLimit: __classPrivateFieldGet(this, _TransactionController_transactionHistoryLimit, "f"),
|
|
1876
|
-
updateTransactions: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").updateTransactions,
|
|
1877
1874
|
});
|
|
1878
1875
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addIncomingTransactionHelperListeners).call(this, incomingTransactionHelper);
|
|
1879
1876
|
return incomingTransactionHelper;
|
|
@@ -1906,11 +1903,11 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
|
|
|
1906
1903
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removeIncomingTransactionHelperListeners).call(this, this.incomingTransactionHelper);
|
|
1907
1904
|
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").stopAllTracking();
|
|
1908
1905
|
}, _TransactionController_removeIncomingTransactionHelperListeners = function _TransactionController_removeIncomingTransactionHelperListeners(incomingTransactionHelper) {
|
|
1909
|
-
incomingTransactionHelper.hub.removeAllListeners('transactions');
|
|
1910
|
-
incomingTransactionHelper.hub.removeAllListeners('
|
|
1906
|
+
incomingTransactionHelper.hub.removeAllListeners('incoming-transactions');
|
|
1907
|
+
incomingTransactionHelper.hub.removeAllListeners('updated-last-fetched-timestamp');
|
|
1911
1908
|
}, _TransactionController_addIncomingTransactionHelperListeners = function _TransactionController_addIncomingTransactionHelperListeners(incomingTransactionHelper) {
|
|
1912
|
-
incomingTransactionHelper.hub.on('transactions', this.onIncomingTransactions.bind(this));
|
|
1913
|
-
incomingTransactionHelper.hub.on('
|
|
1909
|
+
incomingTransactionHelper.hub.on('incoming-transactions', this.onIncomingTransactions.bind(this));
|
|
1910
|
+
incomingTransactionHelper.hub.on('updated-last-fetched-timestamp', this.onUpdatedLastFetchedTimestamp.bind(this));
|
|
1914
1911
|
}, _TransactionController_removePendingTransactionTrackerListeners = function _TransactionController_removePendingTransactionTrackerListeners(pendingTransactionTracker) {
|
|
1915
1912
|
pendingTransactionTracker.hub.removeAllListeners('transaction-confirmed');
|
|
1916
1913
|
pendingTransactionTracker.hub.removeAllListeners('transaction-dropped');
|