@metamask-previews/transaction-controller 48.0.0-preview-22387993 → 48.2.0-preview-c37ee1c7
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 +28 -1
- package/dist/TransactionController.cjs +14 -17
- 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 +14 -17
- 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 +3 -8
- 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 +3 -8
- package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.cjs +4 -12
- package/dist/helpers/IncomingTransactionHelper.cjs.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.cts +1 -3
- package/dist/helpers/IncomingTransactionHelper.d.cts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.mts +1 -3
- package/dist/helpers/IncomingTransactionHelper.d.mts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.mjs +4 -12
- package/dist/helpers/IncomingTransactionHelper.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +14 -7
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +14 -7
- package/dist/types.d.mts.map +1 -1
- 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/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,31 @@ 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 optional batch ID to metadata ([#5462](https://github.com/MetaMask/core/pull/5462))
|
|
13
|
+
- Add optional `batchId` property to `TransactionMeta`.
|
|
14
|
+
- Add optional `transactionHash` to `TransactionReceipt`.
|
|
15
|
+
- Add optional `data` to `Log`.
|
|
16
|
+
- Add optional `batchId` to `TransactionBatchRequest`.
|
|
17
|
+
- Add optional `batchId` to `addTransaction` options.
|
|
18
|
+
- Throw if `batchId` already exists on a transaction.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- **BREAKING:** Add optional batch ID to metadata ([#5462](https://github.com/MetaMask/core/pull/5462))
|
|
23
|
+
- Change `batchId` in `TransactionBatchResult` to `Hex`.
|
|
24
|
+
- Return `batchId` from `addTransactionBatch` if provided.
|
|
25
|
+
- Generate random batch ID if no `batchId` provided.
|
|
26
|
+
|
|
27
|
+
## [48.2.0]
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
- Normalize gas limit using `gas` and `gasLimit` properties ([#5396](https://github.com/MetaMask/core/pull/5396))
|
|
32
|
+
|
|
33
|
+
## [48.1.0]
|
|
34
|
+
|
|
10
35
|
### Changed
|
|
11
36
|
|
|
12
37
|
- Prevent external transactions to internal accounts if `data` included ([#5418](https://github.com/MetaMask/core/pull/5418))
|
|
@@ -1330,7 +1355,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1330
1355
|
|
|
1331
1356
|
All changes listed after this point were applied to this package following the monorepo conversion.
|
|
1332
1357
|
|
|
1333
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.
|
|
1358
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.2.0...HEAD
|
|
1359
|
+
[48.2.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.1.0...@metamask/transaction-controller@48.2.0
|
|
1360
|
+
[48.1.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.0.0...@metamask/transaction-controller@48.1.0
|
|
1334
1361
|
[48.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@47.0.0...@metamask/transaction-controller@48.0.0
|
|
1335
1362
|
[47.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@46.0.0...@metamask/transaction-controller@47.0.0
|
|
1336
1363
|
[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,
|
|
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;
|
|
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,7 +171,6 @@ 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());
|
|
175
174
|
_TransactionController_incomingTransactionHelper.set(this, void 0);
|
|
176
175
|
_TransactionController_incomingTransactionOptions.set(this, void 0);
|
|
177
176
|
_TransactionController_pendingTransactionOptions.set(this, void 0);
|
|
@@ -266,7 +265,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
266
265
|
};
|
|
267
266
|
__classPrivateFieldSet(this, _TransactionController_incomingTransactionHelper, new IncomingTransactionHelper_1.IncomingTransactionHelper({
|
|
268
267
|
getCache: () => this.state.lastFetchedBlockNumbers,
|
|
269
|
-
getChainIds: () => [...__classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f")],
|
|
270
268
|
getCurrentAccount: () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSelectedAccount).call(this),
|
|
271
269
|
getLocalTransactions: () => this.state.transactions,
|
|
272
270
|
includeTokenTransfers: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").includeTokenTransfers,
|
|
@@ -344,6 +342,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
344
342
|
* @param txParams - Standard parameters for an Ethereum transaction.
|
|
345
343
|
* @param options - Additional options to control how the transaction is added.
|
|
346
344
|
* @param options.actionId - Unique ID to prevent duplicate requests.
|
|
345
|
+
* @param options.batchId - A custom ID for the batch this transaction belongs to.
|
|
347
346
|
* @param options.deviceConfirmedOn - An enum to indicate what device confirmed the transaction.
|
|
348
347
|
* @param options.method - RPC method that requested the transaction.
|
|
349
348
|
* @param options.nestedTransactions - Params for any nested transactions encoded in the data.
|
|
@@ -361,7 +360,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
361
360
|
*/
|
|
362
361
|
async addTransaction(txParams, options) {
|
|
363
362
|
(0, logger_1.projectLogger)('Adding transaction', txParams, options);
|
|
364
|
-
const { actionId, deviceConfirmedOn, method, nestedTransactions, networkClientId, origin, requireApproval, securityAlertResponse, sendFlowHistory, swaps = {}, traceContext, type, } = options;
|
|
363
|
+
const { actionId, batchId, deviceConfirmedOn, method, nestedTransactions, networkClientId, origin, requireApproval, securityAlertResponse, sendFlowHistory, swaps = {}, traceContext, type, } = options;
|
|
365
364
|
txParams = (0, utils_2.normalizeTransactionParams)(txParams);
|
|
366
365
|
if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
|
|
367
366
|
throw new Error(`Network client not found - ${networkClientId}`);
|
|
@@ -383,6 +382,11 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
383
382
|
});
|
|
384
383
|
const isEIP1559Compatible = await this.getEIP1559Compatibility(networkClientId);
|
|
385
384
|
(0, validation_1.validateTxParams)(txParams, isEIP1559Compatible);
|
|
385
|
+
const isDuplicateBatchId = batchId?.length &&
|
|
386
|
+
this.state.transactions.some((tx) => tx.batchId?.toLowerCase() === batchId?.toLowerCase());
|
|
387
|
+
if (isDuplicateBatchId) {
|
|
388
|
+
throw rpc_errors_1.rpcErrors.invalidInput('Batch ID already exists');
|
|
389
|
+
}
|
|
386
390
|
const dappSuggestedGasFees = this.generateDappSuggestedGasFees(txParams, origin);
|
|
387
391
|
const chainId = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId);
|
|
388
392
|
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
|
|
@@ -396,6 +400,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
396
400
|
: {
|
|
397
401
|
// Add actionId to txMeta to check if same actionId is seen again
|
|
398
402
|
actionId,
|
|
403
|
+
batchId,
|
|
399
404
|
chainId,
|
|
400
405
|
dappSuggestedGasFees,
|
|
401
406
|
deviceConfirmedOn,
|
|
@@ -464,21 +469,13 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
464
469
|
transactionMeta: addedTransactionMeta,
|
|
465
470
|
};
|
|
466
471
|
}
|
|
467
|
-
startIncomingTransactionPolling(
|
|
468
|
-
chainIds.forEach((chainId) => __classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").add(chainId));
|
|
472
|
+
startIncomingTransactionPolling() {
|
|
469
473
|
__classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").start();
|
|
470
474
|
}
|
|
471
|
-
stopIncomingTransactionPolling(
|
|
472
|
-
|
|
473
|
-
if (!chainIds) {
|
|
474
|
-
__classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").clear();
|
|
475
|
-
}
|
|
476
|
-
if (__classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").size === 0) {
|
|
477
|
-
__classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").stop();
|
|
478
|
-
}
|
|
475
|
+
stopIncomingTransactionPolling() {
|
|
476
|
+
__classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").stop();
|
|
479
477
|
}
|
|
480
|
-
async updateIncomingTransactions(
|
|
481
|
-
chainIds.forEach((chainId) => __classPrivateFieldGet(this, _TransactionController_incomingTransactionChainIds, "f").add(chainId));
|
|
478
|
+
async updateIncomingTransactions() {
|
|
482
479
|
await __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").update();
|
|
483
480
|
}
|
|
484
481
|
/**
|
|
@@ -1787,7 +1784,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1787
1784
|
}
|
|
1788
1785
|
}
|
|
1789
1786
|
exports.TransactionController = TransactionController;
|
|
1790
|
-
_TransactionController_internalEvents = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(),
|
|
1787
|
+
_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, }) {
|
|
1791
1788
|
// If transaction is found for same action id, do not create a new transaction.
|
|
1792
1789
|
if (this.getTransactionWithActionId(actionId)) {
|
|
1793
1790
|
return;
|