Skip to content

feat: add Nostr application#1

Open
ethicnology wants to merge 1 commit into
mainfrom
feat/nostr-bip85
Open

feat: add Nostr application#1
ethicnology wants to merge 1 commit into
mainfrom
feat/nostr-bip85

Conversation

@ethicnology
Copy link
Copy Markdown
Owner

@codecov-commenter
Copy link
Copy Markdown

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

Thanks for integrating Codecov - We've got you covered ☂️

Implements the Nostr application from BIP85 v2.1.0:
- `Bip85Entropy.deriveNostr({xprvBase58, identity, accountIndex})` derives
  `m/83696968'/9000'/{identity}'/{accountIndex}'` and returns the 32-byte
  key as a NIP19 Bech32 `nsec` string
- `Bip85Entropy.nsecEncode(Uint8List)` is exposed for callers that already
  hold a raw 32-byte secret key
- `NostrApplication` (number 9000) is registered and routed through
  `deriveFromRawPath` and `deriveFromHardenedPath`

Bech32 (not Bech32m) per NIP19. A minimal encode-only Bech32 routine is
included to keep the package self-contained (the published `bech32` Dart
package caps SDK at <3.0.0, incompatible with this package's ^3.7.0).

Tests cover the three BIP85 spec vectors, path-routing (full path,
partial path, hardened path), application-registry resolution,
`nsecEncode` validation, boundary inputs (reserved zero, max hardened
0x7FFFFFFF) and `nsec` output format (length 63, `nsec1` prefix).

Bumps to 1.1.0; CHANGELOG, README and example updated.
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