@metamask/transaction-controller 57.3.0 → 58.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 +28 -1
- package/dist/TransactionController.cjs +97 -34
- 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 +97 -34
- 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 +32 -0
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +32 -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/batch.cjs +46 -21
- package/dist/utils/batch.cjs.map +1 -1
- package/dist/utils/batch.d.cts +5 -3
- package/dist/utils/batch.d.cts.map +1 -1
- package/dist/utils/batch.d.mts +5 -3
- package/dist/utils/batch.d.mts.map +1 -1
- package/dist/utils/batch.mjs +48 -23
- package/dist/utils/batch.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 +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [58.0.0]
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- **BREAKING:** Bump peer dependency `@metamask/accounts-controller` to `^31.0.0` ([#5999](https://github.com/MetaMask/core/pull/5999))
|
|
15
|
+
- **BREAKING:** Bump peer dependency `@metamask/gas-fee-controller` to `^24.0.0` ([#5999](https://github.com/MetaMask/core/pull/5999))
|
|
16
|
+
- **BREAKING:** Bump peer dependency `@metamask/network-controller` to `^24.0.0` ([#5999](https://github.com/MetaMask/core/pull/5999))
|
|
17
|
+
|
|
18
|
+
## [57.4.0]
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- Add optional `afterSimulate` and `beforeSign` hooks to constructor ([#5503](https://github.com/MetaMask/core/pull/5503))
|
|
23
|
+
- Add `AfterSimulateHook` type.
|
|
24
|
+
- Add `BeforeSignHook` type.
|
|
25
|
+
- Add `TransactionContainerType` enum.
|
|
26
|
+
- Add `TransactionControllerEstimateGasAction` type.
|
|
27
|
+
- Add optional `containerTypes` property to `TransactionMeta`.
|
|
28
|
+
- Add optional `ignoreDelegationSignatures` boolean to `estimateGas` method.
|
|
29
|
+
- Add `gasFeeEstimates` property to `TransactionBatchMeta`, populated using `DefaultGasFeeFlow` ([#5886](https://github.com/MetaMask/core/pull/5886))
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- Handle unknown chain IDs on incoming transactions ([#5985](https://github.com/MetaMask/core/pull/5985))
|
|
34
|
+
|
|
10
35
|
## [57.3.0]
|
|
11
36
|
|
|
12
37
|
### Added
|
|
@@ -1668,7 +1693,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1668
1693
|
|
|
1669
1694
|
All changes listed after this point were applied to this package following the monorepo conversion.
|
|
1670
1695
|
|
|
1671
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@
|
|
1696
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@58.0.0...HEAD
|
|
1697
|
+
[58.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@57.4.0...@metamask/transaction-controller@58.0.0
|
|
1698
|
+
[57.4.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@57.3.0...@metamask/transaction-controller@57.4.0
|
|
1672
1699
|
[57.3.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@57.2.0...@metamask/transaction-controller@57.3.0
|
|
1673
1700
|
[57.2.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@57.1.0...@metamask/transaction-controller@57.2.0
|
|
1674
1701
|
[57.1.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@57.0.0...@metamask/transaction-controller@57.1.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");
|
|
@@ -320,22 +325,23 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
320
325
|
addTransaction: this.addTransaction.bind(this),
|
|
321
326
|
getChainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).bind(this),
|
|
322
327
|
getEthQuery: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId }),
|
|
328
|
+
getGasFeeEstimates: __classPrivateFieldGet(this, _TransactionController_getGasFeeEstimates, "f"),
|
|
323
329
|
getInternalAccounts: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getInternalAccounts).bind(this),
|
|
324
|
-
getTransaction: (transactionId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId),
|
|
325
|
-
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f"),
|
|
326
|
-
messenger: this.messagingSystem,
|
|
327
|
-
publishBatchHook: __classPrivateFieldGet(this, _TransactionController_publishBatchHook, "f"),
|
|
328
|
-
publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
|
|
329
|
-
request,
|
|
330
|
-
updateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).bind(this),
|
|
331
|
-
publishTransaction: (ethQuery, transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, ethQuery, transactionMeta),
|
|
332
330
|
getPendingTransactionTracker: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).call(this, {
|
|
333
331
|
provider: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getProvider).call(this, { networkClientId }),
|
|
334
332
|
blockTracker,
|
|
335
333
|
chainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId),
|
|
336
334
|
networkClientId,
|
|
337
335
|
}),
|
|
336
|
+
getTransaction: (transactionId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId),
|
|
337
|
+
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f"),
|
|
338
|
+
messenger: this.messagingSystem,
|
|
339
|
+
publishBatchHook: __classPrivateFieldGet(this, _TransactionController_publishBatchHook, "f"),
|
|
340
|
+
publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
|
|
341
|
+
publishTransaction: (ethQuery, transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, ethQuery, transactionMeta),
|
|
342
|
+
request,
|
|
338
343
|
update: this.update.bind(this),
|
|
344
|
+
updateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).bind(this),
|
|
339
345
|
});
|
|
340
346
|
}
|
|
341
347
|
/**
|
|
@@ -577,15 +583,18 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
577
583
|
*
|
|
578
584
|
* @param transaction - The transaction to estimate gas for.
|
|
579
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.
|
|
580
588
|
* @returns The gas and gas price.
|
|
581
589
|
*/
|
|
582
|
-
async estimateGas(transaction, networkClientId) {
|
|
590
|
+
async estimateGas(transaction, networkClientId, { ignoreDelegationSignatures, } = {}) {
|
|
583
591
|
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
|
|
584
592
|
networkClientId,
|
|
585
593
|
});
|
|
586
594
|
const { estimatedGas, simulationFails } = await (0, gas_1.estimateGas)({
|
|
587
595
|
chainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId),
|
|
588
596
|
ethQuery,
|
|
597
|
+
ignoreDelegationSignatures,
|
|
589
598
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
|
|
590
599
|
messenger: this.messagingSystem,
|
|
591
600
|
txParams: transaction,
|
|
@@ -1267,7 +1276,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1267
1276
|
}
|
|
1268
1277
|
}
|
|
1269
1278
|
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, }) {
|
|
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, }) {
|
|
1271
1280
|
// If transaction is found for same action id, do not create a new transaction.
|
|
1272
1281
|
if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId)) {
|
|
1273
1282
|
return;
|
|
@@ -1442,6 +1451,9 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1442
1451
|
}
|
|
1443
1452
|
}
|
|
1444
1453
|
}
|
|
1454
|
+
finally {
|
|
1455
|
+
__classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").delete(transactionId);
|
|
1456
|
+
}
|
|
1445
1457
|
}
|
|
1446
1458
|
const finalMeta = await finishedPromise;
|
|
1447
1459
|
switch (finalMeta?.status) {
|
|
@@ -1692,14 +1704,23 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1692
1704
|
if (!transactions.length) {
|
|
1693
1705
|
return;
|
|
1694
1706
|
}
|
|
1695
|
-
const finalTransactions =
|
|
1707
|
+
const finalTransactions = [];
|
|
1708
|
+
for (const tx of transactions) {
|
|
1696
1709
|
const { chainId } = tx;
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1710
|
+
try {
|
|
1711
|
+
const networkClientId = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getNetworkClientId).call(this, { chainId });
|
|
1712
|
+
finalTransactions.push({
|
|
1713
|
+
...tx,
|
|
1714
|
+
networkClientId,
|
|
1715
|
+
});
|
|
1716
|
+
}
|
|
1717
|
+
catch (error) {
|
|
1718
|
+
(0, logger_1.projectLogger)('Failed to get network client ID for incoming transaction', {
|
|
1719
|
+
chainId,
|
|
1720
|
+
error,
|
|
1721
|
+
});
|
|
1722
|
+
}
|
|
1723
|
+
}
|
|
1703
1724
|
this.update((state) => {
|
|
1704
1725
|
const { transactions: currentTransactions } = state;
|
|
1705
1726
|
state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, [
|
|
@@ -1818,31 +1839,43 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1818
1839
|
const currentAccountIsEIP1559Compatible = await __classPrivateFieldGet(this, _TransactionController_getCurrentAccountEIP1559Compatibility, "f").call(this);
|
|
1819
1840
|
return (currentNetworkIsEIP1559Compatible && currentAccountIsEIP1559Compatible);
|
|
1820
1841
|
}, _TransactionController_signTransaction = async function _TransactionController_signTransaction(transactionMeta) {
|
|
1821
|
-
const { isExternalSign, txParams } = transactionMeta;
|
|
1842
|
+
const { chainId, id: transactionId, isExternalSign, txParams, } = transactionMeta;
|
|
1822
1843
|
if (isExternalSign) {
|
|
1823
1844
|
(0, logger_1.projectLogger)('Skipping sign as signed externally');
|
|
1824
1845
|
return undefined;
|
|
1825
1846
|
}
|
|
1826
|
-
(0, logger_1.projectLogger)('Signing transaction', txParams);
|
|
1827
1847
|
const { authorizationList, from } = txParams;
|
|
1828
|
-
const
|
|
1829
|
-
finalTxParams.authorizationList = await (0, eip7702_1.signAuthorizationList)({
|
|
1848
|
+
const signedAuthorizationList = await (0, eip7702_1.signAuthorizationList)({
|
|
1830
1849
|
authorizationList,
|
|
1831
1850
|
messenger: this.messagingSystem,
|
|
1832
1851
|
transactionMeta,
|
|
1833
1852
|
});
|
|
1834
|
-
|
|
1835
|
-
|
|
1853
|
+
if (signedAuthorizationList) {
|
|
1854
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, (txMeta) => {
|
|
1855
|
+
txMeta.txParams.authorizationList = signedAuthorizationList;
|
|
1856
|
+
});
|
|
1857
|
+
}
|
|
1858
|
+
(0, logger_1.projectLogger)('Calling before sign hook', transactionMeta);
|
|
1859
|
+
const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
|
|
1860
|
+
if (updateTransaction) {
|
|
1861
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true, note: 'beforeSign Hook' }, updateTransaction);
|
|
1862
|
+
(0, logger_1.projectLogger)('Updated transaction after before sign hook');
|
|
1863
|
+
}
|
|
1864
|
+
const finalTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
|
|
1865
|
+
const { txParams: finalTxParams } = finalTransactionMeta;
|
|
1866
|
+
const unsignedEthTx = (0, prepare_1.prepareTransaction)(chainId, finalTxParams);
|
|
1867
|
+
__classPrivateFieldGet(this, _TransactionController_approvingTransactionIds, "f").add(transactionId);
|
|
1868
|
+
(0, logger_1.projectLogger)('Signing transaction', finalTxParams);
|
|
1836
1869
|
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(
|
|
1870
|
+
__classPrivateFieldGet(this, _TransactionController_sign, "f")?.call(this, unsignedEthTx, from, ...__classPrivateFieldGet(this, _TransactionController_getAdditionalSignArguments, "f").call(this, finalTransactionMeta)).then(resolve, reject);
|
|
1871
|
+
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").set(transactionId, () => reject(new Error('Signing aborted by user')));
|
|
1839
1872
|
});
|
|
1840
|
-
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").delete(
|
|
1873
|
+
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").delete(transactionId);
|
|
1841
1874
|
if (!signedTx) {
|
|
1842
1875
|
(0, logger_1.projectLogger)('Skipping signed status as no signed transaction');
|
|
1843
1876
|
return undefined;
|
|
1844
1877
|
}
|
|
1845
|
-
const transactionMetaFromHook = (0, lodash_1.cloneDeep)(
|
|
1878
|
+
const transactionMetaFromHook = (0, lodash_1.cloneDeep)(finalTransactionMeta);
|
|
1846
1879
|
if (!__classPrivateFieldGet(this, _TransactionController_afterSign, "f").call(this, transactionMetaFromHook, signedTx)) {
|
|
1847
1880
|
this.updateTransaction(transactionMetaFromHook, 'TransactionController#signTransaction - Update after sign');
|
|
1848
1881
|
(0, logger_1.projectLogger)('Skipping signed status based on hook');
|
|
@@ -2061,7 +2094,8 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2061
2094
|
tokenBalanceChanges: [],
|
|
2062
2095
|
};
|
|
2063
2096
|
let gasFeeTokens = [];
|
|
2064
|
-
|
|
2097
|
+
const isBalanceChangesSkipped = __classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").has(transactionId);
|
|
2098
|
+
if (__classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this) && !isBalanceChangesSkipped) {
|
|
2065
2099
|
simulationData = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Simulate', parentContext: traceContext }, () => (0, balance_changes_1.getBalanceChanges)({
|
|
2066
2100
|
blockTime,
|
|
2067
2101
|
chainId,
|
|
@@ -2085,21 +2119,24 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2085
2119
|
transactionMeta,
|
|
2086
2120
|
});
|
|
2087
2121
|
}
|
|
2088
|
-
const
|
|
2122
|
+
const latestTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
2089
2123
|
/* istanbul ignore if */
|
|
2090
|
-
if (!
|
|
2124
|
+
if (!latestTransactionMeta) {
|
|
2091
2125
|
(0, logger_1.projectLogger)('Cannot update simulation data as transaction not found', transactionId, simulationData);
|
|
2092
2126
|
return;
|
|
2093
2127
|
}
|
|
2094
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2128
|
+
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2095
2129
|
transactionId,
|
|
2096
2130
|
note: 'TransactionController#updateSimulationData - Update simulation data',
|
|
2097
2131
|
skipResimulateCheck: Boolean(blockTime),
|
|
2098
2132
|
}, (txMeta) => {
|
|
2099
2133
|
txMeta.gasFeeTokens = gasFeeTokens;
|
|
2100
|
-
|
|
2134
|
+
if (!isBalanceChangesSkipped) {
|
|
2135
|
+
txMeta.simulationData = simulationData;
|
|
2136
|
+
}
|
|
2101
2137
|
});
|
|
2102
|
-
(0, logger_1.projectLogger)('Updated simulation data', transactionId,
|
|
2138
|
+
(0, logger_1.projectLogger)('Updated simulation data', transactionId, updatedTransactionMeta);
|
|
2139
|
+
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_runAfterSimulateHook).call(this, updatedTransactionMeta);
|
|
2103
2140
|
}, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
|
|
2104
2141
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipHistory: true }, (txMeta) => {
|
|
2105
2142
|
(0, GasFeePoller_1.updateTransactionGasProperties)({
|
|
@@ -2156,6 +2193,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2156
2193
|
txMeta: transactionMeta,
|
|
2157
2194
|
});
|
|
2158
2195
|
}, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
|
|
2196
|
+
this.messagingSystem.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
|
|
2159
2197
|
this.messagingSystem.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
|
|
2160
2198
|
}, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
|
|
2161
2199
|
this.update((state) => {
|
|
@@ -2204,5 +2242,30 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2204
2242
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, newTransactionMeta);
|
|
2205
2243
|
this.messagingSystem.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
|
|
2206
2244
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, newTransactionMeta);
|
|
2245
|
+
}, _TransactionController_runAfterSimulateHook = async function _TransactionController_runAfterSimulateHook(transactionMeta) {
|
|
2246
|
+
(0, logger_1.projectLogger)('Calling afterSimulate hook', transactionMeta);
|
|
2247
|
+
const { id: transactionId } = transactionMeta;
|
|
2248
|
+
const result = await __classPrivateFieldGet(this, _TransactionController_afterSimulate, "f").call(this, {
|
|
2249
|
+
transactionMeta,
|
|
2250
|
+
});
|
|
2251
|
+
const { skipSimulation, updateTransaction } = result || {};
|
|
2252
|
+
if (skipSimulation) {
|
|
2253
|
+
__classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").add(transactionId);
|
|
2254
|
+
}
|
|
2255
|
+
else if (skipSimulation === false) {
|
|
2256
|
+
__classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").delete(transactionId);
|
|
2257
|
+
}
|
|
2258
|
+
if (!updateTransaction) {
|
|
2259
|
+
return;
|
|
2260
|
+
}
|
|
2261
|
+
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2262
|
+
transactionId,
|
|
2263
|
+
skipResimulateCheck: true,
|
|
2264
|
+
note: 'afterSimulate Hook',
|
|
2265
|
+
}, (txMeta) => {
|
|
2266
|
+
txMeta.txParamsOriginal = (0, lodash_1.cloneDeep)(txMeta.txParams);
|
|
2267
|
+
updateTransaction(txMeta);
|
|
2268
|
+
});
|
|
2269
|
+
(0, logger_1.projectLogger)('Updated transaction with afterSimulate data', updatedTransactionMeta);
|
|
2207
2270
|
};
|
|
2208
2271
|
//# sourceMappingURL=TransactionController.cjs.map
|