Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
294 changes: 0 additions & 294 deletions package-lock.json

Large diffs are not rendered by default.

234 changes: 0 additions & 234 deletions packages/wasm-dot/js/explain.ts

This file was deleted.

4 changes: 1 addition & 3 deletions packages/wasm-dot/js/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
* wasm-dot: WASM bindings for Polkadot/DOT transaction operations
*
* This module provides:
* - Transaction parsing: parseTransaction(bytes, context) → ParsedTransaction
* - Transaction explanation: explainTransaction(bytes, options) → ExplainedTransaction
* - Transaction parsing: parseTransaction(tx, context) → ParsedTransaction
* - Transaction building: buildTransaction(intent, context) → DotTransaction
* - Transaction signing: DotTransaction.fromBytes(bytes) → inspect + sign
*/
Expand Down Expand Up @@ -32,4 +31,3 @@ export * from "./types";
export * from "./transaction";
export * from "./parser";
export * from "./builder";
export * from "./explain";
38 changes: 11 additions & 27 deletions packages/wasm-dot/js/parser.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* Transaction parsing — standalone function that decodes extrinsic bytes
* Transaction parsing — standalone function that decodes a DotTransaction
* into structured data (pallet, method, args, nonce, etc.).
*
* This is separate from the DotTransaction class, which handles signing.
Expand All @@ -8,51 +8,35 @@
*/

import { ParserNamespace, MaterialJs, ParseContextJs } from "./wasm/wasm_dot";
import { DotTransaction } from "./transaction";
import type { DotTransaction } from "./transaction";
import type { ParseContext, ParsedTransaction } from "./types";

/**
* Input type for parsing — accepts raw bytes, hex string, or DotTransaction.
*/
export type TransactionInput = Uint8Array | string | DotTransaction;

/**
* Parse a DOT transaction into structured data.
*
* Accepts a `DotTransaction` object (from `DotTransaction.fromBytes()`),
* avoiding double deserialization.
*
* Returns a plain `ParsedTransaction` object with decoded pallet, method,
* args, nonce, tip, era, etc.
*
* For a signable `DotTransaction` object, use `DotTransaction.fromBytes()` instead.
*
* @param input - Raw bytes, hex string (with or without 0x), or DotTransaction
* @param tx - A DotTransaction instance (from DotTransaction.fromBytes())
* @param context - Parsing context with chain material (required for decoding)
* @returns Parsed transaction data
*
* @example
* ```typescript
* import { parseTransaction } from '@bitgo/wasm-dot';
* import { DotTransaction, parseTransaction } from '@bitgo/wasm-dot';
*
* const parsed = parseTransaction(txBytes, { material });
* const tx = DotTransaction.fromBytes(txBytes, context);
* const parsed = parseTransaction(tx, { material });
* console.log(parsed.method.pallet); // "balances"
* console.log(parsed.method.name); // "transferKeepAlive"
* ```
*/
export function parseTransaction(
input: TransactionInput,
context?: ParseContext,
): ParsedTransaction {
export function parseTransaction(tx: DotTransaction, context?: ParseContext): ParsedTransaction {
const ctx = context ? createParseContext(context) : undefined;

if (input instanceof DotTransaction) {
return ParserNamespace.parseTransaction(input.toBytes(), ctx) as ParsedTransaction;
}

if (input instanceof Uint8Array) {
return ParserNamespace.parseTransaction(input, ctx) as ParsedTransaction;
}

// String input — let WASM handle hex parsing
return ParserNamespace.parseTransactionHex(input, ctx) as ParsedTransaction;
return ParserNamespace.parseFromTransaction(tx.wasm, ctx) as ParsedTransaction;
}

/**
Expand Down
Loading