@metamask-previews/transaction-controller 57.3.0-preview-cf465cec → 57.3.0-preview-8e80bb02
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 +7 -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
|
@@ -9,6 +9,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
### Added
|
|
11
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.
|
|
12
19
|
- Add `gasFeeEstimates` property to `TransactionBatchMeta`, populated using `DefaultGasFeeFlow` ([#5886](https://github.com/MetaMask/core/pull/5886))
|
|
13
20
|
|
|
14
21
|
## [57.3.0]
|
|
@@ -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");
|
|
@@ -578,15 +583,18 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
578
583
|
*
|
|
579
584
|
* @param transaction - The transaction to estimate gas for.
|
|
580
585
|
* @param networkClientId - The network client id to use for the estimate.
|
|
586
|
+
* @param options - Additional options for the estimate.
|
|
587
|
+
* @param options.ignoreDelegationSignatures - Ignore signature errors if submitting delegations to the DelegationManager.
|
|
581
588
|
* @returns The gas and gas price.
|
|
582
589
|
*/
|
|
583
|
-
async estimateGas(transaction, networkClientId) {
|
|
590
|
+
async estimateGas(transaction, networkClientId, { ignoreDelegationSignatures, } = {}) {
|
|
584
591
|
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
|
|
585
592
|
networkClientId,
|
|
586
593
|
});
|
|
587
594
|
const { estimatedGas, simulationFails } = await (0, gas_1.estimateGas)({
|
|
588
595
|
chainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId),
|
|
589
596
|
ethQuery,
|
|
597
|
+
ignoreDelegationSignatures,
|
|
590
598
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
|
|
591
599
|
messenger: this.messagingSystem,
|
|
592
600
|
txParams: transaction,
|
|
@@ -1268,7 +1276,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1268
1276
|
}
|
|
1269
1277
|
}
|
|
1270
1278
|
exports.TransactionController = TransactionController;
|
|
1271
|
-
_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, }) {
|
|
1279
|
+
_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, }) {
|
|
1272
1280
|
// If transaction is found for same action id, do not create a new transaction.
|
|
1273
1281
|
if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId)) {
|
|
1274
1282
|
return;
|
|
@@ -1443,6 +1451,9 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1443
1451
|
}
|
|
1444
1452
|
}
|
|
1445
1453
|
}
|
|
1454
|
+
finally {
|
|
1455
|
+
__classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").delete(transactionId);
|
|
1456
|
+
}
|
|
1446
1457
|
}
|
|
1447
1458
|
const finalMeta = await finishedPromise;
|
|
1448
1459
|
switch (finalMeta?.status) {
|
|
@@ -1819,31 +1830,43 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1819
1830
|
const currentAccountIsEIP1559Compatible = await __classPrivateFieldGet(this, _TransactionController_getCurrentAccountEIP1559Compatibility, "f").call(this);
|
|
1820
1831
|
return (currentNetworkIsEIP1559Compatible && currentAccountIsEIP1559Compatible);
|
|
1821
1832
|
}, _TransactionController_signTransaction = async function _TransactionController_signTransaction(transactionMeta) {
|
|
1822
|
-
const { isExternalSign, txParams } = transactionMeta;
|
|
1833
|
+
const { chainId, id: transactionId, isExternalSign, txParams, } = transactionMeta;
|
|
1823
1834
|
if (isExternalSign) {
|
|
1824
1835
|
(0, logger_1.projectLogger)('Skipping sign as signed externally');
|
|
1825
1836
|
return undefined;
|
|
1826
1837
|
}
|
|
1827
|
-
(0, logger_1.projectLogger)('Signing transaction', txParams);
|
|
1828
1838
|
const { authorizationList, from } = txParams;
|
|
1829
|
-
const
|
|
1830
|
-
finalTxParams.authorizationList = await (0, eip7702_1.signAuthorizationList)({
|
|
1839
|
+
const signedAuthorizationList = await (0, eip7702_1.signAuthorizationList)({
|
|
1831
1840
|
authorizationList,
|
|
1832
1841
|
messenger: this.messagingSystem,
|
|
1833
1842
|
transactionMeta,
|
|
1834
1843
|
});
|
|
1835
|
-
|
|
1836
|
-
|
|
1844
|
+
if (signedAuthorizationList) {
|
|
1845
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, (txMeta) => {
|
|
1846
|
+
txMeta.txParams.authorizationList = signedAuthorizationList;
|
|
1847
|
+
});
|
|
1848
|
+
}
|
|
1849
|
+
(0, logger_1.projectLogger)('Calling before sign hook', transactionMeta);
|
|
1850
|
+
const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
|
|
1851
|
+
if (updateTransaction) {
|
|
1852
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true, note: 'beforeSign Hook' }, updateTransaction);
|
|
1853
|
+
(0, logger_1.projectLogger)('Updated transaction after before sign hook');
|
|
1854
|
+
}
|
|
1855
|
+
const finalTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
|
|
1856
|
+
const { txParams: finalTxParams } = finalTransactionMeta;
|
|
1857
|
+
const unsignedEthTx = (0, prepare_1.prepareTransaction)(chainId, finalTxParams);
|
|
1858
|
+
__classPrivateFieldGet(this, _TransactionController_approvingTransactionIds, "f").add(transactionId);
|
|
1859
|
+
(0, logger_1.projectLogger)('Signing transaction', finalTxParams);
|
|
1837
1860
|
const signedTx = await new Promise((resolve, reject) => {
|
|
1838
|
-
__classPrivateFieldGet(this, _TransactionController_sign, "f")?.call(this, unsignedEthTx, from, ...__classPrivateFieldGet(this, _TransactionController_getAdditionalSignArguments, "f").call(this,
|
|
1839
|
-
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").set(
|
|
1861
|
+
__classPrivateFieldGet(this, _TransactionController_sign, "f")?.call(this, unsignedEthTx, from, ...__classPrivateFieldGet(this, _TransactionController_getAdditionalSignArguments, "f").call(this, finalTransactionMeta)).then(resolve, reject);
|
|
1862
|
+
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").set(transactionId, () => reject(new Error('Signing aborted by user')));
|
|
1840
1863
|
});
|
|
1841
|
-
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").delete(
|
|
1864
|
+
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").delete(transactionId);
|
|
1842
1865
|
if (!signedTx) {
|
|
1843
1866
|
(0, logger_1.projectLogger)('Skipping signed status as no signed transaction');
|
|
1844
1867
|
return undefined;
|
|
1845
1868
|
}
|
|
1846
|
-
const transactionMetaFromHook = (0, lodash_1.cloneDeep)(
|
|
1869
|
+
const transactionMetaFromHook = (0, lodash_1.cloneDeep)(finalTransactionMeta);
|
|
1847
1870
|
if (!__classPrivateFieldGet(this, _TransactionController_afterSign, "f").call(this, transactionMetaFromHook, signedTx)) {
|
|
1848
1871
|
this.updateTransaction(transactionMetaFromHook, 'TransactionController#signTransaction - Update after sign');
|
|
1849
1872
|
(0, logger_1.projectLogger)('Skipping signed status based on hook');
|
|
@@ -2062,7 +2085,8 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2062
2085
|
tokenBalanceChanges: [],
|
|
2063
2086
|
};
|
|
2064
2087
|
let gasFeeTokens = [];
|
|
2065
|
-
|
|
2088
|
+
const isBalanceChangesSkipped = __classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").has(transactionId);
|
|
2089
|
+
if (__classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this) && !isBalanceChangesSkipped) {
|
|
2066
2090
|
simulationData = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Simulate', parentContext: traceContext }, () => (0, balance_changes_1.getBalanceChanges)({
|
|
2067
2091
|
blockTime,
|
|
2068
2092
|
chainId,
|
|
@@ -2086,21 +2110,24 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2086
2110
|
transactionMeta,
|
|
2087
2111
|
});
|
|
2088
2112
|
}
|
|
2089
|
-
const
|
|
2113
|
+
const latestTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
2090
2114
|
/* istanbul ignore if */
|
|
2091
|
-
if (!
|
|
2115
|
+
if (!latestTransactionMeta) {
|
|
2092
2116
|
(0, logger_1.projectLogger)('Cannot update simulation data as transaction not found', transactionId, simulationData);
|
|
2093
2117
|
return;
|
|
2094
2118
|
}
|
|
2095
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2119
|
+
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2096
2120
|
transactionId,
|
|
2097
2121
|
note: 'TransactionController#updateSimulationData - Update simulation data',
|
|
2098
2122
|
skipResimulateCheck: Boolean(blockTime),
|
|
2099
2123
|
}, (txMeta) => {
|
|
2100
2124
|
txMeta.gasFeeTokens = gasFeeTokens;
|
|
2101
|
-
|
|
2125
|
+
if (!isBalanceChangesSkipped) {
|
|
2126
|
+
txMeta.simulationData = simulationData;
|
|
2127
|
+
}
|
|
2102
2128
|
});
|
|
2103
|
-
(0, logger_1.projectLogger)('Updated simulation data', transactionId,
|
|
2129
|
+
(0, logger_1.projectLogger)('Updated simulation data', transactionId, updatedTransactionMeta);
|
|
2130
|
+
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_runAfterSimulateHook).call(this, updatedTransactionMeta);
|
|
2104
2131
|
}, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
|
|
2105
2132
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipHistory: true }, (txMeta) => {
|
|
2106
2133
|
(0, GasFeePoller_1.updateTransactionGasProperties)({
|
|
@@ -2157,6 +2184,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2157
2184
|
txMeta: transactionMeta,
|
|
2158
2185
|
});
|
|
2159
2186
|
}, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
|
|
2187
|
+
this.messagingSystem.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
|
|
2160
2188
|
this.messagingSystem.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
|
|
2161
2189
|
}, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
|
|
2162
2190
|
this.update((state) => {
|
|
@@ -2205,5 +2233,30 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2205
2233
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, newTransactionMeta);
|
|
2206
2234
|
this.messagingSystem.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
|
|
2207
2235
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, newTransactionMeta);
|
|
2236
|
+
}, _TransactionController_runAfterSimulateHook = async function _TransactionController_runAfterSimulateHook(transactionMeta) {
|
|
2237
|
+
(0, logger_1.projectLogger)('Calling afterSimulate hook', transactionMeta);
|
|
2238
|
+
const { id: transactionId } = transactionMeta;
|
|
2239
|
+
const result = await __classPrivateFieldGet(this, _TransactionController_afterSimulate, "f").call(this, {
|
|
2240
|
+
transactionMeta,
|
|
2241
|
+
});
|
|
2242
|
+
const { skipSimulation, updateTransaction } = result || {};
|
|
2243
|
+
if (skipSimulation) {
|
|
2244
|
+
__classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").add(transactionId);
|
|
2245
|
+
}
|
|
2246
|
+
else if (skipSimulation === false) {
|
|
2247
|
+
__classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").delete(transactionId);
|
|
2248
|
+
}
|
|
2249
|
+
if (!updateTransaction) {
|
|
2250
|
+
return;
|
|
2251
|
+
}
|
|
2252
|
+
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2253
|
+
transactionId,
|
|
2254
|
+
skipResimulateCheck: true,
|
|
2255
|
+
note: 'afterSimulate Hook',
|
|
2256
|
+
}, (txMeta) => {
|
|
2257
|
+
txMeta.txParamsOriginal = (0, lodash_1.cloneDeep)(txMeta.txParams);
|
|
2258
|
+
updateTransaction(txMeta);
|
|
2259
|
+
});
|
|
2260
|
+
(0, logger_1.projectLogger)('Updated transaction with afterSimulate data', updatedTransactionMeta);
|
|
2208
2261
|
};
|
|
2209
2262
|
//# sourceMappingURL=TransactionController.cjs.map
|