@metamask-previews/transaction-controller 57.2.0-preview-53749f1 → 57.2.0-preview-4d46a3e9
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 +72 -19
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +17 -3
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +17 -3
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +72 -19
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/api/simulation-api.cjs +28 -2
- package/dist/api/simulation-api.cjs.map +1 -1
- package/dist/api/simulation-api.d.cts.map +1 -1
- package/dist/api/simulation-api.d.mts.map +1 -1
- package/dist/api/simulation-api.mjs +29 -2
- package/dist/api/simulation-api.mjs.map +1 -1
- package/dist/constants.cjs +5 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +2 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.mts +2 -0
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.mjs +4 -0
- package/dist/constants.mjs.map +1 -1
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs +6 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +28 -0
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +28 -0
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs +5 -0
- package/dist/types.mjs.map +1 -1
- package/dist/utils/gas.cjs +11 -1
- package/dist/utils/gas.cjs.map +1 -1
- package/dist/utils/gas.d.cts +3 -1
- package/dist/utils/gas.d.cts.map +1 -1
- package/dist/utils/gas.d.mts +3 -1
- package/dist/utils/gas.d.mts.map +1 -1
- package/dist/utils/gas.mjs +11 -1
- package/dist/utils/gas.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
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Add optional `afterSimulate` and `beforeSign` hooks to constructor ([#5503](https://github.com/MetaMask/core/pull/5503))
|
|
13
|
+
- Add `AfterSimulateHook` type.
|
|
14
|
+
- Add `BeforeSignHook` type.
|
|
15
|
+
- Add `TransactionContainerType` enum.
|
|
16
|
+
- Add `TransactionControllerEstimateGasAction` type.
|
|
17
|
+
- Add optional `containerTypes` property to `TransactionMeta`.
|
|
18
|
+
- Add optional `ignoreDelegationSignatures` boolean to `estimateGas` method.
|
|
19
|
+
|
|
10
20
|
## [57.2.0]
|
|
11
21
|
|
|
12
22
|
### Added
|
|
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || 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_afterAdd, _TransactionController_afterSign, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isHistoryDisabled, _TransactionController_isSendFlowHistoryDisabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_securityProviderRequest, _TransactionController_sign, _TransactionController_signAbortCallbacks, _TransactionController_testGasFeeFlows, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _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_updateFirstTimeInteraction, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_registerActionHandlers, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow, _TransactionController_failTransaction;
|
|
16
|
+
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_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isHistoryDisabled, _TransactionController_isSendFlowHistoryDisabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _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_transactionHistoryLimit, _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_updateFirstTimeInteraction, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_registerActionHandlers, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow, _TransactionController_failTransaction, _TransactionController_runAfterSimulateHook;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.TransactionController = exports.ApprovalState = exports.SPEED_UP_RATE = exports.CANCEL_RATE = void 0;
|
|
19
19
|
const base_controller_1 = require("@metamask/base-controller");
|
|
@@ -147,9 +147,11 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
147
147
|
_TransactionController_instances.add(this);
|
|
148
148
|
_TransactionController_afterAdd.set(this, void 0);
|
|
149
149
|
_TransactionController_afterSign.set(this, void 0);
|
|
150
|
+
_TransactionController_afterSimulate.set(this, void 0);
|
|
150
151
|
_TransactionController_approvingTransactionIds.set(this, new Set());
|
|
151
152
|
_TransactionController_beforeCheckPendingTransaction.set(this, void 0);
|
|
152
153
|
_TransactionController_beforePublish.set(this, void 0);
|
|
154
|
+
_TransactionController_beforeSign.set(this, void 0);
|
|
153
155
|
_TransactionController_gasFeeFlows.set(this, void 0);
|
|
154
156
|
_TransactionController_getAdditionalSignArguments.set(this, void 0);
|
|
155
157
|
_TransactionController_getCurrentAccountEIP1559Compatibility.set(this, void 0);
|
|
@@ -179,6 +181,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
179
181
|
_TransactionController_securityProviderRequest.set(this, void 0);
|
|
180
182
|
_TransactionController_sign.set(this, void 0);
|
|
181
183
|
_TransactionController_signAbortCallbacks.set(this, new Map());
|
|
184
|
+
_TransactionController_skipSimulationTransactionIds.set(this, new Set());
|
|
182
185
|
_TransactionController_testGasFeeFlows.set(this, void 0);
|
|
183
186
|
_TransactionController_trace.set(this, void 0);
|
|
184
187
|
_TransactionController_transactionHistoryLimit.set(this, void 0);
|
|
@@ -188,10 +191,12 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
188
191
|
this.messagingSystem = messenger;
|
|
189
192
|
__classPrivateFieldSet(this, _TransactionController_afterAdd, hooks?.afterAdd ?? (() => Promise.resolve({})), "f");
|
|
190
193
|
__classPrivateFieldSet(this, _TransactionController_afterSign, hooks?.afterSign ?? (() => true), "f");
|
|
194
|
+
__classPrivateFieldSet(this, _TransactionController_afterSimulate, hooks?.afterSimulate ?? (() => Promise.resolve({})), "f");
|
|
191
195
|
__classPrivateFieldSet(this, _TransactionController_beforeCheckPendingTransaction,
|
|
192
196
|
/* istanbul ignore next */
|
|
193
197
|
hooks?.beforeCheckPendingTransaction ?? (() => Promise.resolve(true)), "f");
|
|
194
198
|
__classPrivateFieldSet(this, _TransactionController_beforePublish, hooks?.beforePublish ?? (() => Promise.resolve(true)), "f");
|
|
199
|
+
__classPrivateFieldSet(this, _TransactionController_beforeSign, hooks?.beforeSign ?? (() => Promise.resolve({})), "f");
|
|
195
200
|
__classPrivateFieldSet(this, _TransactionController_getAdditionalSignArguments, hooks?.getAdditionalSignArguments ?? (() => []), "f");
|
|
196
201
|
__classPrivateFieldSet(this, _TransactionController_getCurrentAccountEIP1559Compatibility, getCurrentAccountEIP1559Compatibility ?? (() => Promise.resolve(true)), "f");
|
|
197
202
|
__classPrivateFieldSet(this, _TransactionController_getCurrentNetworkEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, "f");
|
|
@@ -577,15 +582,18 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
577
582
|
*
|
|
578
583
|
* @param transaction - The transaction to estimate gas for.
|
|
579
584
|
* @param networkClientId - The network client id to use for the estimate.
|
|
585
|
+
* @param options - Additional options for the estimate.
|
|
586
|
+
* @param options.ignoreDelegationSignatures - Ignore signature errors if submitting delegations to the DelegationManager.
|
|
580
587
|
* @returns The gas and gas price.
|
|
581
588
|
*/
|
|
582
|
-
async estimateGas(transaction, networkClientId) {
|
|
589
|
+
async estimateGas(transaction, networkClientId, { ignoreDelegationSignatures, } = {}) {
|
|
583
590
|
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
|
|
584
591
|
networkClientId,
|
|
585
592
|
});
|
|
586
593
|
const { estimatedGas, simulationFails } = await (0, gas_1.estimateGas)({
|
|
587
594
|
chainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId),
|
|
588
595
|
ethQuery,
|
|
596
|
+
ignoreDelegationSignatures,
|
|
589
597
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
|
|
590
598
|
messenger: this.messagingSystem,
|
|
591
599
|
txParams: transaction,
|
|
@@ -1267,7 +1275,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1267
1275
|
}
|
|
1268
1276
|
}
|
|
1269
1277
|
exports.TransactionController = TransactionController;
|
|
1270
|
-
_TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSign = new WeakMap(), _TransactionController_approvingTransactionIds = new WeakMap(), _TransactionController_beforeCheckPendingTransaction = new WeakMap(), _TransactionController_beforePublish = 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_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_internalEvents = new WeakMap(), _TransactionController_isAutomaticGasFeeUpdateEnabled = new WeakMap(), _TransactionController_isEIP7702GasFeeTokensEnabled = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isHistoryDisabled = new WeakMap(), _TransactionController_isSendFlowHistoryDisabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_isSwapsDisabled = 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_testGasFeeFlows = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = 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, }) {
|
|
1278
|
+
_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_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_internalEvents = new WeakMap(), _TransactionController_isAutomaticGasFeeUpdateEnabled = new WeakMap(), _TransactionController_isEIP7702GasFeeTokensEnabled = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isHistoryDisabled = new WeakMap(), _TransactionController_isSendFlowHistoryDisabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_isSwapsDisabled = 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_transactionHistoryLimit = 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, }) {
|
|
1271
1279
|
// If transaction is found for same action id, do not create a new transaction.
|
|
1272
1280
|
if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId)) {
|
|
1273
1281
|
return;
|
|
@@ -1442,6 +1450,9 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1442
1450
|
}
|
|
1443
1451
|
}
|
|
1444
1452
|
}
|
|
1453
|
+
finally {
|
|
1454
|
+
__classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").delete(transactionId);
|
|
1455
|
+
}
|
|
1445
1456
|
}
|
|
1446
1457
|
const finalMeta = await finishedPromise;
|
|
1447
1458
|
switch (finalMeta?.status) {
|
|
@@ -1818,31 +1829,43 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1818
1829
|
const currentAccountIsEIP1559Compatible = await __classPrivateFieldGet(this, _TransactionController_getCurrentAccountEIP1559Compatibility, "f").call(this);
|
|
1819
1830
|
return (currentNetworkIsEIP1559Compatible && currentAccountIsEIP1559Compatible);
|
|
1820
1831
|
}, _TransactionController_signTransaction = async function _TransactionController_signTransaction(transactionMeta) {
|
|
1821
|
-
const { isExternalSign, txParams } = transactionMeta;
|
|
1832
|
+
const { chainId, id: transactionId, isExternalSign, txParams, } = transactionMeta;
|
|
1822
1833
|
if (isExternalSign) {
|
|
1823
1834
|
(0, logger_1.projectLogger)('Skipping sign as signed externally');
|
|
1824
1835
|
return undefined;
|
|
1825
1836
|
}
|
|
1826
|
-
(0, logger_1.projectLogger)('Signing transaction', txParams);
|
|
1827
1837
|
const { authorizationList, from } = txParams;
|
|
1828
|
-
const
|
|
1829
|
-
finalTxParams.authorizationList = await (0, eip7702_1.signAuthorizationList)({
|
|
1838
|
+
const signedAuthorizationList = await (0, eip7702_1.signAuthorizationList)({
|
|
1830
1839
|
authorizationList,
|
|
1831
1840
|
messenger: this.messagingSystem,
|
|
1832
1841
|
transactionMeta,
|
|
1833
1842
|
});
|
|
1834
|
-
|
|
1835
|
-
|
|
1843
|
+
if (signedAuthorizationList) {
|
|
1844
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, (txMeta) => {
|
|
1845
|
+
txMeta.txParams.authorizationList = signedAuthorizationList;
|
|
1846
|
+
});
|
|
1847
|
+
}
|
|
1848
|
+
(0, logger_1.projectLogger)('Calling before sign hook', transactionMeta);
|
|
1849
|
+
const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
|
|
1850
|
+
if (updateTransaction) {
|
|
1851
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true, note: 'beforeSign Hook' }, updateTransaction);
|
|
1852
|
+
(0, logger_1.projectLogger)('Updated transaction after before sign hook');
|
|
1853
|
+
}
|
|
1854
|
+
const finalTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
|
|
1855
|
+
const { txParams: finalTxParams } = finalTransactionMeta;
|
|
1856
|
+
const unsignedEthTx = (0, prepare_1.prepareTransaction)(chainId, finalTxParams);
|
|
1857
|
+
__classPrivateFieldGet(this, _TransactionController_approvingTransactionIds, "f").add(transactionId);
|
|
1858
|
+
(0, logger_1.projectLogger)('Signing transaction', finalTxParams);
|
|
1836
1859
|
const signedTx = await new Promise((resolve, reject) => {
|
|
1837
|
-
__classPrivateFieldGet(this, _TransactionController_sign, "f")?.call(this, unsignedEthTx, from, ...__classPrivateFieldGet(this, _TransactionController_getAdditionalSignArguments, "f").call(this,
|
|
1838
|
-
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").set(
|
|
1860
|
+
__classPrivateFieldGet(this, _TransactionController_sign, "f")?.call(this, unsignedEthTx, from, ...__classPrivateFieldGet(this, _TransactionController_getAdditionalSignArguments, "f").call(this, finalTransactionMeta)).then(resolve, reject);
|
|
1861
|
+
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").set(transactionId, () => reject(new Error('Signing aborted by user')));
|
|
1839
1862
|
});
|
|
1840
|
-
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").delete(
|
|
1863
|
+
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").delete(transactionId);
|
|
1841
1864
|
if (!signedTx) {
|
|
1842
1865
|
(0, logger_1.projectLogger)('Skipping signed status as no signed transaction');
|
|
1843
1866
|
return undefined;
|
|
1844
1867
|
}
|
|
1845
|
-
const transactionMetaFromHook = (0, lodash_1.cloneDeep)(
|
|
1868
|
+
const transactionMetaFromHook = (0, lodash_1.cloneDeep)(finalTransactionMeta);
|
|
1846
1869
|
if (!__classPrivateFieldGet(this, _TransactionController_afterSign, "f").call(this, transactionMetaFromHook, signedTx)) {
|
|
1847
1870
|
this.updateTransaction(transactionMetaFromHook, 'TransactionController#signTransaction - Update after sign');
|
|
1848
1871
|
(0, logger_1.projectLogger)('Skipping signed status based on hook');
|
|
@@ -2061,7 +2084,8 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2061
2084
|
tokenBalanceChanges: [],
|
|
2062
2085
|
};
|
|
2063
2086
|
let gasFeeTokens = [];
|
|
2064
|
-
|
|
2087
|
+
const isBalanceChangesSkipped = __classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").has(transactionId);
|
|
2088
|
+
if (__classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this) && !isBalanceChangesSkipped) {
|
|
2065
2089
|
simulationData = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Simulate', parentContext: traceContext }, () => (0, balance_changes_1.getBalanceChanges)({
|
|
2066
2090
|
blockTime,
|
|
2067
2091
|
chainId,
|
|
@@ -2085,21 +2109,24 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2085
2109
|
transactionMeta,
|
|
2086
2110
|
});
|
|
2087
2111
|
}
|
|
2088
|
-
const
|
|
2112
|
+
const latestTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
2089
2113
|
/* istanbul ignore if */
|
|
2090
|
-
if (!
|
|
2114
|
+
if (!latestTransactionMeta) {
|
|
2091
2115
|
(0, logger_1.projectLogger)('Cannot update simulation data as transaction not found', transactionId, simulationData);
|
|
2092
2116
|
return;
|
|
2093
2117
|
}
|
|
2094
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2118
|
+
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2095
2119
|
transactionId,
|
|
2096
2120
|
note: 'TransactionController#updateSimulationData - Update simulation data',
|
|
2097
2121
|
skipResimulateCheck: Boolean(blockTime),
|
|
2098
2122
|
}, (txMeta) => {
|
|
2099
2123
|
txMeta.gasFeeTokens = gasFeeTokens;
|
|
2100
|
-
|
|
2124
|
+
if (!isBalanceChangesSkipped) {
|
|
2125
|
+
txMeta.simulationData = simulationData;
|
|
2126
|
+
}
|
|
2101
2127
|
});
|
|
2102
|
-
(0, logger_1.projectLogger)('Updated simulation data', transactionId,
|
|
2128
|
+
(0, logger_1.projectLogger)('Updated simulation data', transactionId, updatedTransactionMeta);
|
|
2129
|
+
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_runAfterSimulateHook).call(this, updatedTransactionMeta);
|
|
2103
2130
|
}, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
|
|
2104
2131
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipHistory: true }, (txMeta) => {
|
|
2105
2132
|
(0, GasFeePoller_1.updateTransactionGasProperties)({
|
|
@@ -2156,6 +2183,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2156
2183
|
txMeta: transactionMeta,
|
|
2157
2184
|
});
|
|
2158
2185
|
}, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
|
|
2186
|
+
this.messagingSystem.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
|
|
2159
2187
|
this.messagingSystem.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
|
|
2160
2188
|
}, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
|
|
2161
2189
|
this.update((state) => {
|
|
@@ -2204,5 +2232,30 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2204
2232
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, newTransactionMeta);
|
|
2205
2233
|
this.messagingSystem.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
|
|
2206
2234
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, newTransactionMeta);
|
|
2235
|
+
}, _TransactionController_runAfterSimulateHook = async function _TransactionController_runAfterSimulateHook(transactionMeta) {
|
|
2236
|
+
(0, logger_1.projectLogger)('Calling afterSimulate hook', transactionMeta);
|
|
2237
|
+
const { id: transactionId } = transactionMeta;
|
|
2238
|
+
const result = await __classPrivateFieldGet(this, _TransactionController_afterSimulate, "f").call(this, {
|
|
2239
|
+
transactionMeta,
|
|
2240
|
+
});
|
|
2241
|
+
const { skipSimulation, updateTransaction } = result || {};
|
|
2242
|
+
if (skipSimulation) {
|
|
2243
|
+
__classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").add(transactionId);
|
|
2244
|
+
}
|
|
2245
|
+
else if (skipSimulation === false) {
|
|
2246
|
+
__classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").delete(transactionId);
|
|
2247
|
+
}
|
|
2248
|
+
if (!updateTransaction) {
|
|
2249
|
+
return;
|
|
2250
|
+
}
|
|
2251
|
+
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2252
|
+
transactionId,
|
|
2253
|
+
skipResimulateCheck: true,
|
|
2254
|
+
note: 'afterSimulate Hook',
|
|
2255
|
+
}, (txMeta) => {
|
|
2256
|
+
txMeta.txParamsOriginal = (0, lodash_1.cloneDeep)(txMeta.txParams);
|
|
2257
|
+
updateTransaction(txMeta);
|
|
2258
|
+
});
|
|
2259
|
+
(0, logger_1.projectLogger)('Updated transaction with afterSimulate data', updatedTransactionMeta);
|
|
2207
2260
|
};
|
|
2208
2261
|
//# sourceMappingURL=TransactionController.cjs.map
|