@metamask-previews/transaction-controller 40.1.0-preview-6879d4ce → 40.1.0-preview-8a7e499b
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 +45 -45
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +8 -7
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +8 -7
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +45 -45
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/api/accounts-api.cjs +3 -48
- package/dist/api/accounts-api.cjs.map +1 -1
- package/dist/api/accounts-api.d.cts +0 -49
- package/dist/api/accounts-api.d.cts.map +1 -1
- package/dist/api/accounts-api.d.mts +0 -49
- package/dist/api/accounts-api.d.mts.map +1 -1
- package/dist/api/accounts-api.mjs +2 -46
- package/dist/api/accounts-api.mjs.map +1 -1
- package/dist/constants.cjs +85 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +84 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.mts +84 -0
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.mjs +84 -0
- package/dist/constants.mjs.map +1 -1
- package/dist/helpers/EtherscanRemoteTransactionSource.cjs +157 -0
- package/dist/helpers/EtherscanRemoteTransactionSource.cjs.map +1 -0
- package/dist/helpers/EtherscanRemoteTransactionSource.d.cts +16 -0
- package/dist/helpers/EtherscanRemoteTransactionSource.d.cts.map +1 -0
- package/dist/helpers/EtherscanRemoteTransactionSource.d.mts +16 -0
- package/dist/helpers/EtherscanRemoteTransactionSource.d.mts.map +1 -0
- package/dist/helpers/EtherscanRemoteTransactionSource.mjs +157 -0
- package/dist/helpers/EtherscanRemoteTransactionSource.mjs.map +1 -0
- package/dist/helpers/IncomingTransactionHelper.cjs +139 -68
- package/dist/helpers/IncomingTransactionHelper.cjs.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.cts +16 -9
- package/dist/helpers/IncomingTransactionHelper.d.cts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.mts +16 -9
- package/dist/helpers/IncomingTransactionHelper.d.mts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.mjs +139 -68
- package/dist/helpers/IncomingTransactionHelper.mjs.map +1 -1
- package/dist/helpers/MultichainTrackingHelper.cjs +66 -3
- package/dist/helpers/MultichainTrackingHelper.cjs.map +1 -1
- package/dist/helpers/MultichainTrackingHelper.d.cts +14 -1
- package/dist/helpers/MultichainTrackingHelper.d.cts.map +1 -1
- package/dist/helpers/MultichainTrackingHelper.d.mts +14 -1
- package/dist/helpers/MultichainTrackingHelper.d.mts.map +1 -1
- package/dist/helpers/MultichainTrackingHelper.mjs +66 -3
- package/dist/helpers/MultichainTrackingHelper.mjs.map +1 -1
- package/dist/index.cjs +2 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -2
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +14 -21
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +14 -21
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/etherscan.cjs +115 -0
- package/dist/utils/etherscan.cjs.map +1 -0
- package/dist/utils/etherscan.d.cts +74 -0
- package/dist/utils/etherscan.d.cts.map +1 -0
- package/dist/utils/etherscan.d.mts +74 -0
- package/dist/utils/etherscan.d.mts.map +1 -0
- package/dist/utils/etherscan.mjs +109 -0
- package/dist/utils/etherscan.mjs.map +1 -0
- package/package.json +1 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.cjs +0 -181
- package/dist/helpers/AccountsApiRemoteTransactionSource.cjs.map +0 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts +0 -12
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts.map +0 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts +0 -12
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts.map +0 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.mjs +0 -181
- package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +0 -1
|
@@ -37,7 +37,7 @@ const LineaGasFeeFlow_1 = require("./gas-flows/LineaGasFeeFlow.cjs");
|
|
|
37
37
|
const OptimismLayer1GasFeeFlow_1 = require("./gas-flows/OptimismLayer1GasFeeFlow.cjs");
|
|
38
38
|
const ScrollLayer1GasFeeFlow_1 = require("./gas-flows/ScrollLayer1GasFeeFlow.cjs");
|
|
39
39
|
const TestGasFeeFlow_1 = require("./gas-flows/TestGasFeeFlow.cjs");
|
|
40
|
-
const
|
|
40
|
+
const EtherscanRemoteTransactionSource_1 = require("./helpers/EtherscanRemoteTransactionSource.cjs");
|
|
41
41
|
const GasFeePoller_1 = require("./helpers/GasFeePoller.cjs");
|
|
42
42
|
const IncomingTransactionHelper_1 = require("./helpers/IncomingTransactionHelper.cjs");
|
|
43
43
|
const MultichainTrackingHelper_1 = require("./helpers/MultichainTrackingHelper.cjs");
|
|
@@ -267,20 +267,30 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
267
267
|
isMultichainEnabled,
|
|
268
268
|
provider,
|
|
269
269
|
nonceTracker: this.nonceTracker,
|
|
270
|
+
incomingTransactionOptions: incomingTransactions,
|
|
270
271
|
findNetworkClientIdByChainId,
|
|
271
272
|
getNetworkClientById: ((networkClientId) => {
|
|
272
273
|
return this.messagingSystem.call(`NetworkController:getNetworkClientById`, networkClientId);
|
|
273
274
|
}),
|
|
274
275
|
getNetworkClientRegistry,
|
|
276
|
+
removeIncomingTransactionHelperListeners: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removeIncomingTransactionHelperListeners).bind(this),
|
|
275
277
|
removePendingTransactionTrackerListeners: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removePendingTransactionTrackerListeners).bind(this),
|
|
276
278
|
createNonceTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createNonceTracker).bind(this),
|
|
279
|
+
createIncomingTransactionHelper: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createIncomingTransactionHelper).bind(this),
|
|
277
280
|
createPendingTransactionTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).bind(this),
|
|
278
281
|
onNetworkStateChange: (listener) => {
|
|
279
282
|
this.messagingSystem.subscribe('NetworkController:stateChange', listener);
|
|
280
283
|
},
|
|
281
284
|
}), "f");
|
|
282
285
|
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").initialize();
|
|
283
|
-
|
|
286
|
+
const etherscanRemoteTransactionSource = new EtherscanRemoteTransactionSource_1.EtherscanRemoteTransactionSource({
|
|
287
|
+
apiKeysByChainId: incomingTransactions.etherscanApiKeysByChainId,
|
|
288
|
+
includeTokenTransfers: incomingTransactions.includeTokenTransfers,
|
|
289
|
+
});
|
|
290
|
+
this.incomingTransactionHelper = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createIncomingTransactionHelper).call(this, {
|
|
291
|
+
blockTracker,
|
|
292
|
+
etherscanRemoteTransactionSource,
|
|
293
|
+
});
|
|
284
294
|
this.pendingTransactionTracker = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).call(this, {
|
|
285
295
|
provider,
|
|
286
296
|
blockTracker,
|
|
@@ -463,20 +473,27 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
463
473
|
startIncomingTransactionPolling(networkClientIds = []) {
|
|
464
474
|
if (networkClientIds.length === 0) {
|
|
465
475
|
this.incomingTransactionHelper.start();
|
|
476
|
+
return;
|
|
466
477
|
}
|
|
478
|
+
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").startIncomingTransactionPolling(networkClientIds);
|
|
467
479
|
}
|
|
468
480
|
stopIncomingTransactionPolling(networkClientIds = []) {
|
|
469
481
|
if (networkClientIds.length === 0) {
|
|
470
482
|
this.incomingTransactionHelper.stop();
|
|
483
|
+
return;
|
|
471
484
|
}
|
|
485
|
+
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").stopIncomingTransactionPolling(networkClientIds);
|
|
472
486
|
}
|
|
473
487
|
stopAllIncomingTransactionPolling() {
|
|
474
488
|
this.incomingTransactionHelper.stop();
|
|
489
|
+
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").stopAllIncomingTransactionPolling();
|
|
475
490
|
}
|
|
476
491
|
async updateIncomingTransactions(networkClientIds = []) {
|
|
477
492
|
if (networkClientIds.length === 0) {
|
|
478
493
|
await this.incomingTransactionHelper.update();
|
|
494
|
+
return;
|
|
479
495
|
}
|
|
496
|
+
await __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").updateIncomingTransactions(networkClientIds);
|
|
480
497
|
}
|
|
481
498
|
/**
|
|
482
499
|
* Attempts to cancel a transaction based on its ID by setting its status to "rejected"
|
|
@@ -604,33 +621,23 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
604
621
|
* wiped on current network.
|
|
605
622
|
*/
|
|
606
623
|
wipeTransactions(ignoreNetwork, address) {
|
|
607
|
-
(0, logger_1.projectLogger)('Wiping transactions', { ignoreNetwork, address });
|
|
608
624
|
/* istanbul ignore next */
|
|
609
625
|
if (ignoreNetwork && !address) {
|
|
610
626
|
this.update((state) => {
|
|
611
627
|
state.transactions = [];
|
|
612
|
-
state.lastFetchedBlockNumbers = {};
|
|
613
628
|
});
|
|
614
629
|
return;
|
|
615
630
|
}
|
|
616
631
|
const currentChainId = this.getChainId();
|
|
617
|
-
const
|
|
618
|
-
const newTransactions = transactions.filter((tx) => {
|
|
619
|
-
const { chainId, txParams } = tx;
|
|
632
|
+
const newTransactions = this.state.transactions.filter(({ chainId, txParams }) => {
|
|
620
633
|
const isMatchingNetwork = ignoreNetwork || chainId === currentChainId;
|
|
621
634
|
if (!isMatchingNetwork) {
|
|
622
635
|
return true;
|
|
623
636
|
}
|
|
624
|
-
const isMatchingAddress = !address ||
|
|
625
|
-
txParams.from?.toLowerCase() === address.toLowerCase() ||
|
|
626
|
-
txParams.to?.toLowerCase() === address.toLowerCase();
|
|
627
|
-
if (isMatchingAddress) {
|
|
628
|
-
(0, logger_1.projectLogger)('Removing transaction', tx);
|
|
629
|
-
}
|
|
637
|
+
const isMatchingAddress = !address || txParams.from?.toLowerCase() === address.toLowerCase();
|
|
630
638
|
return !isMatchingAddress;
|
|
631
639
|
});
|
|
632
640
|
this.update((state) => {
|
|
633
|
-
state.lastFetchedBlockNumbers = {};
|
|
634
641
|
state.transactions = this.trimTransactionsForState(newTransactions);
|
|
635
642
|
});
|
|
636
643
|
}
|
|
@@ -1521,28 +1528,24 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1521
1528
|
};
|
|
1522
1529
|
return common_1.Common.custom(customChainParams);
|
|
1523
1530
|
}
|
|
1524
|
-
onIncomingTransactions(
|
|
1525
|
-
let newTransactions = [];
|
|
1531
|
+
onIncomingTransactions({ added, updated, }) {
|
|
1526
1532
|
this.update((state) => {
|
|
1527
1533
|
const { transactions: currentTransactions } = state;
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
});
|
|
1537
|
-
state.transactions = this.trimTransactionsForState([
|
|
1538
|
-
...newTransactions,
|
|
1539
|
-
...currentTransactions,
|
|
1540
|
-
]);
|
|
1534
|
+
const updatedTransactions = [
|
|
1535
|
+
...added,
|
|
1536
|
+
...currentTransactions.map((originalTransaction) => {
|
|
1537
|
+
const updatedTransaction = updated.find(({ hash }) => hash === originalTransaction.hash);
|
|
1538
|
+
return updatedTransaction ?? originalTransaction;
|
|
1539
|
+
}),
|
|
1540
|
+
];
|
|
1541
|
+
state.transactions = this.trimTransactionsForState(updatedTransactions);
|
|
1541
1542
|
});
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1543
|
+
}
|
|
1544
|
+
onUpdatedLastFetchedBlockNumbers({ lastFetchedBlockNumbers, blockNumber, }) {
|
|
1545
|
+
this.update((state) => {
|
|
1546
|
+
state.lastFetchedBlockNumbers = lastFetchedBlockNumbers;
|
|
1547
|
+
});
|
|
1548
|
+
this.messagingSystem.publish(`${controllerName}:incomingTransactionBlockReceived`, blockNumber);
|
|
1546
1549
|
}
|
|
1547
1550
|
generateDappSuggestedGasFees(txParams, origin) {
|
|
1548
1551
|
if (!origin || origin === controller_utils_1.ORIGIN_METAMASK) {
|
|
@@ -1869,21 +1872,17 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
|
|
|
1869
1872
|
getPendingTransactions: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getNonceTrackerPendingTransactions).bind(this, chainId),
|
|
1870
1873
|
getConfirmedTransactions: this.getNonceTrackerTransactions.bind(this, types_1.TransactionStatus.confirmed),
|
|
1871
1874
|
});
|
|
1872
|
-
}, _TransactionController_createIncomingTransactionHelper = function _TransactionController_createIncomingTransactionHelper({
|
|
1873
|
-
const updateCache = (fn) => {
|
|
1874
|
-
this.update((state) => {
|
|
1875
|
-
fn(state.lastFetchedBlockNumbers);
|
|
1876
|
-
});
|
|
1877
|
-
};
|
|
1875
|
+
}, _TransactionController_createIncomingTransactionHelper = function _TransactionController_createIncomingTransactionHelper({ blockTracker, etherscanRemoteTransactionSource, chainId, }) {
|
|
1878
1876
|
const incomingTransactionHelper = new IncomingTransactionHelper_1.IncomingTransactionHelper({
|
|
1877
|
+
blockTracker,
|
|
1879
1878
|
getCurrentAccount: () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSelectedAccount).call(this),
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1879
|
+
getLastFetchedBlockNumbers: () => this.state.lastFetchedBlockNumbers,
|
|
1880
|
+
getLocalTransactions: () => this.state.transactions,
|
|
1881
|
+
getChainId: chainId ? () => chainId : this.getChainId.bind(this),
|
|
1883
1882
|
isEnabled: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").isEnabled,
|
|
1884
1883
|
queryEntireHistory: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").queryEntireHistory,
|
|
1885
|
-
remoteTransactionSource:
|
|
1886
|
-
|
|
1884
|
+
remoteTransactionSource: etherscanRemoteTransactionSource,
|
|
1885
|
+
transactionLimit: __classPrivateFieldGet(this, _TransactionController_transactionHistoryLimit, "f"),
|
|
1887
1886
|
updateTransactions: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").updateTransactions,
|
|
1888
1887
|
});
|
|
1889
1888
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addIncomingTransactionHelperListeners).call(this, incomingTransactionHelper);
|
|
@@ -1918,9 +1917,10 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
|
|
|
1918
1917
|
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").stopAllTracking();
|
|
1919
1918
|
}, _TransactionController_removeIncomingTransactionHelperListeners = function _TransactionController_removeIncomingTransactionHelperListeners(incomingTransactionHelper) {
|
|
1920
1919
|
incomingTransactionHelper.hub.removeAllListeners('transactions');
|
|
1921
|
-
incomingTransactionHelper.hub.removeAllListeners('
|
|
1920
|
+
incomingTransactionHelper.hub.removeAllListeners('updatedLastFetchedBlockNumbers');
|
|
1922
1921
|
}, _TransactionController_addIncomingTransactionHelperListeners = function _TransactionController_addIncomingTransactionHelperListeners(incomingTransactionHelper) {
|
|
1923
1922
|
incomingTransactionHelper.hub.on('transactions', this.onIncomingTransactions.bind(this));
|
|
1923
|
+
incomingTransactionHelper.hub.on('updatedLastFetchedBlockNumbers', this.onUpdatedLastFetchedBlockNumbers.bind(this));
|
|
1924
1924
|
}, _TransactionController_removePendingTransactionTrackerListeners = function _TransactionController_removePendingTransactionTrackerListeners(pendingTransactionTracker) {
|
|
1925
1925
|
pendingTransactionTracker.hub.removeAllListeners('transaction-confirmed');
|
|
1926
1926
|
pendingTransactionTracker.hub.removeAllListeners('transaction-dropped');
|