@metamask-previews/transaction-controller 39.1.0-preview-608079df → 39.1.0-preview-fd7ad7de
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 +50 -105
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +9 -11
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +9 -11
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +52 -107
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/api/accounts-api.cjs +52 -33
- package/dist/api/accounts-api.cjs.map +1 -1
- package/dist/api/accounts-api.d.cts +48 -35
- package/dist/api/accounts-api.d.cts.map +1 -1
- package/dist/api/accounts-api.d.mts +48 -35
- package/dist/api/accounts-api.d.mts.map +1 -1
- package/dist/api/accounts-api.mjs +49 -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 +132 -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 +132 -0
- package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +1 -0
- package/dist/helpers/IncomingTransactionHelper.cjs +87 -137
- 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 +87 -137
- 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 +1 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -3
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +13 -12
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +13 -12
- 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");
|
|
@@ -71,7 +70,7 @@ const metadata = {
|
|
|
71
70
|
persist: true,
|
|
72
71
|
anonymous: false,
|
|
73
72
|
},
|
|
74
|
-
|
|
73
|
+
lastFetchedTimestamps: {
|
|
75
74
|
persist: true,
|
|
76
75
|
anonymous: false,
|
|
77
76
|
},
|
|
@@ -112,7 +111,7 @@ function getDefaultTransactionControllerState() {
|
|
|
112
111
|
return {
|
|
113
112
|
methodData: {},
|
|
114
113
|
transactions: [],
|
|
115
|
-
|
|
114
|
+
lastFetchedTimestamps: {},
|
|
116
115
|
submitHistory: [],
|
|
117
116
|
};
|
|
118
117
|
}
|
|
@@ -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,45 @@ 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.lastFetchedTimestamps = {};
|
|
628
603
|
});
|
|
629
604
|
return;
|
|
630
605
|
}
|
|
631
606
|
const currentChainId = this.getChainId();
|
|
632
|
-
const
|
|
607
|
+
const { lastFetchedTimestamps, 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
|
});
|
|
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
|
+
}, {});
|
|
640
634
|
this.update((state) => {
|
|
635
|
+
state.lastFetchedTimestamps = newLastFetchedTimestamps;
|
|
641
636
|
state.transactions = this.trimTransactionsForState(newTransactions);
|
|
642
637
|
});
|
|
643
638
|
}
|
|
@@ -1528,24 +1523,20 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1528
1523
|
};
|
|
1529
1524
|
return common_1.Common.custom(customChainParams);
|
|
1530
1525
|
}
|
|
1531
|
-
onIncomingTransactions(
|
|
1526
|
+
onIncomingTransactions(incomingTransactions) {
|
|
1532
1527
|
this.update((state) => {
|
|
1533
1528
|
const { transactions: currentTransactions } = state;
|
|
1534
|
-
|
|
1535
|
-
...
|
|
1536
|
-
...currentTransactions
|
|
1537
|
-
|
|
1538
|
-
return updatedTransaction ?? originalTransaction;
|
|
1539
|
-
}),
|
|
1540
|
-
];
|
|
1541
|
-
state.transactions = this.trimTransactionsForState(updatedTransactions);
|
|
1529
|
+
state.transactions = this.trimTransactionsForState([
|
|
1530
|
+
...incomingTransactions,
|
|
1531
|
+
...currentTransactions,
|
|
1532
|
+
]);
|
|
1542
1533
|
});
|
|
1534
|
+
this.messagingSystem.publish(`${controllerName}:incomingTransactionsReceived`, incomingTransactions);
|
|
1543
1535
|
}
|
|
1544
|
-
|
|
1536
|
+
onUpdatedLastFetchedTimestamp({ key, timestamp, }) {
|
|
1545
1537
|
this.update((state) => {
|
|
1546
|
-
state.
|
|
1538
|
+
state.lastFetchedTimestamps[key] = timestamp;
|
|
1547
1539
|
});
|
|
1548
|
-
this.messagingSystem.publish(`${controllerName}:incomingTransactionBlockReceived`, blockNumber);
|
|
1549
1540
|
}
|
|
1550
1541
|
generateDappSuggestedGasFees(txParams, origin) {
|
|
1551
1542
|
if (!origin || origin === controller_utils_1.ORIGIN_METAMASK) {
|
|
@@ -1795,7 +1786,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1795
1786
|
}
|
|
1796
1787
|
}
|
|
1797
1788
|
exports.TransactionController = TransactionController;
|
|
1798
|
-
_TransactionController_internalEvents = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = new WeakMap(),
|
|
1789
|
+
_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
1790
|
// If transaction is found for same action id, do not create a new transaction.
|
|
1800
1791
|
if (this.getTransactionWithActionId(actionId)) {
|
|
1801
1792
|
return;
|
|
@@ -1872,18 +1863,14 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
|
|
|
1872
1863
|
getPendingTransactions: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getNonceTrackerPendingTransactions).bind(this, chainId),
|
|
1873
1864
|
getConfirmedTransactions: this.getNonceTrackerTransactions.bind(this, types_1.TransactionStatus.confirmed),
|
|
1874
1865
|
});
|
|
1875
|
-
}, _TransactionController_createIncomingTransactionHelper = function _TransactionController_createIncomingTransactionHelper({
|
|
1866
|
+
}, _TransactionController_createIncomingTransactionHelper = function _TransactionController_createIncomingTransactionHelper({ chainId, } = {}) {
|
|
1876
1867
|
const incomingTransactionHelper = new IncomingTransactionHelper_1.IncomingTransactionHelper({
|
|
1877
|
-
blockTracker,
|
|
1878
1868
|
getCurrentAccount: () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSelectedAccount).call(this),
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
getChainId: chainId ? () => chainId : this.getChainId.bind(this),
|
|
1869
|
+
getLastFetchedTimestamps: () => this.state.lastFetchedTimestamps,
|
|
1870
|
+
getChainIds: chainId ? () => [chainId] : () => [this.getChainId()],
|
|
1882
1871
|
isEnabled: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").isEnabled,
|
|
1883
|
-
|
|
1884
|
-
remoteTransactionSource: etherscanRemoteTransactionSource,
|
|
1872
|
+
remoteTransactionSource: new AccountsApiRemoteTransactionSource_1.AccountsApiRemoteTransactionSource(),
|
|
1885
1873
|
transactionLimit: __classPrivateFieldGet(this, _TransactionController_transactionHistoryLimit, "f"),
|
|
1886
|
-
updateTransactions: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").updateTransactions,
|
|
1887
1874
|
});
|
|
1888
1875
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addIncomingTransactionHelperListeners).call(this, incomingTransactionHelper);
|
|
1889
1876
|
return incomingTransactionHelper;
|
|
@@ -1916,11 +1903,11 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
|
|
|
1916
1903
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removeIncomingTransactionHelperListeners).call(this, this.incomingTransactionHelper);
|
|
1917
1904
|
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").stopAllTracking();
|
|
1918
1905
|
}, _TransactionController_removeIncomingTransactionHelperListeners = function _TransactionController_removeIncomingTransactionHelperListeners(incomingTransactionHelper) {
|
|
1919
|
-
incomingTransactionHelper.hub.removeAllListeners('transactions');
|
|
1920
|
-
incomingTransactionHelper.hub.removeAllListeners('
|
|
1906
|
+
incomingTransactionHelper.hub.removeAllListeners('incoming-transactions');
|
|
1907
|
+
incomingTransactionHelper.hub.removeAllListeners('updated-last-fetched-timestamp');
|
|
1921
1908
|
}, _TransactionController_addIncomingTransactionHelperListeners = function _TransactionController_addIncomingTransactionHelperListeners(incomingTransactionHelper) {
|
|
1922
|
-
incomingTransactionHelper.hub.on('transactions', this.onIncomingTransactions.bind(this));
|
|
1923
|
-
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));
|
|
1924
1911
|
}, _TransactionController_removePendingTransactionTrackerListeners = function _TransactionController_removePendingTransactionTrackerListeners(pendingTransactionTracker) {
|
|
1925
1912
|
pendingTransactionTracker.hub.removeAllListeners('transaction-confirmed');
|
|
1926
1913
|
pendingTransactionTracker.hub.removeAllListeners('transaction-dropped');
|
|
@@ -1973,48 +1960,6 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
|
|
|
1973
1960
|
});
|
|
1974
1961
|
}
|
|
1975
1962
|
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
1963
|
}, _TransactionController_updateSimulationData = async function _TransactionController_updateSimulationData(transactionMeta, { blockTime, traceContext, } = {}) {
|
|
2019
1964
|
const { id: transactionId, chainId, txParams, simulationData: prevSimulationData, } = transactionMeta;
|
|
2020
1965
|
const { from, to, value, data } = txParams;
|