@metamask/transaction-controller 62.22.0 → 63.0.0
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 +35 -1
- package/dist/TransactionController-method-action-types.cjs +7 -0
- package/dist/TransactionController-method-action-types.cjs.map +1 -0
- package/dist/TransactionController-method-action-types.d.cts +327 -0
- package/dist/TransactionController-method-action-types.d.cts.map +1 -0
- package/dist/TransactionController-method-action-types.d.mts +327 -0
- package/dist/TransactionController-method-action-types.d.mts.map +1 -0
- package/dist/TransactionController-method-action-types.mjs +6 -0
- package/dist/TransactionController-method-action-types.mjs.map +1 -0
- package/dist/TransactionController.cjs +80 -30
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +34 -91
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +34 -91
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +80 -30
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -3
|
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
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");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_afterSign, _TransactionController_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _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_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_securityProviderRequest, _TransactionController_sign, _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_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_onIncomingTransactions, _TransactionController_generateDappSuggestedGasFees, _TransactionController_addExternalTransaction, _TransactionController_markNonceDuplicatesDropped, _TransactionController_setTransactionStatusDropped, _TransactionController_getTransactionWithActionId, _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_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_runAfterSimulateHook, _TransactionController_defaultPublishHook, _TransactionController_getGasFeeTokens
|
|
12
|
+
var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_afterSign, _TransactionController_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _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_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_securityProviderRequest, _TransactionController_sign, _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_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_onIncomingTransactions, _TransactionController_generateDappSuggestedGasFees, _TransactionController_addExternalTransaction, _TransactionController_markNonceDuplicatesDropped, _TransactionController_setTransactionStatusDropped, _TransactionController_getTransactionWithActionId, _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_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_runAfterSimulateHook, _TransactionController_defaultPublishHook, _TransactionController_getGasFeeTokens;
|
|
13
13
|
function $importDefault(module) {
|
|
14
14
|
if (module?.__esModule) {
|
|
15
15
|
return module.default;
|
|
@@ -135,6 +135,37 @@ function getDefaultTransactionControllerState() {
|
|
|
135
135
|
submitHistory: [],
|
|
136
136
|
};
|
|
137
137
|
}
|
|
138
|
+
// === MESSENGER ===
|
|
139
|
+
const MESSENGER_EXPOSED_METHODS = [
|
|
140
|
+
'abortTransactionSigning',
|
|
141
|
+
'addTransaction',
|
|
142
|
+
'addTransactionBatch',
|
|
143
|
+
'approveTransactionsWithSameNonce',
|
|
144
|
+
'clearUnapprovedTransactions',
|
|
145
|
+
'confirmExternalTransaction',
|
|
146
|
+
'emulateNewTransaction',
|
|
147
|
+
'emulateTransactionUpdate',
|
|
148
|
+
'estimateGas',
|
|
149
|
+
'estimateGasBatch',
|
|
150
|
+
'estimateGasBuffered',
|
|
151
|
+
'estimateGasFee',
|
|
152
|
+
'getGasFeeTokens',
|
|
153
|
+
'getLayer1GasFee',
|
|
154
|
+
'getNonceLock',
|
|
155
|
+
'getTransactions',
|
|
156
|
+
'handleMethodData',
|
|
157
|
+
'isAtomicBatchSupported',
|
|
158
|
+
'setTransactionActive',
|
|
159
|
+
'speedUpTransaction',
|
|
160
|
+
'startIncomingTransactionPolling',
|
|
161
|
+
'stopIncomingTransactionPolling',
|
|
162
|
+
'stopTransaction',
|
|
163
|
+
'updateAtomicBatchData',
|
|
164
|
+
'updateCustodialTransaction',
|
|
165
|
+
'updateEditableParams',
|
|
166
|
+
'updateIncomingTransactions',
|
|
167
|
+
'updateTransaction',
|
|
168
|
+
];
|
|
138
169
|
/**
|
|
139
170
|
* Controller responsible for submitting and managing transactions.
|
|
140
171
|
*/
|
|
@@ -552,9 +583,15 @@ export class TransactionController extends BaseController {
|
|
|
552
583
|
transactionMeta: addedTransactionMeta,
|
|
553
584
|
};
|
|
554
585
|
}
|
|
586
|
+
/**
|
|
587
|
+
* Starts polling for incoming transactions from the remote transaction source.
|
|
588
|
+
*/
|
|
555
589
|
startIncomingTransactionPolling() {
|
|
556
590
|
__classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").start();
|
|
557
591
|
}
|
|
592
|
+
/**
|
|
593
|
+
* Stops polling for incoming transactions from the remote transaction source.
|
|
594
|
+
*/
|
|
558
595
|
stopIncomingTransactionPolling() {
|
|
559
596
|
__classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").stop();
|
|
560
597
|
}
|
|
@@ -915,6 +952,14 @@ export class TransactionController extends BaseController {
|
|
|
915
952
|
this.updateTransaction(updatedMeta, `${controllerName}:updatePreviousGasParams - Previous gas values updated`);
|
|
916
953
|
return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
917
954
|
}
|
|
955
|
+
/**
|
|
956
|
+
* Acquires a nonce lock for the given address on the specified network,
|
|
957
|
+
* ensuring that nonces are assigned sequentially without conflicts.
|
|
958
|
+
*
|
|
959
|
+
* @param address - The account address for which to acquire the nonce lock.
|
|
960
|
+
* @param networkClientId - The ID of the network client to use.
|
|
961
|
+
* @returns A promise that resolves to a nonce lock containing the next nonce and a release function.
|
|
962
|
+
*/
|
|
918
963
|
async getNonceLock(address, networkClientId) {
|
|
919
964
|
return __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNonceLock(address, networkClientId);
|
|
920
965
|
}
|
|
@@ -1179,6 +1224,15 @@ export class TransactionController extends BaseController {
|
|
|
1179
1224
|
}
|
|
1180
1225
|
return filteredTransactions;
|
|
1181
1226
|
}
|
|
1227
|
+
/**
|
|
1228
|
+
* Estimates the gas fees for a transaction.
|
|
1229
|
+
*
|
|
1230
|
+
* @param args - The arguments for estimating gas fees.
|
|
1231
|
+
* @param args.transactionParams - The transaction parameters to estimate fees for.
|
|
1232
|
+
* @param args.chainId - The chain ID to use. If not provided, the network client ID is used to determine the chain.
|
|
1233
|
+
* @param args.networkClientId - The network client ID to use for the estimation.
|
|
1234
|
+
* @returns A promise that resolves to the estimated gas fee response.
|
|
1235
|
+
*/
|
|
1182
1236
|
async estimateGasFee({ transactionParams, chainId, networkClientId: requestNetworkClientId, }) {
|
|
1183
1237
|
const { id: networkClientId, provider } = __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({
|
|
1184
1238
|
chainId,
|
|
@@ -1391,6 +1445,30 @@ export class TransactionController extends BaseController {
|
|
|
1391
1445
|
transactionMeta: updatedTransactionMeta,
|
|
1392
1446
|
});
|
|
1393
1447
|
}
|
|
1448
|
+
/**
|
|
1449
|
+
* Retrieve available gas fee tokens for a transaction.
|
|
1450
|
+
*
|
|
1451
|
+
* @param request - The request object containing transaction details.
|
|
1452
|
+
* @returns The list of available gas fee tokens.
|
|
1453
|
+
*/
|
|
1454
|
+
async getGasFeeTokens(request) {
|
|
1455
|
+
const { chainId, data, from, to, value } = request;
|
|
1456
|
+
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId });
|
|
1457
|
+
const delegationAddress = await getDelegationAddress(from, ethQuery);
|
|
1458
|
+
const transaction = {
|
|
1459
|
+
chainId,
|
|
1460
|
+
delegationAddress,
|
|
1461
|
+
isExternalSign: true,
|
|
1462
|
+
txParams: {
|
|
1463
|
+
data,
|
|
1464
|
+
from,
|
|
1465
|
+
to,
|
|
1466
|
+
value,
|
|
1467
|
+
},
|
|
1468
|
+
};
|
|
1469
|
+
const result = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, transaction);
|
|
1470
|
+
return result.gasFeeTokens;
|
|
1471
|
+
}
|
|
1394
1472
|
}
|
|
1395
1473
|
_TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSign = new WeakMap(), _TransactionController_afterSimulate = new WeakMap(), _TransactionController_approvingTransactionIds = new WeakMap(), _TransactionController_beforeCheckPendingTransaction = new WeakMap(), _TransactionController_beforePublish = new WeakMap(), _TransactionController_beforeSign = new WeakMap(), _TransactionController_gasFeeFlows = new WeakMap(), _TransactionController_getAdditionalSignArguments = new WeakMap(), _TransactionController_getCurrentAccountEIP1559Compatibility = new WeakMap(), _TransactionController_getCurrentNetworkEIP1559Compatibility = new WeakMap(), _TransactionController_getExternalPendingTransactions = new WeakMap(), _TransactionController_getGasFeeEstimates = new WeakMap(), _TransactionController_getNetworkState = 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_pendingTransactionOptions = new WeakMap(), _TransactionController_publicKeyEIP7702 = new WeakMap(), _TransactionController_publish = new WeakMap(), _TransactionController_publishBatchHook = new WeakMap(), _TransactionController_securityProviderRequest = new WeakMap(), _TransactionController_sign = 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, }) {
|
|
1396
1474
|
// If transaction is found for same action id, do not create a new transaction.
|
|
@@ -2332,18 +2410,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2332
2410
|
txMeta: transactionMeta,
|
|
2333
2411
|
});
|
|
2334
2412
|
}, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
|
|
2335
|
-
this.messenger.
|
|
2336
|
-
this.messenger.registerActionHandler(`${controllerName}:addTransactionBatch`, this.addTransactionBatch.bind(this));
|
|
2337
|
-
this.messenger.registerActionHandler(`${controllerName}:confirmExternalTransaction`, this.confirmExternalTransaction.bind(this));
|
|
2338
|
-
this.messenger.registerActionHandler(`${controllerName}:emulateNewTransaction`, this.emulateNewTransaction.bind(this));
|
|
2339
|
-
this.messenger.registerActionHandler(`${controllerName}:emulateTransactionUpdate`, this.emulateTransactionUpdate.bind(this));
|
|
2340
|
-
this.messenger.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
|
|
2341
|
-
this.messenger.registerActionHandler(`${controllerName}:estimateGasBatch`, this.estimateGasBatch.bind(this));
|
|
2342
|
-
this.messenger.registerActionHandler(`${controllerName}:getGasFeeTokens`, __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokensAction).bind(this));
|
|
2343
|
-
this.messenger.registerActionHandler(`${controllerName}:getNonceLock`, this.getNonceLock.bind(this));
|
|
2344
|
-
this.messenger.registerActionHandler(`${controllerName}:getTransactions`, this.getTransactions.bind(this));
|
|
2345
|
-
this.messenger.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
|
|
2346
|
-
this.messenger.registerActionHandler(`${controllerName}:updateTransaction`, this.updateTransaction.bind(this));
|
|
2413
|
+
this.messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);
|
|
2347
2414
|
}, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
|
|
2348
2415
|
this.update((state) => {
|
|
2349
2416
|
const transactions = state.transactions.filter(({ id }) => id !== transactionId);
|
|
@@ -2437,22 +2504,5 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2437
2504
|
publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
|
|
2438
2505
|
transactionMeta: transaction,
|
|
2439
2506
|
});
|
|
2440
|
-
}, _TransactionController_getGasFeeTokensAction = async function _TransactionController_getGasFeeTokensAction(request) {
|
|
2441
|
-
const { chainId, data, from, to, value } = request;
|
|
2442
|
-
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId });
|
|
2443
|
-
const delegationAddress = await getDelegationAddress(from, ethQuery);
|
|
2444
|
-
const transaction = {
|
|
2445
|
-
chainId,
|
|
2446
|
-
delegationAddress,
|
|
2447
|
-
isExternalSign: true,
|
|
2448
|
-
txParams: {
|
|
2449
|
-
data,
|
|
2450
|
-
from,
|
|
2451
|
-
to,
|
|
2452
|
-
value,
|
|
2453
|
-
},
|
|
2454
|
-
};
|
|
2455
|
-
const result = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, transaction);
|
|
2456
|
-
return result.gasFeeTokens;
|
|
2457
2507
|
};
|
|
2458
2508
|
//# sourceMappingURL=TransactionController.mjs.map
|