@metamask-previews/transaction-controller 48.0.0-preview-a615cdf2 → 48.2.0-preview-c1633ccd
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 +33 -1
- package/dist/TransactionController.cjs +25 -7
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +5 -3
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +5 -3
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +25 -7
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/gas-flows/OracleLayer1GasFeeFlow.cjs +1 -2
- package/dist/gas-flows/OracleLayer1GasFeeFlow.cjs.map +1 -1
- package/dist/gas-flows/OracleLayer1GasFeeFlow.d.cts.map +1 -1
- package/dist/gas-flows/OracleLayer1GasFeeFlow.d.mts.map +1 -1
- package/dist/gas-flows/OracleLayer1GasFeeFlow.mjs +1 -3
- package/dist/gas-flows/OracleLayer1GasFeeFlow.mjs.map +1 -1
- package/dist/helpers/AccountsApiRemoteTransactionSource.cjs +8 -3
- 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 +8 -3
- package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.cjs +12 -4
- package/dist/helpers/IncomingTransactionHelper.cjs.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.cts +3 -1
- package/dist/helpers/IncomingTransactionHelper.d.cts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.mts +3 -1
- package/dist/helpers/IncomingTransactionHelper.d.mts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.mjs +12 -4
- package/dist/helpers/IncomingTransactionHelper.mjs.map +1 -1
- package/dist/types.cjs +5 -0
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +23 -3
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +23 -3
- 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 +15 -3
- package/dist/utils/batch.cjs.map +1 -1
- package/dist/utils/batch.d.cts +2 -2
- package/dist/utils/batch.d.cts.map +1 -1
- package/dist/utils/batch.d.mts +2 -2
- package/dist/utils/batch.d.mts.map +1 -1
- package/dist/utils/batch.mjs +16 -4
- package/dist/utils/batch.mjs.map +1 -1
- package/dist/utils/utils.cjs +3 -0
- package/dist/utils/utils.cjs.map +1 -1
- package/dist/utils/utils.d.cts.map +1 -1
- package/dist/utils/utils.d.mts.map +1 -1
- package/dist/utils/utils.mjs +3 -0
- package/dist/utils/utils.mjs.map +1 -1
- package/dist/utils/validation.cjs +6 -3
- package/dist/utils/validation.cjs.map +1 -1
- package/dist/utils/validation.d.cts +3 -1
- package/dist/utils/validation.d.cts.map +1 -1
- package/dist/utils/validation.d.mts +3 -1
- package/dist/utils/validation.d.mts.map +1 -1
- package/dist/utils/validation.mjs +6 -3
- package/dist/utils/validation.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Add `revertDelegation` to `TransactionType` ([#5468](https://github.com/MetaMask/core/pull/5468))
|
|
13
|
+
- Add optional batch ID to metadata ([#5462](https://github.com/MetaMask/core/pull/5462))
|
|
14
|
+
- Add optional `batchId` property to `TransactionMeta`.
|
|
15
|
+
- Add optional `transactionHash` to `TransactionReceipt`.
|
|
16
|
+
- Add optional `data` to `Log`.
|
|
17
|
+
- Add optional `batchId` to `TransactionBatchRequest`.
|
|
18
|
+
- Add optional `batchId` to `addTransaction` options.
|
|
19
|
+
- Throw if `batchId` already exists on a transaction.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- **BREAKING:** Add optional batch ID to metadata ([#5462](https://github.com/MetaMask/core/pull/5462))
|
|
24
|
+
- Change `batchId` in `TransactionBatchResult` to `Hex`.
|
|
25
|
+
- Return `batchId` from `addTransactionBatch` if provided.
|
|
26
|
+
- Generate random batch ID if no `batchId` provided.
|
|
27
|
+
|
|
28
|
+
## [48.2.0]
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- Normalize gas limit using `gas` and `gasLimit` properties ([#5396](https://github.com/MetaMask/core/pull/5396))
|
|
33
|
+
|
|
34
|
+
## [48.1.0]
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- Prevent external transactions to internal accounts if `data` included ([#5418](https://github.com/MetaMask/core/pull/5418))
|
|
39
|
+
|
|
10
40
|
## [48.0.0]
|
|
11
41
|
|
|
12
42
|
### Changed
|
|
@@ -1326,7 +1356,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1326
1356
|
|
|
1327
1357
|
All changes listed after this point were applied to this package following the monorepo conversion.
|
|
1328
1358
|
|
|
1329
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.
|
|
1359
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.2.0...HEAD
|
|
1360
|
+
[48.2.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.1.0...@metamask/transaction-controller@48.2.0
|
|
1361
|
+
[48.1.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.0.0...@metamask/transaction-controller@48.1.0
|
|
1330
1362
|
[48.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@47.0.0...@metamask/transaction-controller@48.0.0
|
|
1331
1363
|
[47.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@46.0.0...@metamask/transaction-controller@47.0.0
|
|
1332
1364
|
[46.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@45.1.0...@metamask/transaction-controller@46.0.0
|
|
@@ -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_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _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_incomingTransactionChainIds, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _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;
|
|
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");
|
|
@@ -171,6 +171,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
171
171
|
this.approvingTransactionIds = new Set();
|
|
172
172
|
_TransactionController_methodDataHelper.set(this, void 0);
|
|
173
173
|
this.mutex = new async_mutex_1.Mutex();
|
|
174
|
+
_TransactionController_incomingTransactionChainIds.set(this, new Set());
|
|
174
175
|
_TransactionController_incomingTransactionHelper.set(this, void 0);
|
|
175
176
|
_TransactionController_incomingTransactionOptions.set(this, void 0);
|
|
176
177
|
_TransactionController_pendingTransactionOptions.set(this, void 0);
|
|
@@ -265,6 +266,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
265
266
|
};
|
|
266
267
|
__classPrivateFieldSet(this, _TransactionController_incomingTransactionHelper, new IncomingTransactionHelper_1.IncomingTransactionHelper({
|
|
267
268
|
getCache: () => this.state.lastFetchedBlockNumbers,
|
|
269
|
+
getChainIds: () => [...__classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f")],
|
|
268
270
|
getCurrentAccount: () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSelectedAccount).call(this),
|
|
269
271
|
getLocalTransactions: () => this.state.transactions,
|
|
270
272
|
includeTokenTransfers: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").includeTokenTransfers,
|
|
@@ -342,6 +344,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
342
344
|
* @param txParams - Standard parameters for an Ethereum transaction.
|
|
343
345
|
* @param options - Additional options to control how the transaction is added.
|
|
344
346
|
* @param options.actionId - Unique ID to prevent duplicate requests.
|
|
347
|
+
* @param options.batchId - A custom ID for the batch this transaction belongs to.
|
|
345
348
|
* @param options.deviceConfirmedOn - An enum to indicate what device confirmed the transaction.
|
|
346
349
|
* @param options.method - RPC method that requested the transaction.
|
|
347
350
|
* @param options.nestedTransactions - Params for any nested transactions encoded in the data.
|
|
@@ -359,7 +362,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
359
362
|
*/
|
|
360
363
|
async addTransaction(txParams, options) {
|
|
361
364
|
(0, logger_1.projectLogger)('Adding transaction', txParams, options);
|
|
362
|
-
const { actionId, deviceConfirmedOn, method, nestedTransactions, networkClientId, origin, requireApproval, securityAlertResponse, sendFlowHistory, swaps = {}, traceContext, type, } = options;
|
|
365
|
+
const { actionId, batchId, deviceConfirmedOn, method, nestedTransactions, networkClientId, origin, requireApproval, securityAlertResponse, sendFlowHistory, swaps = {}, traceContext, type, } = options;
|
|
363
366
|
txParams = (0, utils_2.normalizeTransactionParams)(txParams);
|
|
364
367
|
if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
|
|
365
368
|
throw new Error(`Network client not found - ${networkClientId}`);
|
|
@@ -370,6 +373,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
370
373
|
const selectedAddress = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSelectedAccount).call(this).address;
|
|
371
374
|
const internalAccounts = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getInternalAccounts).call(this);
|
|
372
375
|
await (0, validation_1.validateTransactionOrigin)({
|
|
376
|
+
data: txParams.data,
|
|
373
377
|
from: txParams.from,
|
|
374
378
|
internalAccounts,
|
|
375
379
|
origin,
|
|
@@ -380,6 +384,11 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
380
384
|
});
|
|
381
385
|
const isEIP1559Compatible = await this.getEIP1559Compatibility(networkClientId);
|
|
382
386
|
(0, validation_1.validateTxParams)(txParams, isEIP1559Compatible);
|
|
387
|
+
const isDuplicateBatchId = batchId?.length &&
|
|
388
|
+
this.state.transactions.some((tx) => tx.batchId?.toLowerCase() === batchId?.toLowerCase());
|
|
389
|
+
if (isDuplicateBatchId) {
|
|
390
|
+
throw rpc_errors_1.rpcErrors.invalidInput('Batch ID already exists');
|
|
391
|
+
}
|
|
383
392
|
const dappSuggestedGasFees = this.generateDappSuggestedGasFees(txParams, origin);
|
|
384
393
|
const chainId = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId);
|
|
385
394
|
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
|
|
@@ -393,6 +402,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
393
402
|
: {
|
|
394
403
|
// Add actionId to txMeta to check if same actionId is seen again
|
|
395
404
|
actionId,
|
|
405
|
+
batchId,
|
|
396
406
|
chainId,
|
|
397
407
|
dappSuggestedGasFees,
|
|
398
408
|
deviceConfirmedOn,
|
|
@@ -461,13 +471,21 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
461
471
|
transactionMeta: addedTransactionMeta,
|
|
462
472
|
};
|
|
463
473
|
}
|
|
464
|
-
startIncomingTransactionPolling() {
|
|
474
|
+
startIncomingTransactionPolling(chainIds) {
|
|
475
|
+
chainIds.forEach((chainId) => __classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").add(chainId));
|
|
465
476
|
__classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").start();
|
|
466
477
|
}
|
|
467
|
-
stopIncomingTransactionPolling() {
|
|
468
|
-
__classPrivateFieldGet(this,
|
|
478
|
+
stopIncomingTransactionPolling(chainIds) {
|
|
479
|
+
chainIds?.forEach((chainId) => __classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").delete(chainId));
|
|
480
|
+
if (!chainIds) {
|
|
481
|
+
__classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").clear();
|
|
482
|
+
}
|
|
483
|
+
if (__classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").size === 0) {
|
|
484
|
+
__classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").stop();
|
|
485
|
+
}
|
|
469
486
|
}
|
|
470
|
-
async updateIncomingTransactions() {
|
|
487
|
+
async updateIncomingTransactions(chainIds) {
|
|
488
|
+
chainIds.forEach((chainId) => __classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").add(chainId));
|
|
471
489
|
await __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").update();
|
|
472
490
|
}
|
|
473
491
|
/**
|
|
@@ -1776,7 +1794,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1776
1794
|
}
|
|
1777
1795
|
}
|
|
1778
1796
|
exports.TransactionController = TransactionController;
|
|
1779
|
-
_TransactionController_internalEvents = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_multichainTrackingHelper = 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, }) {
|
|
1797
|
+
_TransactionController_internalEvents = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_incomingTransactionChainIds = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_multichainTrackingHelper = 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, }) {
|
|
1780
1798
|
// If transaction is found for same action id, do not create a new transaction.
|
|
1781
1799
|
if (this.getTransactionWithActionId(actionId)) {
|
|
1782
1800
|
return;
|