@metamask-previews/transaction-controller 66.0.1-preview-e37aff3 → 66.0.1-preview-92f3bde43
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/CHANGELOG.md +10 -0
- package/dist/TransactionController.cjs +28 -111
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +8 -55
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +8 -55
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +28 -111
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.cjs +4 -82
- package/dist/helpers/PendingTransactionTracker.cjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.cts +1 -3
- package/dist/helpers/PendingTransactionTracker.d.cts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.mts +1 -3
- package/dist/helpers/PendingTransactionTracker.d.mts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.mjs +5 -83
- package/dist/helpers/PendingTransactionTracker.mjs.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -1
- 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 +0 -14
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +0 -14
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/prepare.cjs +8 -4
- package/dist/utils/prepare.cjs.map +1 -1
- package/dist/utils/prepare.d.cts +5 -4
- package/dist/utils/prepare.d.cts.map +1 -1
- package/dist/utils/prepare.d.mts +5 -4
- package/dist/utils/prepare.d.mts.map +1 -1
- package/dist/utils/prepare.mjs +8 -4
- package/dist/utils/prepare.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **BREAKING:** Remove deprecated `TransactionController` constructor options and unused hooks, and replace them with direct messenger calls ([#8983](https://github.com/MetaMask/core/pull/8983))
|
|
13
|
+
- Removed options: `disableHistory`, `disableSendFlowHistory`, `getCurrentAccountEIP1559Compatibility`, `getCurrentNetworkEIP1559Compatibility`, `getExternalPendingTransactions`, `getGasFeeEstimates`, `getNetworkClientRegistry`, `getNetworkState`, `pendingTransactions`, `securityProviderRequest`, `sign`, `transactionHistoryLimit`
|
|
14
|
+
- Removed hooks: `afterSign`, `afterSimulate`, `getAdditionalSignArguments`
|
|
15
|
+
- Moved hook: `isTimeoutEnabled` is now a root constructor option instead of a hook
|
|
16
|
+
- Removed types: `AfterSimulateHook`, `PendingTransactionOptions`, `SecurityProviderRequest`; `AfterAddHook` parameter `skipSimulation` removed
|
|
17
|
+
- Added required `AllowedActions`: `GasFeeController:fetchGasFeeEstimates`, `KeyringController:signTransaction`, `NetworkController:getEIP1559Compatibility`, `NetworkController:getNetworkClientRegistry`, `NetworkController:getState`
|
|
18
|
+
- Removed resubmit logic from `PendingTransactionTracker`
|
|
19
|
+
|
|
10
20
|
## [66.0.1]
|
|
11
21
|
|
|
12
22
|
### Changed
|
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var _TransactionController_instances, _TransactionController_afterAdd,
|
|
13
|
+
var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_isTimeoutEnabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_signAbortCallbacks, _TransactionController_skipSimulationTransactionIds, _TransactionController_testGasFeeFlows, _TransactionController_trace, _TransactionController_retryTransaction, _TransactionController_signExternalTransaction, _TransactionController_addMetadata, _TransactionController_updateGasProperties, _TransactionController_onBootCleanup, _TransactionController_failIncompleteTransactions, _TransactionController_processApproval, _TransactionController_approveTransaction, _TransactionController_publishTransaction, _TransactionController_rejectTransaction, _TransactionController_trimTransactionsForState, _TransactionController_isFinalState, _TransactionController_isLocalFinalState, _TransactionController_requestApproval, _TransactionController_getTransaction, _TransactionController_getTransactionOrThrow, _TransactionController_getApprovalId, _TransactionController_isTransactionCompleted, _TransactionController_onIncomingTransactions, _TransactionController_generateDappSuggestedGasFees, _TransactionController_addExternalTransaction, _TransactionController_markNonceDuplicatesDropped, _TransactionController_setTransactionStatusDropped, _TransactionController_waitForTransactionFinished, _TransactionController_updateTransactionMetaRSV, _TransactionController_getEIP1559Compatibility, _TransactionController_signTransaction, _TransactionController_onTransactionStatusChange, _TransactionController_getNonceTrackerTransactions, _TransactionController_onConfirmedTransaction, _TransactionController_updatePostBalance, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_publishTransactionForRetry, _TransactionController_isTransactionAlreadyConfirmedError, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_isBalanceChangesSkipped, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_onGasFeePollerTransactionBatchUpdate, _TransactionController_updateTransactionBatch, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_registerActionHandlers, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow, _TransactionController_failTransaction, _TransactionController_defaultPublishHook, _TransactionController_getGasFeeTokens;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.TransactionController = exports.ApprovalState = exports.SPEED_UP_RATE = exports.CANCEL_RATE = void 0;
|
|
16
16
|
const base_controller_1 = require("@metamask/base-controller");
|
|
@@ -178,7 +178,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
178
178
|
* @param options - The controller options.
|
|
179
179
|
*/
|
|
180
180
|
constructor(options) {
|
|
181
|
-
const { disableSwaps,
|
|
181
|
+
const { disableSwaps, getPermittedAccounts, getSavedGasFees, getSimulationConfig, hooks, incomingTransactions = {}, isAutomaticGasFeeUpdateEnabled, isEIP7702GasFeeTokensEnabled, isFirstTimeInteractionEnabled, isSimulationEnabled, isTimeoutEnabled, messenger, publicKeyEIP7702, state, testGasFeeFlows, trace, } = options;
|
|
182
182
|
super({
|
|
183
183
|
name: controllerName,
|
|
184
184
|
metadata,
|
|
@@ -190,19 +190,11 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
190
190
|
});
|
|
191
191
|
_TransactionController_instances.add(this);
|
|
192
192
|
_TransactionController_afterAdd.set(this, void 0);
|
|
193
|
-
_TransactionController_afterSign.set(this, void 0);
|
|
194
|
-
_TransactionController_afterSimulate.set(this, void 0);
|
|
195
193
|
_TransactionController_approvingTransactionIds.set(this, new Set());
|
|
196
194
|
_TransactionController_beforeCheckPendingTransaction.set(this, void 0);
|
|
197
195
|
_TransactionController_beforePublish.set(this, void 0);
|
|
198
196
|
_TransactionController_beforeSign.set(this, void 0);
|
|
199
197
|
_TransactionController_gasFeeFlows.set(this, void 0);
|
|
200
|
-
_TransactionController_getAdditionalSignArguments.set(this, void 0);
|
|
201
|
-
_TransactionController_getCurrentAccountEIP1559Compatibility.set(this, void 0);
|
|
202
|
-
_TransactionController_getCurrentNetworkEIP1559Compatibility.set(this, void 0);
|
|
203
|
-
_TransactionController_getExternalPendingTransactions.set(this, void 0);
|
|
204
|
-
_TransactionController_getGasFeeEstimates.set(this, void 0);
|
|
205
|
-
_TransactionController_getNetworkState.set(this, void 0);
|
|
206
198
|
_TransactionController_getPermittedAccounts.set(this, void 0);
|
|
207
199
|
_TransactionController_getSavedGasFees.set(this, void 0);
|
|
208
200
|
_TransactionController_getSimulationConfig.set(this, void 0);
|
|
@@ -218,12 +210,9 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
218
210
|
_TransactionController_layer1GasFeeFlows.set(this, void 0);
|
|
219
211
|
_TransactionController_methodDataHelper.set(this, void 0);
|
|
220
212
|
_TransactionController_multichainTrackingHelper.set(this, void 0);
|
|
221
|
-
_TransactionController_pendingTransactionOptions.set(this, void 0);
|
|
222
213
|
_TransactionController_publicKeyEIP7702.set(this, void 0);
|
|
223
214
|
_TransactionController_publish.set(this, void 0);
|
|
224
215
|
_TransactionController_publishBatchHook.set(this, void 0);
|
|
225
|
-
_TransactionController_securityProviderRequest.set(this, void 0);
|
|
226
|
-
_TransactionController_sign.set(this, void 0);
|
|
227
216
|
_TransactionController_signAbortCallbacks.set(this, new Map());
|
|
228
217
|
_TransactionController_skipSimulationTransactionIds.set(this, new Set());
|
|
229
218
|
_TransactionController_testGasFeeFlows.set(this, void 0);
|
|
@@ -233,9 +222,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
233
222
|
});
|
|
234
223
|
this.messenger = messenger;
|
|
235
224
|
__classPrivateFieldSet(this, _TransactionController_afterAdd, hooks?.afterAdd ?? (() => Promise.resolve({})), "f");
|
|
236
|
-
__classPrivateFieldSet(this, _TransactionController_afterSign, hooks?.afterSign ?? (() => true), "f");
|
|
237
|
-
__classPrivateFieldSet(this, _TransactionController_afterSimulate, hooks?.afterSimulate ??
|
|
238
|
-
(() => Promise.resolve({})), "f");
|
|
239
225
|
__classPrivateFieldSet(this, _TransactionController_beforeCheckPendingTransaction,
|
|
240
226
|
/* istanbul ignore next */
|
|
241
227
|
hooks?.beforeCheckPendingTransaction ??
|
|
@@ -243,15 +229,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
243
229
|
__classPrivateFieldSet(this, _TransactionController_beforePublish, hooks?.beforePublish ?? (() => Promise.resolve(true)), "f");
|
|
244
230
|
__classPrivateFieldSet(this, _TransactionController_beforeSign, hooks?.beforeSign ??
|
|
245
231
|
(() => Promise.resolve({})), "f");
|
|
246
|
-
__classPrivateFieldSet(this, _TransactionController_getAdditionalSignArguments, hooks?.getAdditionalSignArguments ??
|
|
247
|
-
(() => []), "f");
|
|
248
|
-
__classPrivateFieldSet(this, _TransactionController_getCurrentAccountEIP1559Compatibility, getCurrentAccountEIP1559Compatibility ??
|
|
249
|
-
(() => Promise.resolve(true)), "f");
|
|
250
|
-
__classPrivateFieldSet(this, _TransactionController_getCurrentNetworkEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, "f");
|
|
251
|
-
__classPrivateFieldSet(this, _TransactionController_getExternalPendingTransactions, getExternalPendingTransactions ?? (() => []), "f");
|
|
252
|
-
__classPrivateFieldSet(this, _TransactionController_getGasFeeEstimates, getGasFeeEstimates ??
|
|
253
|
-
(() => Promise.resolve({})), "f");
|
|
254
|
-
__classPrivateFieldSet(this, _TransactionController_getNetworkState, getNetworkState, "f");
|
|
255
232
|
__classPrivateFieldSet(this, _TransactionController_getPermittedAccounts, getPermittedAccounts, "f");
|
|
256
233
|
__classPrivateFieldSet(this, _TransactionController_getSavedGasFees, getSavedGasFees ?? ((_chainId) => undefined), "f");
|
|
257
234
|
__classPrivateFieldSet(this, _TransactionController_getSimulationConfig, getSimulationConfig ??
|
|
@@ -264,14 +241,11 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
264
241
|
__classPrivateFieldSet(this, _TransactionController_isFirstTimeInteractionEnabled, isFirstTimeInteractionEnabled ?? (() => true), "f");
|
|
265
242
|
__classPrivateFieldSet(this, _TransactionController_isSimulationEnabled, isSimulationEnabled ?? (() => true), "f");
|
|
266
243
|
__classPrivateFieldSet(this, _TransactionController_isSwapsDisabled, disableSwaps ?? false, "f");
|
|
267
|
-
__classPrivateFieldSet(this, _TransactionController_isTimeoutEnabled,
|
|
268
|
-
__classPrivateFieldSet(this, _TransactionController_pendingTransactionOptions, pendingTransactions, "f");
|
|
244
|
+
__classPrivateFieldSet(this, _TransactionController_isTimeoutEnabled, isTimeoutEnabled ?? (() => true), "f");
|
|
269
245
|
__classPrivateFieldSet(this, _TransactionController_publicKeyEIP7702, publicKeyEIP7702, "f");
|
|
270
246
|
__classPrivateFieldSet(this, _TransactionController_publish, hooks?.publish ??
|
|
271
247
|
(() => Promise.resolve({ transactionHash: undefined })), "f");
|
|
272
248
|
__classPrivateFieldSet(this, _TransactionController_publishBatchHook, hooks?.publishBatch, "f");
|
|
273
|
-
__classPrivateFieldSet(this, _TransactionController_securityProviderRequest, securityProviderRequest, "f");
|
|
274
|
-
__classPrivateFieldSet(this, _TransactionController_sign, sign, "f");
|
|
275
249
|
__classPrivateFieldSet(this, _TransactionController_testGasFeeFlows, testGasFeeFlows === true, "f");
|
|
276
250
|
__classPrivateFieldSet(this, _TransactionController_trace, trace ?? ((_request, fn) => fn?.()), "f");
|
|
277
251
|
const findNetworkClientIdByChainId = (chainId) => {
|
|
@@ -282,7 +256,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
282
256
|
getNetworkClientById: ((networkClientId) => {
|
|
283
257
|
return this.messenger.call(`NetworkController:getNetworkClientById`, networkClientId);
|
|
284
258
|
}),
|
|
285
|
-
getNetworkClientRegistry,
|
|
259
|
+
getNetworkClientRegistry: (() => this.messenger.call('NetworkController:getNetworkClientRegistry')),
|
|
286
260
|
removePendingTransactionTrackerListeners: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removePendingTransactionTrackerListeners).bind(this),
|
|
287
261
|
createNonceTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createNonceTracker).bind(this),
|
|
288
262
|
createPendingTransactionTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).bind(this),
|
|
@@ -295,7 +269,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
295
269
|
__classPrivateFieldSet(this, _TransactionController_layer1GasFeeFlows, __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getLayer1GasFeeFlows).call(this), "f");
|
|
296
270
|
const gasFeePoller = new GasFeePoller_1.GasFeePoller({
|
|
297
271
|
gasFeeFlows: __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"),
|
|
298
|
-
getGasFeeControllerEstimates:
|
|
272
|
+
getGasFeeControllerEstimates: (gasFeeOpts) => this.messenger.call('GasFeeController:fetchGasFeeEstimates', gasFeeOpts),
|
|
299
273
|
getTransactions: () => this.state.transactions,
|
|
300
274
|
getTransactionBatches: () => this.state.transactionBatches,
|
|
301
275
|
layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
|
|
@@ -369,7 +343,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
369
343
|
return await (0, batch_1.addTransactionBatch)({
|
|
370
344
|
addTransaction: this.addTransaction.bind(this),
|
|
371
345
|
estimateGas: this.estimateGas.bind(this),
|
|
372
|
-
getGasFeeEstimates:
|
|
346
|
+
getGasFeeEstimates: (options) => this.messenger.call('GasFeeController:fetchGasFeeEstimates', options),
|
|
373
347
|
getInternalAccounts: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getInternalAccounts).bind(this),
|
|
374
348
|
getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f").bind(this),
|
|
375
349
|
getPendingTransactionTracker: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).call(this, {
|
|
@@ -412,7 +386,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
412
386
|
*/
|
|
413
387
|
async addTransaction(txParams, options) {
|
|
414
388
|
(0, logger_1.projectLogger)('Adding transaction', txParams, options);
|
|
415
|
-
const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, excludeNativeTokenForFee, isGasFeeIncluded, isGasFeeSponsored, isInternal = false, isStateOnly,
|
|
389
|
+
const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, excludeNativeTokenForFee, isGasFeeIncluded, isGasFeeSponsored, isInternal = false, isStateOnly, nestedTransactions, networkClientId, origin, publishHook, requestId, requiredAssets, requireApproval, securityAlertResponse, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
|
|
416
390
|
// eslint-disable-next-line no-param-reassign
|
|
417
391
|
txParams = (0, utils_2.normalizeTransactionParams)(txParams);
|
|
418
392
|
if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
|
|
@@ -524,12 +498,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
524
498
|
})
|
|
525
499
|
.catch(lodash_1.noop);
|
|
526
500
|
}
|
|
527
|
-
// Set security provider response
|
|
528
|
-
if (method && __classPrivateFieldGet(this, _TransactionController_securityProviderRequest, "f")) {
|
|
529
|
-
const securityProviderResponse = await __classPrivateFieldGet(this, _TransactionController_securityProviderRequest, "f").call(this, addedTransactionMeta, method);
|
|
530
|
-
// eslint-disable-next-line require-atomic-updates
|
|
531
|
-
addedTransactionMeta.securityProviderResponse = securityProviderResponse;
|
|
532
|
-
}
|
|
533
501
|
addedTransactionMeta = (0, swaps_1.updateSwapsTransaction)(addedTransactionMeta, transactionType, swaps, {
|
|
534
502
|
isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
|
|
535
503
|
cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
|
|
@@ -1053,7 +1021,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1053
1021
|
chainId,
|
|
1054
1022
|
});
|
|
1055
1023
|
const initialTxAsEthTx = (0, prepare_1.prepareTransaction)(chainId, initialTx);
|
|
1056
|
-
const initialTxAsSerializedHex = (0, prepare_1.serializeTransaction)(initialTxAsEthTx);
|
|
1024
|
+
const initialTxAsSerializedHex = (0, prepare_1.serializeTransaction)(chainId, initialTxAsEthTx);
|
|
1057
1025
|
if (__classPrivateFieldGet(this, _TransactionController_approvingTransactionIds, "f").has(initialTxAsSerializedHex)) {
|
|
1058
1026
|
return '';
|
|
1059
1027
|
}
|
|
@@ -1241,9 +1209,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1241
1209
|
};
|
|
1242
1210
|
// Guaranteed as the default gas fee flow matches all transactions.
|
|
1243
1211
|
const gasFeeFlow = (0, gas_flow_1.getGasFeeFlow)(transactionMeta, __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"), this.messenger);
|
|
1244
|
-
const gasFeeControllerData = await
|
|
1245
|
-
networkClientId,
|
|
1246
|
-
});
|
|
1212
|
+
const gasFeeControllerData = await this.messenger.call('GasFeeController:fetchGasFeeEstimates', { networkClientId });
|
|
1247
1213
|
return gasFeeFlow.getGasFees({
|
|
1248
1214
|
gasFeeControllerData,
|
|
1249
1215
|
messenger: this.messenger,
|
|
@@ -1476,7 +1442,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1476
1442
|
}
|
|
1477
1443
|
}
|
|
1478
1444
|
exports.TransactionController = TransactionController;
|
|
1479
|
-
_TransactionController_afterAdd = new WeakMap(),
|
|
1445
|
+
_TransactionController_afterAdd = new WeakMap(), _TransactionController_approvingTransactionIds = new WeakMap(), _TransactionController_beforeCheckPendingTransaction = new WeakMap(), _TransactionController_beforePublish = new WeakMap(), _TransactionController_beforeSign = new WeakMap(), _TransactionController_gasFeeFlows = new WeakMap(), _TransactionController_getPermittedAccounts = new WeakMap(), _TransactionController_getSavedGasFees = new WeakMap(), _TransactionController_getSimulationConfig = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_internalEvents = new WeakMap(), _TransactionController_isAutomaticGasFeeUpdateEnabled = new WeakMap(), _TransactionController_isEIP7702GasFeeTokensEnabled = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_isSwapsDisabled = new WeakMap(), _TransactionController_isTimeoutEnabled = new WeakMap(), _TransactionController_layer1GasFeeFlows = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_multichainTrackingHelper = new WeakMap(), _TransactionController_publicKeyEIP7702 = new WeakMap(), _TransactionController_publish = new WeakMap(), _TransactionController_publishBatchHook = new WeakMap(), _TransactionController_signAbortCallbacks = new WeakMap(), _TransactionController_skipSimulationTransactionIds = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_trace = 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, }) {
|
|
1480
1446
|
if (gasValues) {
|
|
1481
1447
|
// Not good practice to reassign a parameter but temporarily avoiding a larger refactor.
|
|
1482
1448
|
// eslint-disable-next-line no-param-reassign
|
|
@@ -1489,16 +1455,12 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1489
1455
|
if (!transactionMeta) {
|
|
1490
1456
|
return;
|
|
1491
1457
|
}
|
|
1492
|
-
/* istanbul ignore next */
|
|
1493
|
-
if (!__classPrivateFieldGet(this, _TransactionController_sign, "f")) {
|
|
1494
|
-
throw new Error('No sign method defined.');
|
|
1495
|
-
}
|
|
1496
1458
|
const newTxParams = (0, retry_1.getTransactionParamsWithIncreasedGasFee)(transactionMeta.txParams, rate, gasValues);
|
|
1497
1459
|
prepareTransactionParams?.(newTxParams);
|
|
1498
1460
|
const unsignedEthTx = (0, prepare_1.prepareTransaction)(transactionMeta.chainId, newTxParams);
|
|
1499
|
-
const
|
|
1500
|
-
const transactionMetaWithRsv = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionMetaRSV).call(this, transactionMeta,
|
|
1501
|
-
const rawTx = (0, prepare_1.serializeTransaction)(
|
|
1461
|
+
const signedTxData = await this.messenger.call('KeyringController:signTransaction', unsignedEthTx, transactionMeta.txParams.from);
|
|
1462
|
+
const transactionMetaWithRsv = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionMetaRSV).call(this, transactionMeta, signedTxData);
|
|
1463
|
+
const rawTx = (0, prepare_1.serializeTransaction)(transactionMeta.chainId, signedTxData);
|
|
1502
1464
|
const newFee = newTxParams.maxFeePerGas ?? newTxParams.gasPrice;
|
|
1503
1465
|
const oldFee = newTxParams.maxFeePerGas
|
|
1504
1466
|
? transactionMetaWithRsv.txParams.maxFeePerGas
|
|
@@ -1537,9 +1499,6 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1537
1499
|
});
|
|
1538
1500
|
afterSubmit?.(newTransactionMeta);
|
|
1539
1501
|
}, _TransactionController_signExternalTransaction = async function _TransactionController_signExternalTransaction(chainId, transactionParams) {
|
|
1540
|
-
if (!__classPrivateFieldGet(this, _TransactionController_sign, "f")) {
|
|
1541
|
-
throw new Error('No sign method defined.');
|
|
1542
|
-
}
|
|
1543
1502
|
const normalizedTransactionParams = (0, utils_2.normalizeTransactionParams)(transactionParams);
|
|
1544
1503
|
const type = (0, utils_2.isEIP1559Transaction)(normalizedTransactionParams)
|
|
1545
1504
|
? types_1.TransactionEnvelopeType.feeMarket
|
|
@@ -1552,8 +1511,8 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1552
1511
|
};
|
|
1553
1512
|
const { from } = updatedTransactionParams;
|
|
1554
1513
|
const unsignedTransaction = (0, prepare_1.prepareTransaction)(chainId, updatedTransactionParams);
|
|
1555
|
-
const
|
|
1556
|
-
const rawTransaction = (0, prepare_1.serializeTransaction)(
|
|
1514
|
+
const signedTxData = await this.messenger.call('KeyringController:signTransaction', unsignedTransaction, from);
|
|
1515
|
+
const rawTransaction = (0, prepare_1.serializeTransaction)(chainId, signedTxData);
|
|
1557
1516
|
return rawTransaction;
|
|
1558
1517
|
}, _TransactionController_addMetadata = function _TransactionController_addMetadata(transactionMeta) {
|
|
1559
1518
|
(0, validation_1.validateTxParams)(transactionMeta.txParams);
|
|
@@ -1572,7 +1531,7 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1572
1531
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Gas Fees', parentContext: traceContext }, async () => await (0, gas_fees_1.updateGasFees)({
|
|
1573
1532
|
eip1559: isEIP1559Compatible,
|
|
1574
1533
|
gasFeeFlows: __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"),
|
|
1575
|
-
getGasFeeEstimates:
|
|
1534
|
+
getGasFeeEstimates: (options) => this.messenger.call('GasFeeController:fetchGasFeeEstimates', options),
|
|
1576
1535
|
getSavedGasFees: __classPrivateFieldGet(this, _TransactionController_getSavedGasFees, "f").bind(this),
|
|
1577
1536
|
messenger: this.messenger,
|
|
1578
1537
|
txMeta: transactionMeta,
|
|
@@ -1705,11 +1664,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1705
1664
|
let transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
|
|
1706
1665
|
(0, logger_1.projectLogger)('Approving transaction', transactionMeta);
|
|
1707
1666
|
try {
|
|
1708
|
-
if (!
|
|
1709
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_failTransaction).call(this, transactionMeta, new Error('No sign method defined.'));
|
|
1710
|
-
return ApprovalState.NotApproved;
|
|
1711
|
-
}
|
|
1712
|
-
else if (!transactionMeta.chainId) {
|
|
1667
|
+
if (!transactionMeta.chainId) {
|
|
1713
1668
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_failTransaction).call(this, transactionMeta, new Error('No chainId defined.'));
|
|
1714
1669
|
return ApprovalState.NotApproved;
|
|
1715
1670
|
}
|
|
@@ -2045,13 +2000,11 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2045
2000
|
if (value === undefined || value === null) {
|
|
2046
2001
|
continue;
|
|
2047
2002
|
}
|
|
2048
|
-
transactionMetaWithRsv[key] = (0, utils_1.add0x)(value.toString(16));
|
|
2003
|
+
transactionMetaWithRsv[key] = (0, utils_1.add0x)(BigInt(value).toString(16));
|
|
2049
2004
|
}
|
|
2050
2005
|
return transactionMetaWithRsv;
|
|
2051
2006
|
}, _TransactionController_getEIP1559Compatibility = async function _TransactionController_getEIP1559Compatibility(networkClientId) {
|
|
2052
|
-
|
|
2053
|
-
const currentAccountIsEIP1559Compatible = await __classPrivateFieldGet(this, _TransactionController_getCurrentAccountEIP1559Compatibility, "f").call(this);
|
|
2054
|
-
return (currentNetworkIsEIP1559Compatible && currentAccountIsEIP1559Compatible);
|
|
2007
|
+
return ((await this.messenger.call('NetworkController:getEIP1559Compatibility', networkClientId)) ?? false);
|
|
2055
2008
|
}, _TransactionController_signTransaction = async function _TransactionController_signTransaction(originalTransactionMeta) {
|
|
2056
2009
|
let transactionMeta = originalTransactionMeta;
|
|
2057
2010
|
const { id: transactionId } = transactionMeta;
|
|
@@ -2093,29 +2046,23 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2093
2046
|
const unsignedEthTx = (0, prepare_1.prepareTransaction)(chainId, finalTxParams);
|
|
2094
2047
|
__classPrivateFieldGet(this, _TransactionController_approvingTransactionIds, "f").add(transactionId);
|
|
2095
2048
|
(0, logger_1.projectLogger)('Signing transaction', finalTxParams);
|
|
2096
|
-
const
|
|
2097
|
-
|
|
2049
|
+
const signedTxData = await new Promise((resolve, reject) => {
|
|
2050
|
+
// eslint-disable-next-line promise/catch-or-return
|
|
2051
|
+
this.messenger
|
|
2052
|
+
.call('KeyringController:signTransaction', unsignedEthTx, from)
|
|
2053
|
+
.then(resolve, reject);
|
|
2098
2054
|
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").set(transactionId, () => reject(new Error('Signing aborted by user')));
|
|
2099
2055
|
});
|
|
2100
2056
|
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").delete(transactionId);
|
|
2101
|
-
if (!signedTx) {
|
|
2102
|
-
(0, logger_1.projectLogger)('Skipping signed status as no signed transaction');
|
|
2103
|
-
return undefined;
|
|
2104
|
-
}
|
|
2105
2057
|
const transactionMetaFromHook = (0, lodash_1.cloneDeep)(finalTransactionMeta);
|
|
2106
|
-
if (!__classPrivateFieldGet(this, _TransactionController_afterSign, "f").call(this, transactionMetaFromHook, signedTx)) {
|
|
2107
|
-
this.updateTransaction(transactionMetaFromHook, 'TransactionController#signTransaction - Update after sign');
|
|
2108
|
-
(0, logger_1.projectLogger)('Skipping signed status based on hook');
|
|
2109
|
-
return undefined;
|
|
2110
|
-
}
|
|
2111
2058
|
const transactionMetaWithRsv = {
|
|
2112
|
-
...__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionMetaRSV).call(this, transactionMetaFromHook,
|
|
2059
|
+
...__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionMetaRSV).call(this, transactionMetaFromHook, signedTxData),
|
|
2113
2060
|
status: types_1.TransactionStatus.signed,
|
|
2114
2061
|
txParams: finalTxParams,
|
|
2115
2062
|
};
|
|
2116
2063
|
this.updateTransaction(transactionMetaWithRsv, 'TransactionController#approveTransaction - Transaction signed');
|
|
2117
2064
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMetaWithRsv);
|
|
2118
|
-
const rawTx = (0, prepare_1.serializeTransaction)(
|
|
2065
|
+
const rawTx = (0, prepare_1.serializeTransaction)(chainId, signedTxData);
|
|
2119
2066
|
const transactionMetaWithRawTx = (0, lodash_1.merge)({}, transactionMetaWithRsv, {
|
|
2120
2067
|
rawTx,
|
|
2121
2068
|
});
|
|
@@ -2179,13 +2126,9 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2179
2126
|
hooks: {
|
|
2180
2127
|
beforeCheckPendingTransaction: __classPrivateFieldGet(this, _TransactionController_beforeCheckPendingTransaction, "f").bind(this),
|
|
2181
2128
|
},
|
|
2182
|
-
isResubmitEnabled: __classPrivateFieldGet(this, _TransactionController_pendingTransactionOptions, "f").isResubmitEnabled,
|
|
2183
2129
|
isTimeoutEnabled: __classPrivateFieldGet(this, _TransactionController_isTimeoutEnabled, "f"),
|
|
2184
2130
|
messenger: this.messenger,
|
|
2185
2131
|
networkClientId,
|
|
2186
|
-
publishTransaction: (transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, transactionMeta, {
|
|
2187
|
-
skipSubmitHistory: true,
|
|
2188
|
-
}),
|
|
2189
2132
|
});
|
|
2190
2133
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addPendingTransactionTrackerListeners).call(this, pendingTransactionTracker);
|
|
2191
2134
|
return pendingTransactionTracker;
|
|
@@ -2209,8 +2152,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2209
2152
|
types_1.TransactionStatus.signed,
|
|
2210
2153
|
types_1.TransactionStatus.submitted,
|
|
2211
2154
|
], address, chainId);
|
|
2212
|
-
|
|
2213
|
-
return [...standardPendingTransactions, ...externalPendingTransactions];
|
|
2155
|
+
return standardPendingTransactions;
|
|
2214
2156
|
}, _TransactionController_publishTransactionForRetry = async function _TransactionController_publishTransactionForRetry(transactionMeta) {
|
|
2215
2157
|
try {
|
|
2216
2158
|
return await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, transactionMeta);
|
|
@@ -2339,7 +2281,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2339
2281
|
}
|
|
2340
2282
|
});
|
|
2341
2283
|
(0, logger_1.projectLogger)('Updated simulation data', transactionId, updatedTransactionMeta);
|
|
2342
|
-
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_runAfterSimulateHook).call(this, updatedTransactionMeta);
|
|
2343
2284
|
}, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
|
|
2344
2285
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, (txMeta) => {
|
|
2345
2286
|
(0, GasFeePoller_1.updateTransactionGasProperties)({
|
|
@@ -2373,7 +2314,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2373
2314
|
.map((account) => account.address);
|
|
2374
2315
|
}, _TransactionController_updateSubmitHistory = function _TransactionController_updateSubmitHistory(transactionMeta, hash) {
|
|
2375
2316
|
const { chainId, networkClientId, origin, rawTx, txParams } = transactionMeta;
|
|
2376
|
-
const { networkConfigurationsByChainId } =
|
|
2317
|
+
const { networkConfigurationsByChainId } = this.messenger.call('NetworkController:getState');
|
|
2377
2318
|
const networkConfiguration = networkConfigurationsByChainId[chainId];
|
|
2378
2319
|
const endpoint = networkConfiguration?.rpcEndpoints.find((currentEndpoint) => currentEndpoint.networkClientId === networkClientId);
|
|
2379
2320
|
const networkUrl = endpoint?.url;
|
|
@@ -2472,30 +2413,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2472
2413
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, newTransactionMeta);
|
|
2473
2414
|
this.messenger.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
|
|
2474
2415
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, newTransactionMeta);
|
|
2475
|
-
}, _TransactionController_runAfterSimulateHook = async function _TransactionController_runAfterSimulateHook(transactionMeta) {
|
|
2476
|
-
(0, logger_1.projectLogger)('Calling afterSimulate hook', transactionMeta);
|
|
2477
|
-
const { id: transactionId } = transactionMeta;
|
|
2478
|
-
const result = await __classPrivateFieldGet(this, _TransactionController_afterSimulate, "f").call(this, {
|
|
2479
|
-
transactionMeta,
|
|
2480
|
-
});
|
|
2481
|
-
const { skipSimulation, updateTransaction } = result ?? {};
|
|
2482
|
-
if (skipSimulation) {
|
|
2483
|
-
__classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").add(transactionId);
|
|
2484
|
-
}
|
|
2485
|
-
else if (skipSimulation === false) {
|
|
2486
|
-
__classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").delete(transactionId);
|
|
2487
|
-
}
|
|
2488
|
-
if (!updateTransaction) {
|
|
2489
|
-
return;
|
|
2490
|
-
}
|
|
2491
|
-
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2492
|
-
transactionId,
|
|
2493
|
-
skipResimulateCheck: true,
|
|
2494
|
-
}, (txMeta) => {
|
|
2495
|
-
txMeta.txParamsOriginal = (0, lodash_1.cloneDeep)(txMeta.txParams);
|
|
2496
|
-
updateTransaction(txMeta);
|
|
2497
|
-
});
|
|
2498
|
-
(0, logger_1.projectLogger)('Updated transaction with afterSimulate data', updatedTransactionMeta);
|
|
2499
2416
|
}, _TransactionController_defaultPublishHook = async function _TransactionController_defaultPublishHook({ networkClientId, publishHookOverride, traceContext, }, transactionMeta, signedTx) {
|
|
2500
2417
|
let transactionHash;
|
|
2501
2418
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Publish', parentContext: traceContext }, async () => {
|