Activity Overview

Commits and releases over time

  • Commits
  • Releases
  • Authors

Repository Explorer

6 commits in all time Aug 14, 2026 00:22 – Nov 12, 2026 00:22 UTC
acfunk xHD-Wallet-API-ts
Merge 24e1ce11486d8c40841f1a145f80fb8dfe6bd181 into 6256402b3196fc0e344d8aee1baa77a7b5adb529
Git Commit 6426cdff Branch pull/36/merge Document 18/6,316 ++ 6,164 --
acfunk xHD-Wallet-API-ts
fix: simplify signing policy, fix public derivation and README vectors, switch to pnpm
Signing:
- signData no longer takes a metadata argument. The encoding/JSON-schema
  validation and the Algorand tag-prefix check were removed; it signs exactly
  the bytes given. SignMetadata, Encoding, ERROR_BAD_DATA and
  ERROR_TAGS_FOUND are no longer exported, and ajv/algo-msgpack-with-bigint
  are no longer runtime dependencies. Callers signing untrusted data must
  domain-separate it (e.g. as ARC-60 does).
- signAlgoTransaction rejects input not prefixed with "TX" by throwing
  TxTagMissingError, catching an encoded transaction passed in place of its
  bytes to sign.

Fixes:
- deriveChildNodePublic rejects harden(0) (previously returned a wrong key).
- Import bip32-ed25519 with its .js extension instead of a ts-expect-error.
- README test vectors regenerated; the previous ones did not match the
  library's output. A test now checks the README vectors.
- Await rejected-promise assertions in tests so failures are reported.
- build/test clean dist first so stale spec files are never packed.

Packaging and tooling:
- Only the package root is importable (package.json "exports").
- Test-only libsodium helpers (kx, secretbox, keypair, sk_to_curve25519,
  to_base64) move from sumo.facade.ts to src/test-utils, outside the
  published build; @noble/ciphers becomes a dev dependency.
- Switch from yarn to pnpm; update CI to Node 22/24 and current actions;
  bump dev dependencies (TypeScript 6, Jest 30, semantic-release 25).
Git Commit 24e1ce11 Branch pull/36/head Document 18/6,316 ++ 6,164 --
acfunk xHD-Wallet-API-ts
Merge e7ec86148c24cef5f9ef1e2c9a6482728e1d58c5 into 6256402b3196fc0e344d8aee1baa77a7b5adb529
Git Commit 5e37cf1f Branch pull/35/merge Document 22/6,781 ++ 6,303 --
feat: bind crypto to WebCrypto and drop Node and runtime-library dependencies
Use the platform's WebCrypto (crypto.subtle) for SHA-512, SHA-256, HMAC,
X25519 and Ed25519 verification. Keep @noble only for what WebCrypto lacks:
unclamped Ed25519 point arithmetic for BIP32-Ed25519, Ed25519 -> X25519 key
conversion (@noble/curves), and BLAKE2b (@noble/hashes). Replace Buffer and
bn.js with plain Uint8Array/bigint helpers so the published build has no
Node globals. Runtime dependencies drop from six to two.

Key derivation, signatures and ECDH outputs are byte-identical to the
previous implementation. verifyWithPublicKey keeps libsodium's strict rules
(canonical S, R and public key; small-order points rejected) regardless of
the platform's WebCrypto edge-case behaviour.

API changes since 2.0.0-canary.1:
- fromSeed is async and accepts any Uint8Array.
- signData no longer takes a metadata argument. Encoding/JSON-schema
  validation and the Algorand tag-prefix check were removed; it signs
  exactly the bytes given. SignMetadata, Encoding, ERROR_BAD_DATA and
  ERROR_TAGS_FOUND are no longer exported. Callers signing untrusted data
  must domain-separate it (e.g. as ARC-60 does).
- signAlgoTransaction rejects input not prefixed with "TX" by throwing
  TxTagMissingError, catching an encoded transaction passed in place of its
  bytes to sign.
- deriveChildNodePublic rejects harden(0) (previously returned a wrong key).
- Only the package root is importable (package.json "exports").
- Requires Node.js >= 22, a browser with WebCrypto Ed25519/X25519, or a
  WebCrypto polyfill on React Native.

Also:
- README test vectors regenerated; the previous ones did not match the
  library's output. A test now checks the README vectors.
- Switch from yarn to pnpm; update CI to Node 22/24 and current actions.
- build/test clean dist first so stale spec files are never packed.
Git Commit e7ec8614 Branch pull/35/head Document 22/6,781 ++ 6,303 --
Merge 1d34b75b7387bf2326a196aa11fdfdd83399711f into 6256402b3196fc0e344d8aee1baa77a7b5adb529
Git Commit 7d0a22c3 Branch pull/34/merge Document 1/31 ++ 38 --
docs: align README BIP32-Ed25519 vectors with Peikert keyGen output
Closes algorandfoundation/xHD-Wallet-API-ts#33
Git Commit 1d34b75b Branch pull/34/head Document 1/31 ++ 38 --