@tokamak-private-dapps/private-state-cli 2.3.3 → 2.3.4

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 CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 2.3.4 - 2026-05-29
6
+
7
+ - Removed the implicit wallet proof context recovery path so proof-backed wallet commands require
8
+ their channel context to be prepared before proof generation.
9
+ - Added a post-proof, pre-submit channel root check for proof-backed channel state updates so stale
10
+ proofs are rejected before submitting transactions whenever the root changed during proof generation.
11
+
5
12
  ## 2.3.3 - 2026-05-27
6
13
 
7
14
  - Changed `help observer` and monitoring references to use the public observer URL
package/lib/runtime.mjs CHANGED
@@ -4909,6 +4909,7 @@ async function handleGrothVaultMove({ args, provider, direction }) {
4909
4909
  });
4910
4910
 
4911
4911
  const methodName = direction === "deposit" ? "depositToChannelVault" : "withdrawFromChannelVault";
4912
+ await assertWorkspaceAlignedWithChain(context);
4912
4913
  emitProgress(operationName, "submitting");
4913
4914
  const receipt = await waitForReceipt(
4914
4915
  await bridgeTokenVault[methodName](ethers.toBigInt(context.workspace.channelId), transition.proof, transition.update),
@@ -7639,7 +7640,7 @@ async function executeWalletDirectTemplateCommand({
7639
7640
  provider,
7640
7641
  operationName,
7641
7642
  templatePayload,
7642
- preparedContextResult = null,
7643
+ preparedContextResult,
7643
7644
  }) {
7644
7645
  emitProgress(operationName, "loading");
7645
7646
  const { signer, l2Identity } = restoreWalletParticipant(wallet, provider);
@@ -7653,11 +7654,8 @@ async function executeWalletDirectTemplateCommand({
7653
7654
  ownerSigner: signer,
7654
7655
  provider,
7655
7656
  });
7656
- const contextResult = preparedContextResult ?? await loadFreshWalletChannelContext({
7657
- walletContext: wallet,
7658
- provider,
7659
- progressAction: operationName,
7660
- });
7657
+ expect(preparedContextResult?.context, "Internal error: prepared channel context is required before proof generation.");
7658
+ const contextResult = preparedContextResult;
7661
7659
  const execution = await executeWalletTemplateSend({
7662
7660
  wallet,
7663
7661
  signer,
@@ -7755,6 +7753,7 @@ async function executeWalletTemplateSend({
7755
7753
  "Generated Tokamak proof does not match the channel aPubBlockHash. Check the workspace block_info.json context.",
7756
7754
  );
7757
7755
 
7756
+ await assertWorkspaceAlignedWithChain(context);
7758
7757
  emitProgress(operationName, "submitting");
7759
7758
  const receipt =
7760
7759
  await waitForReceipt(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tokamak-private-dapps/private-state-cli",
3
- "version": "2.3.3",
3
+ "version": "2.3.4",
4
4
  "description": "Command-line client for the Tokamak private-state DApp.",
5
5
  "license": "MIT OR Apache-2.0",
6
6
  "author": "Tokamak Network",