@metamask-previews/transaction-controller 52.3.0-preview-cff14565 → 52.3.0-preview-8365901
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 +32 -18
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +17 -16
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +17 -16
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +32 -18
- package/dist/TransactionController.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 +1 -2
- package/dist/helpers/PendingTransactionTracker.d.cts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.mts +1 -2
- 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 +25 -11
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +25 -11
- package/dist/types.d.mts.map +1 -1
- package/dist/types.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, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow;
|
|
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_registerActionHandlers, _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,10 +215,9 @@ 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
|
-
|
|
221
|
-
this.beforePublish = hooks?.beforePublish ?? (() => true);
|
|
218
|
+
/* istanbul ignore next */
|
|
219
|
+
hooks?.beforeCheckPendingTransaction ?? (() => Promise.resolve(true));
|
|
220
|
+
this.beforePublish = hooks?.beforePublish ?? (() => Promise.resolve(true));
|
|
222
221
|
this.getAdditionalSignArguments =
|
|
223
222
|
hooks?.getAdditionalSignArguments ?? (() => []);
|
|
224
223
|
this.publish =
|
|
@@ -294,6 +293,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
294
293
|
});
|
|
295
294
|
this.onBootCleanup();
|
|
296
295
|
__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);
|
|
@@ -682,6 +682,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
682
682
|
this.onTransactionStatusChange(updatedTransactionMeta);
|
|
683
683
|
// Intentional given potential duration of process.
|
|
684
684
|
this.updatePostBalance(updatedTransactionMeta).catch((error) => {
|
|
685
|
+
/* istanbul ignore next */
|
|
685
686
|
(0, logger_1.projectLogger)('Error while updating post balance', error);
|
|
686
687
|
throw error;
|
|
687
688
|
});
|
|
@@ -930,20 +931,16 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
930
931
|
/**
|
|
931
932
|
* Update a custodial transaction.
|
|
932
933
|
*
|
|
933
|
-
* @param
|
|
934
|
-
*
|
|
935
|
-
* @
|
|
936
|
-
* @param options.hash - The new hash value to be assigned.
|
|
937
|
-
* @param options.status - The new status value to be assigned.
|
|
934
|
+
* @param request - The custodial transaction update request.
|
|
935
|
+
*
|
|
936
|
+
* @returns The updated transaction metadata.
|
|
938
937
|
*/
|
|
939
|
-
updateCustodialTransaction(
|
|
938
|
+
updateCustodialTransaction(request) {
|
|
939
|
+
const { transactionId, errorMessage, hash, status, gasLimit, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, type, } = request;
|
|
940
940
|
const transactionMeta = this.getTransaction(transactionId);
|
|
941
941
|
if (!transactionMeta) {
|
|
942
942
|
throw new Error(`Cannot update custodial transaction as no transaction metadata found`);
|
|
943
943
|
}
|
|
944
|
-
if (!transactionMeta.custodyId) {
|
|
945
|
-
throw new Error('Transaction must be a custodian transaction');
|
|
946
|
-
}
|
|
947
944
|
if (status &&
|
|
948
945
|
![
|
|
949
946
|
types_1.TransactionStatus.submitted,
|
|
@@ -959,11 +956,27 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
959
956
|
if (updatedTransactionMeta.status === types_1.TransactionStatus.failed) {
|
|
960
957
|
updatedTransactionMeta.error = (0, utils_2.normalizeTxError)(new Error(errorMessage));
|
|
961
958
|
}
|
|
959
|
+
// Update txParams properties with a single pickBy operation
|
|
960
|
+
updatedTransactionMeta.txParams = (0, lodash_1.merge)({}, updatedTransactionMeta.txParams, (0, lodash_1.pickBy)({
|
|
961
|
+
gasLimit,
|
|
962
|
+
gasPrice,
|
|
963
|
+
maxFeePerGas,
|
|
964
|
+
maxPriorityFeePerGas,
|
|
965
|
+
nonce,
|
|
966
|
+
type,
|
|
967
|
+
}));
|
|
968
|
+
// Special case for type change to legacy
|
|
969
|
+
if (type === types_1.TransactionEnvelopeType.legacy) {
|
|
970
|
+
delete updatedTransactionMeta.txParams.maxFeePerGas;
|
|
971
|
+
delete updatedTransactionMeta.txParams.maxPriorityFeePerGas;
|
|
972
|
+
}
|
|
962
973
|
this.updateTransaction(updatedTransactionMeta, `${controllerName}:updateCustodialTransaction - Custodial transaction updated`);
|
|
963
|
-
if (
|
|
974
|
+
if (status &&
|
|
975
|
+
[types_1.TransactionStatus.submitted, types_1.TransactionStatus.failed].includes(status)) {
|
|
964
976
|
this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
|
|
965
977
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${updatedTransactionMeta.id}:finished`, updatedTransactionMeta);
|
|
966
978
|
}
|
|
979
|
+
return updatedTransactionMeta;
|
|
967
980
|
}
|
|
968
981
|
/**
|
|
969
982
|
* Search transaction metadata for matching entries.
|
|
@@ -1380,7 +1393,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1380
1393
|
});
|
|
1381
1394
|
this.onTransactionStatusChange(transactionMeta);
|
|
1382
1395
|
const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => this.signTransaction(transactionMeta));
|
|
1383
|
-
if (!this.beforePublish(transactionMeta)) {
|
|
1396
|
+
if (!(await this.beforePublish(transactionMeta))) {
|
|
1384
1397
|
(0, logger_1.projectLogger)('Skipping publishing transaction based on hook');
|
|
1385
1398
|
this.messagingSystem.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
|
|
1386
1399
|
return ApprovalState.SkippedViaBeforePublishHook;
|
|
@@ -1966,7 +1979,6 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
1966
1979
|
}),
|
|
1967
1980
|
hooks: {
|
|
1968
1981
|
beforeCheckPendingTransaction: this.beforeCheckPendingTransaction.bind(this),
|
|
1969
|
-
beforePublish: this.beforePublish.bind(this),
|
|
1970
1982
|
},
|
|
1971
1983
|
});
|
|
1972
1984
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addPendingTransactionTrackerListeners).call(this, pendingTransactionTracker);
|
|
@@ -2184,6 +2196,8 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
2184
2196
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
|
|
2185
2197
|
txMeta: transactionMeta,
|
|
2186
2198
|
});
|
|
2199
|
+
}, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
|
|
2200
|
+
this.messagingSystem.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
|
|
2187
2201
|
}, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
|
|
2188
2202
|
this.update((state) => {
|
|
2189
2203
|
const transactions = state.transactions.filter(({ id }) => id !== transactionId);
|