Skip to content

feat: parse convention for wasm-solana#186

Closed
lcovar wants to merge 2 commits intomasterfrom
BTC-0.sol-parse-refactor
Closed

feat: parse convention for wasm-solana#186
lcovar wants to merge 2 commits intomasterfrom
BTC-0.sol-parse-refactor

Conversation

@lcovar
Copy link
Contributor

@lcovar lcovar commented Feb 27, 2026

Summary

  • Remove explainTransaction from wasm-solana — explain logic belongs in BitGoJS per convention (PR docs: add BitGoWasm API design conventions #176)
  • Change parseTransaction to accept a Transaction object instead of raw bytes
  • Add parse_from_transaction Rust entry point with shared parse_transaction_inner logic
  • Delete explain.ts and all explain-related exports
  • Update tests and webui to use new API
  • Fix pre-existing clippy warnings in intent/build.rs

The wasm package now only provides:

  • Transaction.fromBytes(bytes) for deserialization/signing
  • parseTransaction(tx) for decoded instruction data
  • Builder functions for transaction construction

Test plan

  • 94 wasm-solana tests passing
  • 545 sdk-coin-sol tests passing (BitGoJS side)
  • webui builds cleanly

Ticket: BTC-3091

Remove `explainTransaction` from wasm-solana per the convention that
explain logic belongs in BitGoJS, not in wasm packages (PR #176).

- Delete `explain.ts` — type derivation, output/input extraction, fee
  calculation all move to BitGoJS sdk-coin-sol
- Change `parseTransaction` to accept a `Transaction` object instead
  of raw bytes, avoiding double deserialization when the caller already
  has a Transaction from `fromBytes()`
- Add `parse_from_transaction` Rust entry point that accepts a
  pre-deserialized Transaction, with shared logic in `parse_transaction_inner`
- Remove all explain-related exports from index.ts
  (ExplainedTransaction, TransactionType, StakingAuthorizeInfo, etc.)
- Fix pre-existing clippy warnings in intent/build.rs

The wasm package now only provides:
- `Transaction.fromBytes(bytes)` for deserialization/signing
- `parseTransaction(tx)` for decoded instruction data
- Builder functions for transaction construction

Ticket: BTC-3091
Trigger version bump for the parse convention refactor that was
merged with a refactor: prefix and did not publish.

Ticket: BTC-3091
@lcovar lcovar requested a review from a team as a code owner February 27, 2026 18:17
@lcovar lcovar closed this Feb 27, 2026
@lcovar lcovar deleted the BTC-0.sol-parse-refactor branch February 27, 2026 18:20
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.

1 participant