Skip to content

feat(tx-manifest): add smplx transaction engine - #12

Merged
Arvolear merged 1 commit into
devfrom
feature/tx-manifest-engine
Sep 14, 2026
Merged

Arvolear merged 1 commit into
devfrom
feature/tx-manifest-engine

Conversation

@lukachi

@lukachi lukachi commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Stack

PR 3 of 9 in the manifest release train. This is stacked on #11; review only the delta from feature/tx-manifest-review.

What this slice delivers

  • turns the canonical explicit p2pk Pay action into a deterministic transaction plan
  • selects wallet inputs deterministically and preserves exact bigint amounts
  • pins the smplx submodule at 8f0215c and integrates its real SDK 0.0.10 WASM package
  • adds the real smplx covenant compiler/loader and transaction-builder adapter
  • assembles the reviewed inputs, outputs, fee rate, and caller-supplied change script
  • leaves finalization behind an injected, caller-owned finalizer seam
  • wires smplx into extension, deploy, Storybook, formatting, lint, and focused CI paths

Deliberate boundaries

This slice does not own wallet credentials, mnemonic access, signing, confidential outputs, covenant-spend inputs, broadcasting, or UI activation. Receive remains an explicit refusal when it reaches the unsupported covenant-input amount reference. Those capabilities arrive in later stacked PRs.

Verification

Verified from a clean detached worktree at this commit with LWK 693c4fb, smplx 8f0215c, and the generated smplx SDK 0.0.10 package:

  • frozen install passed
  • package TypeScript check passed
  • strict TypeScript check for every smplx adapter and test passed
  • focused tx-manifest and real-WASM suite: 96 passed, 0 failed
  • repository formatting passed
  • repository lint exited zero with only the existing warnings

The repository-wide root app typecheck is not used as this slice's gate: a clean frozen install currently exposes pre-existing duplicate React/Zod type-family failures in unrelated UI code. The focused workflow checks the entire surface owned here, and restoring the cumulative full-repository gate is tracked for the final activation/release slice.

Base automatically changed from feature/tx-manifest-review to dev September 13, 2026 17:23
const covenant = new smplx.Covenant(source, argumentsJson);

try {
return {

@Arvolear Arvolear Sep 13, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll have to add support for state upon compilation here + return a CMR + tapleafhash.

}

/** Confirmation target for the fee estimate, in blocks. */
const FEE_TARGET_BLOCKS = 6;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nah, instant.

Comment thread .gitmodules
Comment on lines +6 to +8
path = smplx
url = https://github.com/lukachi/smplx.git
branch = dev

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change to upstream?

@Arvolear Arvolear left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will move these comments to dev.

@Arvolear
Arvolear merged commit 173d7b5 into dev Sep 14, 2026
2 checks passed
@Arvolear
Arvolear deleted the feature/tx-manifest-engine branch September 14, 2026 10:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants