@metamask-previews/transaction-controller 52.3.0-preview-8ea9b81f → 52.3.0-preview-888fa154
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 +0 -5
- package/dist/TransactionController.cjs +18 -35
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +16 -17
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +16 -17
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +18 -35
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.cjs +60 -17
- 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 +60 -17
- package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.cjs +7 -7
- package/dist/helpers/PendingTransactionTracker.cjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.cts +2 -1
- package/dist/helpers/PendingTransactionTracker.d.cts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.mts +2 -1
- package/dist/helpers/PendingTransactionTracker.d.mts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.mjs +7 -7
- package/dist/helpers/PendingTransactionTracker.mjs.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +9 -29
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +9 -29
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/feature-flags.cjs +1 -21
- package/dist/utils/feature-flags.cjs.map +1 -1
- package/dist/utils/feature-flags.d.cts +0 -35
- package/dist/utils/feature-flags.d.cts.map +1 -1
- package/dist/utils/feature-flags.d.mts +0 -35
- package/dist/utils/feature-flags.d.mts.map +1 -1
- package/dist/utils/feature-flags.mjs +0 -19
- package/dist/utils/feature-flags.mjs.map +1 -1
- package/dist/utils/gas.cjs +4 -10
- package/dist/utils/gas.cjs.map +1 -1
- package/dist/utils/gas.d.cts +2 -5
- package/dist/utils/gas.d.cts.map +1 -1
- package/dist/utils/gas.d.mts +2 -5
- package/dist/utils/gas.d.mts.map +1 -1
- package/dist/utils/gas.mjs +4 -10
- package/dist/utils/gas.mjs.map +1 -1
- package/dist/utils/validation.cjs +11 -10
- package/dist/utils/validation.cjs.map +1 -1
- package/dist/utils/validation.d.cts +1 -3
- package/dist/utils/validation.d.cts.map +1 -1
- package/dist/utils/validation.d.mts +1 -3
- package/dist/utils/validation.d.mts.map +1 -1
- package/dist/utils/validation.mjs +11 -10
- package/dist/utils/validation.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,11 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
### Changed
|
|
11
|
-
|
|
12
|
-
- Throw if `chainId` in `TransactionParams` does not match `networkClientId` when calling `addTransaction` ([#5511](https://github.com/MetaMask/core/pull/5569))
|
|
13
|
-
- Mark `chainId` in `TransactionParams` as deprecated.
|
|
14
|
-
|
|
15
10
|
## [52.3.0]
|
|
16
11
|
|
|
17
12
|
### Added
|
|
@@ -13,7 +13,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || 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_internalEvents, _TransactionController_methodDataHelper, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_publishBatchHook, _TransactionController_publicKeyEIP7702, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_rejectTransaction, _TransactionController_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateFirstTimeInteraction, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate,
|
|
16
|
+
var _TransactionController_instances, _TransactionController_internalEvents, _TransactionController_methodDataHelper, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_publishBatchHook, _TransactionController_publicKeyEIP7702, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_rejectTransaction, _TransactionController_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateFirstTimeInteraction, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow;
|
|
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");
|
|
@@ -215,9 +215,10 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
215
215
|
__classPrivateFieldSet(this, _TransactionController_trace, trace ?? ((_request, fn) => fn?.()), "f");
|
|
216
216
|
this.afterSign = hooks?.afterSign ?? (() => true);
|
|
217
217
|
this.beforeCheckPendingTransaction =
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
218
|
+
hooks?.beforeCheckPendingTransaction ??
|
|
219
|
+
/* istanbul ignore next */
|
|
220
|
+
(() => true);
|
|
221
|
+
this.beforePublish = hooks?.beforePublish ?? (() => true);
|
|
221
222
|
this.getAdditionalSignArguments =
|
|
222
223
|
hooks?.getAdditionalSignArguments ?? (() => []);
|
|
223
224
|
this.publish =
|
|
@@ -293,7 +294,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
293
294
|
});
|
|
294
295
|
this.onBootCleanup();
|
|
295
296
|
__classPrivateFieldGet(this, _TransactionController_checkForPendingTransactionAndStartPolling, "f").call(this);
|
|
296
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_registerActionHandlers).call(this);
|
|
297
297
|
}
|
|
298
298
|
/**
|
|
299
299
|
* Stops polling and removes listeners to prepare the controller for garbage collection.
|
|
@@ -399,7 +399,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
399
399
|
});
|
|
400
400
|
const delegationAddressPromise = (0, eip7702_1.getDelegationAddress)(txParams.from, ethQuery).catch(() => undefined);
|
|
401
401
|
const isEIP1559Compatible = await this.getEIP1559Compatibility(networkClientId);
|
|
402
|
-
(0, validation_1.validateTxParams)(txParams, isEIP1559Compatible
|
|
402
|
+
(0, validation_1.validateTxParams)(txParams, isEIP1559Compatible);
|
|
403
403
|
if (!txParams.type) {
|
|
404
404
|
// Determine transaction type based on transaction parameters and network compatibility
|
|
405
405
|
(0, utils_2.setEnvelopeType)(txParams, isEIP1559Compatible);
|
|
@@ -568,7 +568,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
568
568
|
chainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId),
|
|
569
569
|
ethQuery,
|
|
570
570
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
|
|
571
|
-
messenger: this.messagingSystem,
|
|
572
571
|
txParams: transaction,
|
|
573
572
|
});
|
|
574
573
|
return { gas: estimatedGas, simulationFails };
|
|
@@ -589,7 +588,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
589
588
|
chainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId),
|
|
590
589
|
ethQuery,
|
|
591
590
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
|
|
592
|
-
messenger: this.messagingSystem,
|
|
593
591
|
txParams: transaction,
|
|
594
592
|
});
|
|
595
593
|
const gas = (0, gas_1.addGasBuffer)(estimatedGas, blockGasLimit, multiplier);
|
|
@@ -684,7 +682,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
684
682
|
this.onTransactionStatusChange(updatedTransactionMeta);
|
|
685
683
|
// Intentional given potential duration of process.
|
|
686
684
|
this.updatePostBalance(updatedTransactionMeta).catch((error) => {
|
|
687
|
-
/* istanbul ignore next */
|
|
688
685
|
(0, logger_1.projectLogger)('Error while updating post balance', error);
|
|
689
686
|
throw error;
|
|
690
687
|
});
|
|
@@ -933,16 +930,20 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
933
930
|
/**
|
|
934
931
|
* Update a custodial transaction.
|
|
935
932
|
*
|
|
936
|
-
* @param
|
|
937
|
-
*
|
|
938
|
-
* @
|
|
933
|
+
* @param transactionId - The ID of the transaction to update.
|
|
934
|
+
* @param options - The custodial transaction options to update.
|
|
935
|
+
* @param options.errorMessage - The error message to be assigned in case transaction status update to failed.
|
|
936
|
+
* @param options.hash - The new hash value to be assigned.
|
|
937
|
+
* @param options.status - The new status value to be assigned.
|
|
939
938
|
*/
|
|
940
|
-
updateCustodialTransaction(
|
|
941
|
-
const { transactionId, errorMessage, hash, status, gasLimit, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, type, } = request;
|
|
939
|
+
updateCustodialTransaction(transactionId, { errorMessage, hash, status, }) {
|
|
942
940
|
const transactionMeta = this.getTransaction(transactionId);
|
|
943
941
|
if (!transactionMeta) {
|
|
944
942
|
throw new Error(`Cannot update custodial transaction as no transaction metadata found`);
|
|
945
943
|
}
|
|
944
|
+
if (!transactionMeta.custodyId) {
|
|
945
|
+
throw new Error('Transaction must be a custodian transaction');
|
|
946
|
+
}
|
|
946
947
|
if (status &&
|
|
947
948
|
![
|
|
948
949
|
types_1.TransactionStatus.submitted,
|
|
@@ -958,27 +959,11 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
958
959
|
if (updatedTransactionMeta.status === types_1.TransactionStatus.failed) {
|
|
959
960
|
updatedTransactionMeta.error = (0, utils_2.normalizeTxError)(new Error(errorMessage));
|
|
960
961
|
}
|
|
961
|
-
// Update txParams properties with a single pickBy operation
|
|
962
|
-
updatedTransactionMeta.txParams = (0, lodash_1.merge)({}, updatedTransactionMeta.txParams, (0, lodash_1.pickBy)({
|
|
963
|
-
gasLimit,
|
|
964
|
-
gasPrice,
|
|
965
|
-
maxFeePerGas,
|
|
966
|
-
maxPriorityFeePerGas,
|
|
967
|
-
nonce,
|
|
968
|
-
type,
|
|
969
|
-
}));
|
|
970
|
-
// Special case for type change to legacy
|
|
971
|
-
if (type === types_1.TransactionEnvelopeType.legacy) {
|
|
972
|
-
delete updatedTransactionMeta.txParams.maxFeePerGas;
|
|
973
|
-
delete updatedTransactionMeta.txParams.maxPriorityFeePerGas;
|
|
974
|
-
}
|
|
975
962
|
this.updateTransaction(updatedTransactionMeta, `${controllerName}:updateCustodialTransaction - Custodial transaction updated`);
|
|
976
|
-
if (status
|
|
977
|
-
[types_1.TransactionStatus.submitted, types_1.TransactionStatus.failed].includes(status)) {
|
|
963
|
+
if ([types_1.TransactionStatus.submitted, types_1.TransactionStatus.failed].includes(status)) {
|
|
978
964
|
this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
|
|
979
965
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${updatedTransactionMeta.id}:finished`, updatedTransactionMeta);
|
|
980
966
|
}
|
|
981
|
-
return updatedTransactionMeta;
|
|
982
967
|
}
|
|
983
968
|
/**
|
|
984
969
|
* Search transaction metadata for matching entries.
|
|
@@ -1395,7 +1380,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1395
1380
|
});
|
|
1396
1381
|
this.onTransactionStatusChange(transactionMeta);
|
|
1397
1382
|
const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => this.signTransaction(transactionMeta));
|
|
1398
|
-
if (!
|
|
1383
|
+
if (!this.beforePublish(transactionMeta)) {
|
|
1399
1384
|
(0, logger_1.projectLogger)('Skipping publishing transaction based on hook');
|
|
1400
1385
|
this.messagingSystem.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
|
|
1401
1386
|
return ApprovalState.SkippedViaBeforePublishHook;
|
|
@@ -1981,6 +1966,7 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
1981
1966
|
}),
|
|
1982
1967
|
hooks: {
|
|
1983
1968
|
beforeCheckPendingTransaction: this.beforeCheckPendingTransaction.bind(this),
|
|
1969
|
+
beforePublish: this.beforePublish.bind(this),
|
|
1984
1970
|
},
|
|
1985
1971
|
});
|
|
1986
1972
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addPendingTransactionTrackerListeners).call(this, pendingTransactionTracker);
|
|
@@ -2196,11 +2182,8 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
2196
2182
|
ethQuery,
|
|
2197
2183
|
isCustomNetwork,
|
|
2198
2184
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
|
|
2199
|
-
messenger: this.messagingSystem,
|
|
2200
2185
|
txMeta: transactionMeta,
|
|
2201
2186
|
});
|
|
2202
|
-
}, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
|
|
2203
|
-
this.messagingSystem.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
|
|
2204
2187
|
}, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
|
|
2205
2188
|
this.update((state) => {
|
|
2206
2189
|
const transactions = state.transactions.filter(({ id }) => id !== transactionId);
|