@metamask/transaction-controller 55.0.2 → 56.1.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 +27 -1
- package/dist/TransactionController.cjs +57 -18
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +10 -2
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +10 -2
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +59 -20
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/api/accounts-api.cjs +3 -2
- package/dist/api/accounts-api.cjs.map +1 -1
- package/dist/api/accounts-api.d.cts +1 -0
- package/dist/api/accounts-api.d.cts.map +1 -1
- package/dist/api/accounts-api.d.mts +1 -0
- package/dist/api/accounts-api.d.mts.map +1 -1
- package/dist/api/accounts-api.mjs +3 -2
- package/dist/api/accounts-api.mjs.map +1 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.cjs +2 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.cjs.map +1 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts.map +1 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts.map +1 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.mjs +2 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +1 -1
- package/dist/helpers/GasFeePoller.cjs +76 -48
- package/dist/helpers/GasFeePoller.cjs.map +1 -1
- package/dist/helpers/GasFeePoller.d.cts +15 -3
- package/dist/helpers/GasFeePoller.d.cts.map +1 -1
- package/dist/helpers/GasFeePoller.d.mts +15 -3
- package/dist/helpers/GasFeePoller.d.mts.map +1 -1
- package/dist/helpers/GasFeePoller.mjs +73 -46
- package/dist/helpers/GasFeePoller.mjs.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.cjs +32 -8
- package/dist/helpers/IncomingTransactionHelper.cjs.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.cts +7 -2
- package/dist/helpers/IncomingTransactionHelper.d.cts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.mts +7 -2
- package/dist/helpers/IncomingTransactionHelper.d.mts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.mjs +32 -8
- package/dist/helpers/IncomingTransactionHelper.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +4 -0
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +4 -0
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/feature-flags.cjs +16 -1
- package/dist/utils/feature-flags.cjs.map +1 -1
- package/dist/utils/feature-flags.d.cts +14 -0
- package/dist/utils/feature-flags.d.cts.map +1 -1
- package/dist/utils/feature-flags.d.mts +14 -0
- package/dist/utils/feature-flags.d.mts.map +1 -1
- package/dist/utils/feature-flags.mjs +14 -0
- package/dist/utils/feature-flags.mjs.map +1 -1
- package/dist/utils/validation.cjs +1 -0
- package/dist/utils/validation.cjs.map +1 -1
- package/dist/utils/validation.d.cts +2 -1
- package/dist/utils/validation.d.cts.map +1 -1
- package/dist/utils/validation.d.mts +2 -1
- package/dist/utils/validation.d.mts.map +1 -1
- package/dist/utils/validation.mjs +1 -0
- package/dist/utils/validation.mjs.map +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [56.1.0]
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Automatically update gas fee properties in `txParams` when `updateTransactionGasFees` method is called with `userFeeLevel` ([#5800](https://github.com/MetaMask/core/pull/5800))
|
|
15
|
+
- Support additional debug of incoming transaction requests ([#5803](https://github.com/MetaMask/core/pull/5803))
|
|
16
|
+
- Add optional `incomingTransactions.client` constructor property.
|
|
17
|
+
- Add optional `tags` property to `updateIncomingTransactions` method.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Bump `@metamask/controller-utils` to `^11.9.0` ([#5812](https://github.com/MetaMask/core/pull/5812))
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- Throw correct error code if upgrade rejected ([#5814](https://github.com/MetaMask/core/pull/5814))
|
|
26
|
+
|
|
27
|
+
## [56.0.0]
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
- **BREAKING:** bump `@metamask/accounts-controller` peer dependency to `^29.0.0` ([#5802](https://github.com/MetaMask/core/pull/5802))
|
|
32
|
+
- Configure incoming transaction polling interval using feature flag ([#5792](https://github.com/MetaMask/core/pull/5792))
|
|
33
|
+
|
|
10
34
|
## [55.0.2]
|
|
11
35
|
|
|
12
36
|
### Fixed
|
|
@@ -1577,7 +1601,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1577
1601
|
|
|
1578
1602
|
All changes listed after this point were applied to this package following the monorepo conversion.
|
|
1579
1603
|
|
|
1580
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@
|
|
1604
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@56.1.0...HEAD
|
|
1605
|
+
[56.1.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@56.0.0...@metamask/transaction-controller@56.1.0
|
|
1606
|
+
[56.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@55.0.2...@metamask/transaction-controller@56.0.0
|
|
1581
1607
|
[55.0.2]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@55.0.1...@metamask/transaction-controller@55.0.2
|
|
1582
1608
|
[55.0.1]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@55.0.0...@metamask/transaction-controller@55.0.1
|
|
1583
1609
|
[55.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@54.4.0...@metamask/transaction-controller@55.0.0
|
|
@@ -259,11 +259,13 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
259
259
|
});
|
|
260
260
|
};
|
|
261
261
|
__classPrivateFieldSet(this, _TransactionController_incomingTransactionHelper, new IncomingTransactionHelper_1.IncomingTransactionHelper({
|
|
262
|
+
client: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").client,
|
|
262
263
|
getCache: () => this.state.lastFetchedBlockNumbers,
|
|
263
264
|
getCurrentAccount: () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSelectedAccount).call(this),
|
|
264
265
|
getLocalTransactions: () => this.state.transactions,
|
|
265
266
|
includeTokenTransfers: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").includeTokenTransfers,
|
|
266
267
|
isEnabled: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").isEnabled,
|
|
268
|
+
messenger: this.messagingSystem,
|
|
267
269
|
queryEntireHistory: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").queryEntireHistory,
|
|
268
270
|
remoteTransactionSource: new AccountsApiRemoteTransactionSource_1.AccountsApiRemoteTransactionSource(),
|
|
269
271
|
trimTransactions: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).bind(this),
|
|
@@ -493,8 +495,14 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
493
495
|
stopIncomingTransactionPolling() {
|
|
494
496
|
__classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").stop();
|
|
495
497
|
}
|
|
496
|
-
|
|
497
|
-
|
|
498
|
+
/**
|
|
499
|
+
* Update the incoming transactions by polling the remote transaction source.
|
|
500
|
+
*
|
|
501
|
+
* @param request - Request object.
|
|
502
|
+
* @param request.tags - Additional tags to identify the source of the request.
|
|
503
|
+
*/
|
|
504
|
+
async updateIncomingTransactions({ tags } = {}) {
|
|
505
|
+
await __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").update({ tags });
|
|
498
506
|
}
|
|
499
507
|
/**
|
|
500
508
|
* Attempts to cancel a transaction based on its ID by setting its status to "rejected"
|
|
@@ -735,35 +743,66 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
735
743
|
* @param gasValues.userFeeLevel - Estimate level user selected.
|
|
736
744
|
* @returns The updated transactionMeta.
|
|
737
745
|
*/
|
|
738
|
-
updateTransactionGasFees(transactionId, { defaultGasEstimates, estimateUsed, estimateSuggested, gas, gasLimit, gasPrice, maxPriorityFeePerGas, maxFeePerGas, originalGasEstimate, userEditedGasLimit, userFeeLevel, }) {
|
|
746
|
+
updateTransactionGasFees(transactionId, { defaultGasEstimates, estimateUsed, estimateSuggested, gas, gasLimit, gasPrice, maxPriorityFeePerGas, maxFeePerGas, originalGasEstimate, userEditedGasLimit, userFeeLevel: userFeeLevelParam, }) {
|
|
739
747
|
const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
740
748
|
if (!transactionMeta) {
|
|
741
749
|
throw new Error(`Cannot update transaction as no transaction metadata found`);
|
|
742
750
|
}
|
|
743
751
|
(0, utils_2.validateIfTransactionUnapproved)(transactionMeta, 'updateTransactionGasFees');
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
752
|
+
const clonedTransactionMeta = (0, lodash_1.cloneDeep)(transactionMeta);
|
|
753
|
+
const isTransactionGasFeeEstimatesExists = transactionMeta.gasFeeEstimates;
|
|
754
|
+
const isAutomaticGasFeeUpdateEnabled = __classPrivateFieldGet(this, _TransactionController_isAutomaticGasFeeUpdateEnabled, "f").call(this, transactionMeta);
|
|
755
|
+
const userFeeLevel = userFeeLevelParam;
|
|
756
|
+
const isOneOfFeeLevelSelected = Object.values(types_1.GasFeeEstimateLevel).includes(userFeeLevel);
|
|
757
|
+
const shouldUpdateTxParamsGasFees = isTransactionGasFeeEstimatesExists &&
|
|
758
|
+
isAutomaticGasFeeUpdateEnabled &&
|
|
759
|
+
isOneOfFeeLevelSelected;
|
|
760
|
+
if (shouldUpdateTxParamsGasFees) {
|
|
761
|
+
(0, GasFeePoller_1.updateTransactionGasEstimates)({
|
|
762
|
+
txMeta: clonedTransactionMeta,
|
|
763
|
+
userFeeLevel,
|
|
764
|
+
});
|
|
765
|
+
}
|
|
766
|
+
const txParamsUpdate = {
|
|
767
|
+
gas,
|
|
768
|
+
gasLimit,
|
|
769
|
+
};
|
|
770
|
+
if (shouldUpdateTxParamsGasFees) {
|
|
771
|
+
// Get updated values from clonedTransactionMeta if we're using automated fee updates
|
|
772
|
+
Object.assign(txParamsUpdate, {
|
|
773
|
+
gasPrice: clonedTransactionMeta.txParams.gasPrice,
|
|
774
|
+
maxPriorityFeePerGas: clonedTransactionMeta.txParams.maxPriorityFeePerGas,
|
|
775
|
+
maxFeePerGas: clonedTransactionMeta.txParams.maxFeePerGas,
|
|
776
|
+
});
|
|
777
|
+
}
|
|
778
|
+
else {
|
|
779
|
+
Object.assign(txParamsUpdate, {
|
|
748
780
|
gasPrice,
|
|
749
781
|
maxPriorityFeePerGas,
|
|
750
782
|
maxFeePerGas,
|
|
751
|
-
}
|
|
783
|
+
});
|
|
784
|
+
}
|
|
785
|
+
const transactionGasFees = {
|
|
786
|
+
txParams: (0, lodash_1.pickBy)(txParamsUpdate),
|
|
752
787
|
defaultGasEstimates,
|
|
753
788
|
estimateUsed,
|
|
754
789
|
estimateSuggested,
|
|
755
790
|
originalGasEstimate,
|
|
756
791
|
userEditedGasLimit,
|
|
757
792
|
userFeeLevel,
|
|
758
|
-
// TODO: Replace `any` with type
|
|
759
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
760
793
|
};
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
794
|
+
const filteredTransactionGasFees = (0, lodash_1.pickBy)(transactionGasFees);
|
|
795
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
796
|
+
transactionId,
|
|
797
|
+
note: `${controllerName}:updateTransactionGasFees - gas values updated`,
|
|
798
|
+
skipResimulateCheck: true,
|
|
799
|
+
}, (draftTxMeta) => {
|
|
800
|
+
const { txParams, ...otherProps } = filteredTransactionGasFees;
|
|
801
|
+
Object.assign(draftTxMeta, otherProps);
|
|
802
|
+
if (txParams) {
|
|
803
|
+
Object.assign(draftTxMeta.txParams, txParams);
|
|
804
|
+
}
|
|
805
|
+
});
|
|
767
806
|
return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
768
807
|
}
|
|
769
808
|
/**
|
|
@@ -2041,7 +2080,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2041
2080
|
(0, logger_1.projectLogger)('Updated simulation data', transactionId, simulationData);
|
|
2042
2081
|
}, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
|
|
2043
2082
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipHistory: true }, (txMeta) => {
|
|
2044
|
-
(0, GasFeePoller_1.
|
|
2083
|
+
(0, GasFeePoller_1.updateTransactionGasProperties)({
|
|
2045
2084
|
txMeta,
|
|
2046
2085
|
gasFeeEstimates,
|
|
2047
2086
|
gasFeeEstimatesLoaded,
|
|
@@ -2104,7 +2143,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2104
2143
|
}, _TransactionController_isRejectError = function _TransactionController_isRejectError(error) {
|
|
2105
2144
|
return [
|
|
2106
2145
|
rpc_errors_1.errorCodes.provider.userRejectedRequest,
|
|
2107
|
-
|
|
2146
|
+
validation_1.ErrorCode.RejectedUpgrade,
|
|
2108
2147
|
].includes(error.code);
|
|
2109
2148
|
}, _TransactionController_rejectTransactionAndThrow = function _TransactionController_rejectTransactionAndThrow(transactionId, actionId, error) {
|
|
2110
2149
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).call(this, transactionId, actionId, error);
|