@metamask-previews/transaction-controller 46.0.0-preview-1b0ea93a → 46.0.0-preview-90578fc4
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 -10
- 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 -11
- package/dist/TransactionController.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");
|
|
@@ -1103,6 +1103,54 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1103
1103
|
abortCallback();
|
|
1104
1104
|
this.signAbortCallbacks.delete(transactionId);
|
|
1105
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
|
+
}
|
|
1106
1154
|
addMetadata(transactionMeta) {
|
|
1107
1155
|
(0, validation_1.validateTxParams)(transactionMeta.txParams);
|
|
1108
1156
|
this.update((state) => {
|
|
@@ -1115,18 +1163,11 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1115
1163
|
async updateGasProperties(transactionMeta, { traceContext } = {}) {
|
|
1116
1164
|
const isEIP1559Compatible = transactionMeta.txParams.type !== types_1.TransactionEnvelopeType.legacy &&
|
|
1117
1165
|
(await this.getEIP1559Compatibility(transactionMeta.networkClientId));
|
|
1118
|
-
const { networkClientId
|
|
1119
|
-
const isCustomNetwork = __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({ networkClientId })
|
|
1120
|
-
.configuration.type === network_controller_1.NetworkClientType.Custom;
|
|
1166
|
+
const { networkClientId } = transactionMeta;
|
|
1121
1167
|
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
|
|
1122
1168
|
const provider = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getProvider).call(this, { networkClientId });
|
|
1123
1169
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Gas', parentContext: traceContext }, async () => {
|
|
1124
|
-
await (
|
|
1125
|
-
ethQuery,
|
|
1126
|
-
chainId,
|
|
1127
|
-
isCustomNetwork,
|
|
1128
|
-
txMeta: transactionMeta,
|
|
1129
|
-
});
|
|
1170
|
+
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasEstimate).call(this, transactionMeta);
|
|
1130
1171
|
});
|
|
1131
1172
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Gas Fees', parentContext: traceContext }, async () => await (0, gas_fees_1.updateGasFees)({
|
|
1132
1173
|
eip1559: isEIP1559Compatible,
|
|
@@ -1888,6 +1929,9 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
1888
1929
|
let resimulateResponse;
|
|
1889
1930
|
this.update((state) => {
|
|
1890
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
|
+
}
|
|
1891
1935
|
let transactionMeta = state.transactions[index];
|
|
1892
1936
|
const originalTransactionMeta = (0, lodash_1.cloneDeep)(transactionMeta);
|
|
1893
1937
|
transactionMeta = callback(transactionMeta) ?? transactionMeta;
|
|
@@ -2043,5 +2087,16 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
2043
2087
|
}
|
|
2044
2088
|
submitHistory.unshift(submitHistoryEntry);
|
|
2045
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
|
+
});
|
|
2046
2101
|
};
|
|
2047
2102
|
//# sourceMappingURL=TransactionController.cjs.map
|