@metamask-previews/transaction-controller 52.3.0-preview-6cc620a → 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 -32
- 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 -32
- 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/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);
|
|
@@ -682,7 +682,6 @@ 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 */
|
|
686
685
|
(0, logger_1.projectLogger)('Error while updating post balance', error);
|
|
687
686
|
throw error;
|
|
688
687
|
});
|
|
@@ -931,16 +930,20 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
931
930
|
/**
|
|
932
931
|
* Update a custodial transaction.
|
|
933
932
|
*
|
|
934
|
-
* @param
|
|
935
|
-
*
|
|
936
|
-
* @
|
|
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.
|
|
937
938
|
*/
|
|
938
|
-
updateCustodialTransaction(
|
|
939
|
-
const { transactionId, errorMessage, hash, status, gasLimit, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, type, } = request;
|
|
939
|
+
updateCustodialTransaction(transactionId, { errorMessage, hash, status, }) {
|
|
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
|
+
}
|
|
944
947
|
if (status &&
|
|
945
948
|
![
|
|
946
949
|
types_1.TransactionStatus.submitted,
|
|
@@ -956,27 +959,11 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
956
959
|
if (updatedTransactionMeta.status === types_1.TransactionStatus.failed) {
|
|
957
960
|
updatedTransactionMeta.error = (0, utils_2.normalizeTxError)(new Error(errorMessage));
|
|
958
961
|
}
|
|
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
|
-
}
|
|
973
962
|
this.updateTransaction(updatedTransactionMeta, `${controllerName}:updateCustodialTransaction - Custodial transaction updated`);
|
|
974
|
-
if (status
|
|
975
|
-
[types_1.TransactionStatus.submitted, types_1.TransactionStatus.failed].includes(status)) {
|
|
963
|
+
if ([types_1.TransactionStatus.submitted, types_1.TransactionStatus.failed].includes(status)) {
|
|
976
964
|
this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
|
|
977
965
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${updatedTransactionMeta.id}:finished`, updatedTransactionMeta);
|
|
978
966
|
}
|
|
979
|
-
return updatedTransactionMeta;
|
|
980
967
|
}
|
|
981
968
|
/**
|
|
982
969
|
* Search transaction metadata for matching entries.
|
|
@@ -1393,7 +1380,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1393
1380
|
});
|
|
1394
1381
|
this.onTransactionStatusChange(transactionMeta);
|
|
1395
1382
|
const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => this.signTransaction(transactionMeta));
|
|
1396
|
-
if (!
|
|
1383
|
+
if (!this.beforePublish(transactionMeta)) {
|
|
1397
1384
|
(0, logger_1.projectLogger)('Skipping publishing transaction based on hook');
|
|
1398
1385
|
this.messagingSystem.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
|
|
1399
1386
|
return ApprovalState.SkippedViaBeforePublishHook;
|
|
@@ -1979,6 +1966,7 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
1979
1966
|
}),
|
|
1980
1967
|
hooks: {
|
|
1981
1968
|
beforeCheckPendingTransaction: this.beforeCheckPendingTransaction.bind(this),
|
|
1969
|
+
beforePublish: this.beforePublish.bind(this),
|
|
1982
1970
|
},
|
|
1983
1971
|
});
|
|
1984
1972
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addPendingTransactionTrackerListeners).call(this, pendingTransactionTracker);
|
|
@@ -2196,8 +2184,6 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
2196
2184
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
|
|
2197
2185
|
txMeta: transactionMeta,
|
|
2198
2186
|
});
|
|
2199
|
-
}, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
|
|
2200
|
-
this.messagingSystem.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
|
|
2201
2187
|
}, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
|
|
2202
2188
|
this.update((state) => {
|
|
2203
2189
|
const transactions = state.transactions.filter(({ id }) => id !== transactionId);
|