@metamask-previews/transaction-controller 65.0.0-preview-95a687acf → 65.0.0-preview-4e0ae1bc9
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 +7 -0
- package/dist/TransactionController.cjs +32 -1
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +32 -1
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/api/simulation-api.cjs.map +1 -1
- package/dist/api/simulation-api.d.cts +2 -0
- package/dist/api/simulation-api.d.cts.map +1 -1
- package/dist/api/simulation-api.d.mts +2 -0
- package/dist/api/simulation-api.d.mts.map +1 -1
- package/dist/api/simulation-api.mjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.cjs +13 -2
- package/dist/helpers/PendingTransactionTracker.cjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.cts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.mts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.mjs +13 -2
- package/dist/helpers/PendingTransactionTracker.mjs.map +1 -1
- package/dist/index.cjs +3 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +22 -0
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +22 -0
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/balance-changes.cjs +21 -1
- package/dist/utils/balance-changes.cjs.map +1 -1
- package/dist/utils/balance-changes.d.cts +2 -1
- package/dist/utils/balance-changes.d.cts.map +1 -1
- package/dist/utils/balance-changes.d.mts +2 -1
- package/dist/utils/balance-changes.d.mts.map +1 -1
- package/dist/utils/balance-changes.mjs +21 -1
- package/dist/utils/balance-changes.mjs.map +1 -1
- package/dist/utils/eip7702.cjs +33 -8
- package/dist/utils/eip7702.cjs.map +1 -1
- package/dist/utils/eip7702.d.cts +12 -0
- package/dist/utils/eip7702.d.cts.map +1 -1
- package/dist/utils/eip7702.d.mts +12 -0
- package/dist/utils/eip7702.d.mts.map +1 -1
- package/dist/utils/eip7702.mjs +31 -7
- package/dist/utils/eip7702.mjs.map +1 -1
- package/dist/utils/gas.cjs +12 -5
- package/dist/utils/gas.cjs.map +1 -1
- package/dist/utils/gas.d.cts +2 -1
- package/dist/utils/gas.d.cts.map +1 -1
- package/dist/utils/gas.d.mts +2 -1
- package/dist/utils/gas.d.mts.map +1 -1
- package/dist/utils/gas.mjs +12 -5
- package/dist/utils/gas.mjs.map +1 -1
- package/dist/utils/revert-reason.cjs +192 -0
- package/dist/utils/revert-reason.cjs.map +1 -0
- package/dist/utils/revert-reason.d.cts +57 -0
- package/dist/utils/revert-reason.d.cts.map +1 -0
- package/dist/utils/revert-reason.d.mts +57 -0
- package/dist/utils/revert-reason.d.mts.map +1 -0
- package/dist/utils/revert-reason.mjs +186 -0
- package/dist/utils/revert-reason.mjs.map +1 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,8 +7,15 @@ 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
|
+
- Export `decodeAuthorizationSignature` utility that decodes a 65-byte EIP-7702 authorization signature into RLP-canonical `r`, `s`, and `yParity` ([#8656](https://github.com/MetaMask/core/pull/8656))
|
|
13
|
+
- All `eth_sendRawTransaction` failures are prefixed `RPC submit:` for failure-surface attribution in error metrics
|
|
14
|
+
- Add `revert?: RevertData` field to `TransactionMeta` exposing decoded revert reason and raw data from gas estimation, simulation, and receipt replay ([#8589](https://github.com/MetaMask/core/pull/8589))
|
|
15
|
+
|
|
10
16
|
### Changed
|
|
11
17
|
|
|
18
|
+
- Bump `@metamask/accounts-controller` from `^37.2.0` to `^38.0.0` ([#8665](https://github.com/MetaMask/core/pull/8665))
|
|
12
19
|
- Bump `@metamask/messenger` from `^1.1.1` to `^1.2.0` ([#8632](https://github.com/MetaMask/core/pull/8632))
|
|
13
20
|
- Bump `@metamask/network-controller` from `^30.0.1` to `^30.1.0` ([#8636](https://github.com/MetaMask/core/pull/8636))
|
|
14
21
|
|
|
@@ -1338,6 +1338,13 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1338
1338
|
transactionMeta.txParams.gas = draftTransaction.txParams.gas;
|
|
1339
1339
|
transactionMeta.simulationFails = draftTransaction.simulationFails;
|
|
1340
1340
|
transactionMeta.gasLimitNoBuffer = draftTransaction.gasLimitNoBuffer;
|
|
1341
|
+
const draftGasRevert = draftTransaction.revert?.gas;
|
|
1342
|
+
if (draftGasRevert) {
|
|
1343
|
+
transactionMeta.revert = {
|
|
1344
|
+
...transactionMeta.revert,
|
|
1345
|
+
gas: draftGasRevert,
|
|
1346
|
+
};
|
|
1347
|
+
}
|
|
1341
1348
|
});
|
|
1342
1349
|
return updatedTransactionMeta.txParams.data;
|
|
1343
1350
|
}
|
|
@@ -1813,7 +1820,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1813
1820
|
catch (error) {
|
|
1814
1821
|
const errorObject = error;
|
|
1815
1822
|
const errorMessage = errorObject?.data?.message ?? errorObject?.message ?? String(error);
|
|
1816
|
-
throw new Error(errorMessage);
|
|
1823
|
+
throw new Error(`RPC submit: ${errorMessage}`);
|
|
1817
1824
|
}
|
|
1818
1825
|
}, _TransactionController_rejectTransaction = function _TransactionController_rejectTransaction(transactionId, actionId, error) {
|
|
1819
1826
|
const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
@@ -2269,6 +2276,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2269
2276
|
let gasUsed;
|
|
2270
2277
|
let gasFeeTokens = [];
|
|
2271
2278
|
let isGasFeeSponsored = false;
|
|
2279
|
+
let simulationRevert;
|
|
2272
2280
|
const isBalanceChangesSkipped = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isBalanceChangesSkipped).call(this, transactionMeta);
|
|
2273
2281
|
if (__classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this) && !isBalanceChangesSkipped) {
|
|
2274
2282
|
const balanceChangesResult = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Simulate', parentContext: traceContext }, () => (0, balance_changes_1.getBalanceChanges)({
|
|
@@ -2287,6 +2295,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2287
2295
|
}));
|
|
2288
2296
|
simulationData = balanceChangesResult.simulationData;
|
|
2289
2297
|
gasUsed = balanceChangesResult.gasUsed;
|
|
2298
|
+
simulationRevert = balanceChangesResult.simulationRevert;
|
|
2290
2299
|
if (blockTime &&
|
|
2291
2300
|
prevSimulationData &&
|
|
2292
2301
|
(0, ResimulateHelper_1.hasSimulationDataChanged)(prevSimulationData, simulationData)) {
|
|
@@ -2314,6 +2323,12 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2314
2323
|
txMeta.gasUsed = gasUsed;
|
|
2315
2324
|
if (!__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isBalanceChangesSkipped).call(this, txMeta)) {
|
|
2316
2325
|
txMeta.simulationData = simulationData;
|
|
2326
|
+
if (simulationRevert) {
|
|
2327
|
+
txMeta.revert = {
|
|
2328
|
+
...txMeta.revert,
|
|
2329
|
+
simulation: simulationRevert,
|
|
2330
|
+
};
|
|
2331
|
+
}
|
|
2317
2332
|
}
|
|
2318
2333
|
});
|
|
2319
2334
|
(0, logger_1.projectLogger)('Updated simulation data', transactionId, updatedTransactionMeta);
|
|
@@ -2409,6 +2424,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2409
2424
|
throw error;
|
|
2410
2425
|
}, _TransactionController_failTransaction = function _TransactionController_failTransaction(transactionMeta, error, actionId) {
|
|
2411
2426
|
let newTransactionMeta;
|
|
2427
|
+
const { revert: receiptRevert } = error;
|
|
2412
2428
|
try {
|
|
2413
2429
|
newTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2414
2430
|
transactionId: transactionMeta.id,
|
|
@@ -2416,6 +2432,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2416
2432
|
}, (draftTransactionMeta) => {
|
|
2417
2433
|
draftTransactionMeta.status = types_1.TransactionStatus.failed;
|
|
2418
2434
|
draftTransactionMeta.error = (0, utils_2.normalizeTxError)(error);
|
|
2435
|
+
if (receiptRevert === undefined) {
|
|
2436
|
+
return;
|
|
2437
|
+
}
|
|
2438
|
+
draftTransactionMeta.revert = {
|
|
2439
|
+
...draftTransactionMeta.revert,
|
|
2440
|
+
receipt: receiptRevert,
|
|
2441
|
+
};
|
|
2419
2442
|
});
|
|
2420
2443
|
}
|
|
2421
2444
|
catch (caughtError) {
|
|
@@ -2424,6 +2447,14 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2424
2447
|
...transactionMeta,
|
|
2425
2448
|
status: types_1.TransactionStatus.failed,
|
|
2426
2449
|
error: (0, utils_2.normalizeTxError)(error),
|
|
2450
|
+
...(receiptRevert === undefined
|
|
2451
|
+
? {}
|
|
2452
|
+
: {
|
|
2453
|
+
revert: {
|
|
2454
|
+
...transactionMeta.revert,
|
|
2455
|
+
receipt: receiptRevert,
|
|
2456
|
+
},
|
|
2457
|
+
}),
|
|
2427
2458
|
};
|
|
2428
2459
|
}
|
|
2429
2460
|
this.messenger.publish(`${controllerName}:transactionFailed`, {
|