@metamask-previews/transaction-controller 39.1.0-preview-608079df → 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.
- package/dist/TransactionController.cjs +43 -103
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +78 -11
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +78 -11
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +45 -105
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/api/accounts-api.cjs +35 -33
- package/dist/api/accounts-api.cjs.map +1 -1
- package/dist/api/accounts-api.d.cts +42 -35
- package/dist/api/accounts-api.d.cts.map +1 -1
- package/dist/api/accounts-api.d.mts +42 -35
- package/dist/api/accounts-api.d.mts.map +1 -1
- package/dist/api/accounts-api.mjs +33 -31
- package/dist/api/accounts-api.mjs.map +1 -1
- package/dist/constants.cjs +1 -85
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +0 -84
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.mts +0 -84
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.mjs +0 -84
- package/dist/constants.mjs.map +1 -1
- package/dist/errors.cjs +1 -8
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.cts +0 -4
- package/dist/errors.d.cts.map +1 -1
- package/dist/errors.d.mts +0 -4
- package/dist/errors.d.mts.map +1 -1
- package/dist/errors.mjs +0 -6
- package/dist/errors.mjs.map +1 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.cjs +178 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.cjs.map +1 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts +12 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts.map +1 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts +12 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts.map +1 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.mjs +178 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +1 -0
- package/dist/helpers/IncomingTransactionHelper.cjs +68 -139
- package/dist/helpers/IncomingTransactionHelper.cjs.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.cts +9 -16
- package/dist/helpers/IncomingTransactionHelper.d.cts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.mts +9 -16
- package/dist/helpers/IncomingTransactionHelper.d.mts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.mjs +68 -139
- 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/index.cjs +3 -2
- 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 +2 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +23 -18
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +23 -18
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/validation.cjs +1 -13
- package/dist/utils/validation.cjs.map +1 -1
- package/dist/utils/validation.d.cts +0 -7
- package/dist/utils/validation.d.cts.map +1 -1
- package/dist/utils/validation.d.mts +0 -7
- package/dist/utils/validation.d.mts.map +1 -1
- package/dist/utils/validation.mjs +0 -11
- package/dist/utils/validation.mjs.map +1 -1
- package/package.json +1 -2
- 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/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
|
@@ -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_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_trace, _TransactionController_transactionHistoryLimit,
|
|
16
|
+
var _TransactionController_instances, _TransactionController_internalEvents, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_createNonceTracker, _TransactionController_createIncomingTransactionHelper, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_removeIncomingTransactionHelperListeners, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getNetworkClientId, _TransactionController_getGlobalNetworkClientId, _TransactionController_getGlobalChainId, _TransactionController_isCustomNetwork, _TransactionController_getSelectedAccount, _TransactionController_updateSubmitHistory;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.TransactionController = exports.ApprovalState = exports.SPEED_UP_RATE = exports.CANCEL_RATE = exports.HARDFORK = void 0;
|
|
19
19
|
const common_1 = require("@ethereumjs/common");
|
|
@@ -31,13 +31,12 @@ const eth_method_registry_1 = require("eth-method-registry");
|
|
|
31
31
|
const events_1 = require("events");
|
|
32
32
|
const lodash_1 = require("lodash");
|
|
33
33
|
const uuid_1 = require("uuid");
|
|
34
|
-
const accounts_api_1 = require("./api/accounts-api.cjs");
|
|
35
34
|
const DefaultGasFeeFlow_1 = require("./gas-flows/DefaultGasFeeFlow.cjs");
|
|
36
35
|
const LineaGasFeeFlow_1 = require("./gas-flows/LineaGasFeeFlow.cjs");
|
|
37
36
|
const OptimismLayer1GasFeeFlow_1 = require("./gas-flows/OptimismLayer1GasFeeFlow.cjs");
|
|
38
37
|
const ScrollLayer1GasFeeFlow_1 = require("./gas-flows/ScrollLayer1GasFeeFlow.cjs");
|
|
39
38
|
const TestGasFeeFlow_1 = require("./gas-flows/TestGasFeeFlow.cjs");
|
|
40
|
-
const
|
|
39
|
+
const AccountsApiRemoteTransactionSource_1 = require("./helpers/AccountsApiRemoteTransactionSource.cjs");
|
|
41
40
|
const GasFeePoller_1 = require("./helpers/GasFeePoller.cjs");
|
|
42
41
|
const IncomingTransactionHelper_1 = require("./helpers/IncomingTransactionHelper.cjs");
|
|
43
42
|
const MultichainTrackingHelper_1 = require("./helpers/MultichainTrackingHelper.cjs");
|
|
@@ -178,7 +177,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
178
177
|
* @param options.getSavedGasFees - Gets the saved gas fee config.
|
|
179
178
|
* @param options.incomingTransactions - Configuration options for incoming transaction support.
|
|
180
179
|
* @param options.isMultichainEnabled - Enable multichain support.
|
|
181
|
-
* @param options.isFirstTimeInteractionEnabled - Whether first time interaction checks are enabled.
|
|
182
180
|
* @param options.isSimulationEnabled - Whether new transactions will be automatically simulated.
|
|
183
181
|
* @param options.messenger - The controller messenger.
|
|
184
182
|
* @param options.onNetworkStateChange - Allows subscribing to network controller state changes.
|
|
@@ -192,7 +190,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
192
190
|
* @param options.transactionHistoryLimit - Transaction history limit.
|
|
193
191
|
* @param options.hooks - The controller hooks.
|
|
194
192
|
*/
|
|
195
|
-
constructor({ blockTracker, disableHistory, disableSendFlowHistory, disableSwaps, getCurrentAccountEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, getExternalPendingTransactions, getGasFeeEstimates, getNetworkClientRegistry, getNetworkState, getPermittedAccounts, getSavedGasFees, incomingTransactions = {}, isMultichainEnabled = false,
|
|
193
|
+
constructor({ blockTracker, disableHistory, disableSendFlowHistory, disableSwaps, getCurrentAccountEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, getExternalPendingTransactions, getGasFeeEstimates, getNetworkClientRegistry, getNetworkState, getPermittedAccounts, getSavedGasFees, incomingTransactions = {}, isMultichainEnabled = false, isSimulationEnabled, messenger, onNetworkStateChange, pendingTransactions = {}, provider, securityProviderRequest, sign, state, testGasFeeFlows, trace, transactionHistoryLimit = 40, hooks, }) {
|
|
196
194
|
super({
|
|
197
195
|
name: controllerName,
|
|
198
196
|
metadata,
|
|
@@ -211,7 +209,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
211
209
|
this.signAbortCallbacks = new Map();
|
|
212
210
|
_TransactionController_trace.set(this, void 0);
|
|
213
211
|
_TransactionController_transactionHistoryLimit.set(this, void 0);
|
|
214
|
-
_TransactionController_isFirstTimeInteractionEnabled.set(this, void 0);
|
|
215
212
|
_TransactionController_isSimulationEnabled.set(this, void 0);
|
|
216
213
|
_TransactionController_testGasFeeFlows.set(this, void 0);
|
|
217
214
|
_TransactionController_multichainTrackingHelper.set(this, void 0);
|
|
@@ -225,7 +222,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
225
222
|
this.isSendFlowHistoryDisabled = disableSendFlowHistory ?? false;
|
|
226
223
|
this.isHistoryDisabled = disableHistory ?? false;
|
|
227
224
|
this.isSwapsDisabled = disableSwaps ?? false;
|
|
228
|
-
__classPrivateFieldSet(this, _TransactionController_isFirstTimeInteractionEnabled, isFirstTimeInteractionEnabled ?? (() => true), "f");
|
|
229
225
|
__classPrivateFieldSet(this, _TransactionController_isSimulationEnabled, isSimulationEnabled ?? (() => true), "f");
|
|
230
226
|
// @ts-expect-error the type in eth-method-registry is inappropriate and should be changed
|
|
231
227
|
this.registry = new eth_method_registry_1.MethodRegistry({ provider });
|
|
@@ -267,30 +263,20 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
267
263
|
isMultichainEnabled,
|
|
268
264
|
provider,
|
|
269
265
|
nonceTracker: this.nonceTracker,
|
|
270
|
-
incomingTransactionOptions: incomingTransactions,
|
|
271
266
|
findNetworkClientIdByChainId,
|
|
272
267
|
getNetworkClientById: ((networkClientId) => {
|
|
273
268
|
return this.messagingSystem.call(`NetworkController:getNetworkClientById`, networkClientId);
|
|
274
269
|
}),
|
|
275
270
|
getNetworkClientRegistry,
|
|
276
|
-
removeIncomingTransactionHelperListeners: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removeIncomingTransactionHelperListeners).bind(this),
|
|
277
271
|
removePendingTransactionTrackerListeners: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removePendingTransactionTrackerListeners).bind(this),
|
|
278
272
|
createNonceTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createNonceTracker).bind(this),
|
|
279
|
-
createIncomingTransactionHelper: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createIncomingTransactionHelper).bind(this),
|
|
280
273
|
createPendingTransactionTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).bind(this),
|
|
281
274
|
onNetworkStateChange: (listener) => {
|
|
282
275
|
this.messagingSystem.subscribe('NetworkController:stateChange', listener);
|
|
283
276
|
},
|
|
284
277
|
}), "f");
|
|
285
278
|
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").initialize();
|
|
286
|
-
|
|
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
|
-
});
|
|
279
|
+
this.incomingTransactionHelper = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createIncomingTransactionHelper).call(this);
|
|
294
280
|
this.pendingTransactionTracker = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).call(this, {
|
|
295
281
|
provider,
|
|
296
282
|
blockTracker,
|
|
@@ -407,16 +393,15 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
407
393
|
dappSuggestedGasFees,
|
|
408
394
|
deviceConfirmedOn,
|
|
409
395
|
id: (0, uuid_1.v1)(),
|
|
410
|
-
isFirstTimeInteraction: undefined,
|
|
411
|
-
networkClientId,
|
|
412
396
|
origin,
|
|
413
397
|
securityAlertResponse,
|
|
414
398
|
status: types_1.TransactionStatus.unapproved,
|
|
415
399
|
time: Date.now(),
|
|
416
400
|
txParams,
|
|
417
|
-
type: transactionType,
|
|
418
401
|
userEditedGasLimit: false,
|
|
419
402
|
verifiedOnBlockchain: false,
|
|
403
|
+
type: transactionType,
|
|
404
|
+
networkClientId,
|
|
420
405
|
};
|
|
421
406
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Estimate Gas Properties', parentContext: traceContext }, (context) => this.updateGasProperties(addedTransactionMeta, {
|
|
422
407
|
traceContext: context,
|
|
@@ -449,14 +434,9 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
449
434
|
(0, logger_1.projectLogger)('Error while updating simulation data', error);
|
|
450
435
|
throw error;
|
|
451
436
|
});
|
|
452
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateFirstTimeInteraction).call(this, addedTransactionMeta, {
|
|
453
|
-
traceContext,
|
|
454
|
-
}).catch((error) => {
|
|
455
|
-
(0, logger_1.projectLogger)('Error while updating first interaction properties', error);
|
|
456
|
-
});
|
|
457
437
|
}
|
|
458
438
|
else {
|
|
459
|
-
(0, logger_1.projectLogger)('Skipping simulation
|
|
439
|
+
(0, logger_1.projectLogger)('Skipping simulation as approval not required');
|
|
460
440
|
}
|
|
461
441
|
this.messagingSystem.publish(`${controllerName}:unapprovedTransactionAdded`, addedTransactionMeta);
|
|
462
442
|
}
|
|
@@ -473,27 +453,20 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
473
453
|
startIncomingTransactionPolling(networkClientIds = []) {
|
|
474
454
|
if (networkClientIds.length === 0) {
|
|
475
455
|
this.incomingTransactionHelper.start();
|
|
476
|
-
return;
|
|
477
456
|
}
|
|
478
|
-
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").startIncomingTransactionPolling(networkClientIds);
|
|
479
457
|
}
|
|
480
458
|
stopIncomingTransactionPolling(networkClientIds = []) {
|
|
481
459
|
if (networkClientIds.length === 0) {
|
|
482
460
|
this.incomingTransactionHelper.stop();
|
|
483
|
-
return;
|
|
484
461
|
}
|
|
485
|
-
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").stopIncomingTransactionPolling(networkClientIds);
|
|
486
462
|
}
|
|
487
463
|
stopAllIncomingTransactionPolling() {
|
|
488
464
|
this.incomingTransactionHelper.stop();
|
|
489
|
-
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").stopAllIncomingTransactionPolling();
|
|
490
465
|
}
|
|
491
466
|
async updateIncomingTransactions(networkClientIds = []) {
|
|
492
467
|
if (networkClientIds.length === 0) {
|
|
493
468
|
await this.incomingTransactionHelper.update();
|
|
494
|
-
return;
|
|
495
469
|
}
|
|
496
|
-
await __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").updateIncomingTransactions(networkClientIds);
|
|
497
470
|
}
|
|
498
471
|
/**
|
|
499
472
|
* Attempts to cancel a transaction based on its ID by setting its status to "rejected"
|
|
@@ -621,23 +594,33 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
621
594
|
* wiped on current network.
|
|
622
595
|
*/
|
|
623
596
|
wipeTransactions(ignoreNetwork, address) {
|
|
597
|
+
(0, logger_1.projectLogger)('Wiping transactions', { ignoreNetwork, address });
|
|
624
598
|
/* istanbul ignore next */
|
|
625
599
|
if (ignoreNetwork && !address) {
|
|
626
600
|
this.update((state) => {
|
|
627
601
|
state.transactions = [];
|
|
602
|
+
state.lastFetchedBlockNumbers = {};
|
|
628
603
|
});
|
|
629
604
|
return;
|
|
630
605
|
}
|
|
631
606
|
const currentChainId = this.getChainId();
|
|
632
|
-
const
|
|
607
|
+
const { transactions } = this.state;
|
|
608
|
+
const newTransactions = transactions.filter((tx) => {
|
|
609
|
+
const { chainId, txParams } = tx;
|
|
633
610
|
const isMatchingNetwork = ignoreNetwork || chainId === currentChainId;
|
|
634
611
|
if (!isMatchingNetwork) {
|
|
635
612
|
return true;
|
|
636
613
|
}
|
|
637
|
-
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
|
+
}
|
|
638
620
|
return !isMatchingAddress;
|
|
639
621
|
});
|
|
640
622
|
this.update((state) => {
|
|
623
|
+
state.lastFetchedBlockNumbers = {};
|
|
641
624
|
state.transactions = this.trimTransactionsForState(newTransactions);
|
|
642
625
|
});
|
|
643
626
|
}
|
|
@@ -1528,24 +1511,20 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1528
1511
|
};
|
|
1529
1512
|
return common_1.Common.custom(customChainParams);
|
|
1530
1513
|
}
|
|
1531
|
-
onIncomingTransactions(
|
|
1514
|
+
onIncomingTransactions(transactions) {
|
|
1532
1515
|
this.update((state) => {
|
|
1533
1516
|
const { transactions: currentTransactions } = state;
|
|
1534
|
-
const
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
}
|
|
1544
|
-
onUpdatedLastFetchedBlockNumbers({ lastFetchedBlockNumbers, blockNumber, }) {
|
|
1545
|
-
this.update((state) => {
|
|
1546
|
-
state.lastFetchedBlockNumbers = lastFetchedBlockNumbers;
|
|
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
|
+
});
|
|
1522
|
+
state.transactions = this.trimTransactionsForState([
|
|
1523
|
+
...newTransactions,
|
|
1524
|
+
...currentTransactions,
|
|
1525
|
+
]);
|
|
1547
1526
|
});
|
|
1548
|
-
this.messagingSystem.publish(`${controllerName}:
|
|
1527
|
+
this.messagingSystem.publish(`${controllerName}:incomingTransactionsReceived`, transactions);
|
|
1549
1528
|
}
|
|
1550
1529
|
generateDappSuggestedGasFees(txParams, origin) {
|
|
1551
1530
|
if (!origin || origin === controller_utils_1.ORIGIN_METAMASK) {
|
|
@@ -1795,7 +1774,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1795
1774
|
}
|
|
1796
1775
|
}
|
|
1797
1776
|
exports.TransactionController = TransactionController;
|
|
1798
|
-
_TransactionController_internalEvents = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = new WeakMap(),
|
|
1777
|
+
_TransactionController_internalEvents = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = 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, }) {
|
|
1799
1778
|
// If transaction is found for same action id, do not create a new transaction.
|
|
1800
1779
|
if (this.getTransactionWithActionId(actionId)) {
|
|
1801
1780
|
return;
|
|
@@ -1872,17 +1851,21 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
|
|
|
1872
1851
|
getPendingTransactions: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getNonceTrackerPendingTransactions).bind(this, chainId),
|
|
1873
1852
|
getConfirmedTransactions: this.getNonceTrackerTransactions.bind(this, types_1.TransactionStatus.confirmed),
|
|
1874
1853
|
});
|
|
1875
|
-
}, _TransactionController_createIncomingTransactionHelper = function _TransactionController_createIncomingTransactionHelper({
|
|
1854
|
+
}, _TransactionController_createIncomingTransactionHelper = function _TransactionController_createIncomingTransactionHelper({ chainId, } = {}) {
|
|
1855
|
+
const updateCache = (fn) => {
|
|
1856
|
+
this.update((state) => {
|
|
1857
|
+
fn(state.lastFetchedBlockNumbers);
|
|
1858
|
+
});
|
|
1859
|
+
};
|
|
1876
1860
|
const incomingTransactionHelper = new IncomingTransactionHelper_1.IncomingTransactionHelper({
|
|
1877
|
-
blockTracker,
|
|
1878
1861
|
getCurrentAccount: () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSelectedAccount).call(this),
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1862
|
+
getCache: () => this.state.lastFetchedBlockNumbers,
|
|
1863
|
+
getChainIds: chainId ? () => [chainId] : () => [this.getChainId()],
|
|
1864
|
+
includeTokenTransfers: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").includeTokenTransfers,
|
|
1882
1865
|
isEnabled: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").isEnabled,
|
|
1883
1866
|
queryEntireHistory: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").queryEntireHistory,
|
|
1884
|
-
remoteTransactionSource:
|
|
1885
|
-
|
|
1867
|
+
remoteTransactionSource: new AccountsApiRemoteTransactionSource_1.AccountsApiRemoteTransactionSource(),
|
|
1868
|
+
updateCache,
|
|
1886
1869
|
updateTransactions: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").updateTransactions,
|
|
1887
1870
|
});
|
|
1888
1871
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addIncomingTransactionHelperListeners).call(this, incomingTransactionHelper);
|
|
@@ -1917,10 +1900,9 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
|
|
|
1917
1900
|
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").stopAllTracking();
|
|
1918
1901
|
}, _TransactionController_removeIncomingTransactionHelperListeners = function _TransactionController_removeIncomingTransactionHelperListeners(incomingTransactionHelper) {
|
|
1919
1902
|
incomingTransactionHelper.hub.removeAllListeners('transactions');
|
|
1920
|
-
incomingTransactionHelper.hub.removeAllListeners('
|
|
1903
|
+
incomingTransactionHelper.hub.removeAllListeners('updated-last-fetched-timestamp');
|
|
1921
1904
|
}, _TransactionController_addIncomingTransactionHelperListeners = function _TransactionController_addIncomingTransactionHelperListeners(incomingTransactionHelper) {
|
|
1922
1905
|
incomingTransactionHelper.hub.on('transactions', this.onIncomingTransactions.bind(this));
|
|
1923
|
-
incomingTransactionHelper.hub.on('updatedLastFetchedBlockNumbers', this.onUpdatedLastFetchedBlockNumbers.bind(this));
|
|
1924
1906
|
}, _TransactionController_removePendingTransactionTrackerListeners = function _TransactionController_removePendingTransactionTrackerListeners(pendingTransactionTracker) {
|
|
1925
1907
|
pendingTransactionTracker.hub.removeAllListeners('transaction-confirmed');
|
|
1926
1908
|
pendingTransactionTracker.hub.removeAllListeners('transaction-dropped');
|
|
@@ -1973,48 +1955,6 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
|
|
|
1973
1955
|
});
|
|
1974
1956
|
}
|
|
1975
1957
|
return transactionMeta;
|
|
1976
|
-
}, _TransactionController_updateFirstTimeInteraction = async function _TransactionController_updateFirstTimeInteraction(transactionMeta, { traceContext, } = {}) {
|
|
1977
|
-
if (!__classPrivateFieldGet(this, _TransactionController_isFirstTimeInteractionEnabled, "f").call(this)) {
|
|
1978
|
-
return;
|
|
1979
|
-
}
|
|
1980
|
-
const { chainId, id: transactionId, txParams: { to, from }, } = transactionMeta;
|
|
1981
|
-
const request = {
|
|
1982
|
-
chainId: (0, utils_1.hexToNumber)(chainId),
|
|
1983
|
-
to: to,
|
|
1984
|
-
from,
|
|
1985
|
-
};
|
|
1986
|
-
(0, validation_1.validateParamTo)(to);
|
|
1987
|
-
const existingTransaction = this.state.transactions.find((tx) => tx.chainId === chainId &&
|
|
1988
|
-
tx.txParams.from === from &&
|
|
1989
|
-
tx.txParams.to === to &&
|
|
1990
|
-
tx.id !== transactionId);
|
|
1991
|
-
// Check if there is an existing transaction with the same from, to, and chainId
|
|
1992
|
-
// else we continue to check the account address relationship from API
|
|
1993
|
-
if (existingTransaction) {
|
|
1994
|
-
return;
|
|
1995
|
-
}
|
|
1996
|
-
try {
|
|
1997
|
-
const { count } = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Account Address Relationship', parentContext: traceContext }, () => (0, accounts_api_1.getAccountAddressRelationship)(request));
|
|
1998
|
-
const isFirstTimeInteraction = count === undefined ? undefined : count === 0;
|
|
1999
|
-
const finalTransactionMeta = this.getTransaction(transactionId);
|
|
2000
|
-
/* istanbul ignore if */
|
|
2001
|
-
if (!finalTransactionMeta) {
|
|
2002
|
-
(0, logger_1.projectLogger)('Cannot update first time interaction as transaction not found', transactionId);
|
|
2003
|
-
return;
|
|
2004
|
-
}
|
|
2005
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2006
|
-
transactionId,
|
|
2007
|
-
note: 'TransactionController#updateFirstInteraction - Update first time interaction',
|
|
2008
|
-
}, (txMeta) => {
|
|
2009
|
-
txMeta.isFirstTimeInteraction = isFirstTimeInteraction;
|
|
2010
|
-
});
|
|
2011
|
-
(0, logger_1.projectLogger)('Updated first time interaction', transactionId, {
|
|
2012
|
-
isFirstTimeInteraction,
|
|
2013
|
-
});
|
|
2014
|
-
}
|
|
2015
|
-
catch (error) {
|
|
2016
|
-
(0, logger_1.projectLogger)('Error fetching account address relationship, skipping first time interaction update', error);
|
|
2017
|
-
}
|
|
2018
1958
|
}, _TransactionController_updateSimulationData = async function _TransactionController_updateSimulationData(transactionMeta, { blockTime, traceContext, } = {}) {
|
|
2019
1959
|
const { id: transactionId, chainId, txParams, simulationData: prevSimulationData, } = transactionMeta;
|
|
2020
1960
|
const { from, to, value, data } = txParams;
|