@metamask-previews/transaction-controller 46.0.0-preview-af470a9 → 46.0.0-preview-e951f896
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 +1 -0
- package/dist/TransactionController.cjs +65 -11
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +14 -0
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +14 -0
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +66 -12
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/utils/validation.cjs +3 -5
- 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 +3 -5
- package/dist/utils/validation.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
### Added
|
|
11
11
|
|
|
12
|
+
- Add `updateAtomicBatchData` method ([#5380](https://github.com/MetaMask/core/pull/5380))
|
|
12
13
|
- Support atomic batch transactions ([#5306](https://github.com/MetaMask/core/pull/5306))
|
|
13
14
|
- Add methods:
|
|
14
15
|
- `addTransactionBatch`
|
|
@@ -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_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;
|
|
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");
|
|
@@ -372,7 +372,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
372
372
|
const selectedAddress = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSelectedAccount).call(this).address;
|
|
373
373
|
const internalAccounts = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getInternalAccounts).call(this);
|
|
374
374
|
await (0, validation_1.validateTransactionOrigin)({
|
|
375
|
-
data: txParams.data,
|
|
376
375
|
from: txParams.from,
|
|
377
376
|
internalAccounts,
|
|
378
377
|
origin,
|
|
@@ -1104,6 +1103,54 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1104
1103
|
abortCallback();
|
|
1105
1104
|
this.signAbortCallbacks.delete(transactionId);
|
|
1106
1105
|
}
|
|
1106
|
+
/**
|
|
1107
|
+
* Update the transaction data of a single nested transaction within an atomic batch transaction.
|
|
1108
|
+
*
|
|
1109
|
+
* @param options - The options bag.
|
|
1110
|
+
* @param options.transactionId - ID of the atomic batch transaction.
|
|
1111
|
+
* @param options.transactionIndex - Index of the nested transaction within the atomic batch transaction.
|
|
1112
|
+
* @param options.transactionData - New data to set for the nested transaction.
|
|
1113
|
+
* @returns The updated data for the atomic batch transaction.
|
|
1114
|
+
*/
|
|
1115
|
+
async updateAtomicBatchData({ transactionId, transactionIndex, transactionData, }) {
|
|
1116
|
+
(0, logger_1.projectLogger)('Updating atomic batch data', {
|
|
1117
|
+
transactionId,
|
|
1118
|
+
transactionIndex,
|
|
1119
|
+
transactionData,
|
|
1120
|
+
});
|
|
1121
|
+
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1122
|
+
transactionId,
|
|
1123
|
+
note: 'TransactionController#updateAtomicBatchData - Atomic batch data updated',
|
|
1124
|
+
}, (transactionMeta) => {
|
|
1125
|
+
const { nestedTransactions, txParams } = transactionMeta;
|
|
1126
|
+
const from = txParams.from;
|
|
1127
|
+
const nestedTransaction = nestedTransactions?.[transactionIndex];
|
|
1128
|
+
if (!nestedTransaction) {
|
|
1129
|
+
throw new Error(`Nested transaction not found with index - ${transactionIndex}`);
|
|
1130
|
+
}
|
|
1131
|
+
nestedTransaction.data = transactionData;
|
|
1132
|
+
const batchTransaction = (0, eip7702_1.generateEIP7702BatchTransaction)(from, nestedTransactions);
|
|
1133
|
+
transactionMeta.txParams.data = batchTransaction.data;
|
|
1134
|
+
});
|
|
1135
|
+
const draftTransaction = (0, lodash_1.cloneDeep)({
|
|
1136
|
+
...updatedTransactionMeta,
|
|
1137
|
+
txParams: {
|
|
1138
|
+
...updatedTransactionMeta.txParams,
|
|
1139
|
+
// Clear existing gas to force estimation
|
|
1140
|
+
gas: undefined,
|
|
1141
|
+
},
|
|
1142
|
+
});
|
|
1143
|
+
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasEstimate).call(this, draftTransaction);
|
|
1144
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1145
|
+
transactionId,
|
|
1146
|
+
note: 'TransactionController#updateAtomicBatchData - Gas estimate updated',
|
|
1147
|
+
}, (transactionMeta) => {
|
|
1148
|
+
transactionMeta.txParams.gas = draftTransaction.txParams.gas;
|
|
1149
|
+
transactionMeta.simulationFails = draftTransaction.simulationFails;
|
|
1150
|
+
transactionMeta.gasLimitNoBuffer = draftTransaction.gasLimitNoBuffer;
|
|
1151
|
+
});
|
|
1152
|
+
return updatedTransactionMeta.txParams.data;
|
|
1153
|
+
}
|
|
1107
1154
|
addMetadata(transactionMeta) {
|
|
1108
1155
|
(0, validation_1.validateTxParams)(transactionMeta.txParams);
|
|
1109
1156
|
this.update((state) => {
|
|
@@ -1116,18 +1163,11 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1116
1163
|
async updateGasProperties(transactionMeta, { traceContext } = {}) {
|
|
1117
1164
|
const isEIP1559Compatible = transactionMeta.txParams.type !== types_1.TransactionEnvelopeType.legacy &&
|
|
1118
1165
|
(await this.getEIP1559Compatibility(transactionMeta.networkClientId));
|
|
1119
|
-
const { networkClientId
|
|
1120
|
-
const isCustomNetwork = __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({ networkClientId })
|
|
1121
|
-
.configuration.type === network_controller_1.NetworkClientType.Custom;
|
|
1166
|
+
const { networkClientId } = transactionMeta;
|
|
1122
1167
|
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
|
|
1123
1168
|
const provider = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getProvider).call(this, { networkClientId });
|
|
1124
1169
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Gas', parentContext: traceContext }, async () => {
|
|
1125
|
-
await (
|
|
1126
|
-
ethQuery,
|
|
1127
|
-
chainId,
|
|
1128
|
-
isCustomNetwork,
|
|
1129
|
-
txMeta: transactionMeta,
|
|
1130
|
-
});
|
|
1170
|
+
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasEstimate).call(this, transactionMeta);
|
|
1131
1171
|
});
|
|
1132
1172
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Gas Fees', parentContext: traceContext }, async () => await (0, gas_fees_1.updateGasFees)({
|
|
1133
1173
|
eip1559: isEIP1559Compatible,
|
|
@@ -1889,6 +1929,9 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
1889
1929
|
let resimulateResponse;
|
|
1890
1930
|
this.update((state) => {
|
|
1891
1931
|
const index = state.transactions.findIndex(({ id }) => id === transactionId);
|
|
1932
|
+
if (index === -1) {
|
|
1933
|
+
throw new Error(`Cannot update transaction as ID not found - ${transactionId}`);
|
|
1934
|
+
}
|
|
1892
1935
|
let transactionMeta = state.transactions[index];
|
|
1893
1936
|
const originalTransactionMeta = (0, lodash_1.cloneDeep)(transactionMeta);
|
|
1894
1937
|
transactionMeta = callback(transactionMeta) ?? transactionMeta;
|
|
@@ -2044,5 +2087,16 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
2044
2087
|
}
|
|
2045
2088
|
submitHistory.unshift(submitHistoryEntry);
|
|
2046
2089
|
});
|
|
2090
|
+
}, _TransactionController_updateGasEstimate = async function _TransactionController_updateGasEstimate(transactionMeta) {
|
|
2091
|
+
const { chainId, networkClientId } = transactionMeta;
|
|
2092
|
+
const isCustomNetwork = __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({ networkClientId })
|
|
2093
|
+
.configuration.type === network_controller_1.NetworkClientType.Custom;
|
|
2094
|
+
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
|
|
2095
|
+
await (0, gas_1.updateGas)({
|
|
2096
|
+
chainId,
|
|
2097
|
+
ethQuery,
|
|
2098
|
+
isCustomNetwork,
|
|
2099
|
+
txMeta: transactionMeta,
|
|
2100
|
+
});
|
|
2047
2101
|
};
|
|
2048
2102
|
//# sourceMappingURL=TransactionController.cjs.map
|