• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

KarpelesLab / libwallet / 24418628689
25%

Build:
DEFAULT BRANCH: master
Ran 14 Apr 2026 07:35PM UTC
Jobs 1
Files 72
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

14 Apr 2026 07:26PM UTC coverage: 25.022% (+0.2%) from 24.777%
24418628689

push

github

MagicalTux
mpurse_signMessage: Bitcoin-family message signing via TSS

Full wiring of mpurse_signMessage for Monacoin (and any configured
bitcoin-family chain):

- New `Account.SignBitcoinMessage(prefix, message, opts)` and
  `Account.SignCompact(hash, headerOffset, opts)` helpers in
  wltacct/btc_sign.go. They run the Go TSS signer, parse the DER
  output, brute-force the recovery ID against the known pubkey, and
  emit Bitcoin Core's 65-byte compact signature (header=v+31 for
  compressed-pubkey P2PKH/P2WPKH + R + S).

- `BitcoinMessagePrefix(chainId)` returns the per-chain magic bytes
  including the length byte: \x18Bitcoin... / \x19Monacoin... /
  \x19Litecoin... / \x19Dogecoin... / \x18Bitcoin... (BCH uses
  Bitcoin's prefix by convention).

- Web3:request routes mpurse_signMessage through a new
  "mpurse_sign_message" request type (stored with account ID so the
  approve handler can find the account across network switches;
  bitcoin-family addresses reformat per current network).

- Approval handler signs with SignBitcoinMessage, returns the
  signature as a base64 string.

- Monacoin address derivation (bech32 mona1...) added to
  bitcoinAddress — previously default'd to an error.

Dart:
- New `MpurseSignMessageRequest` subtype in the sealed PendingRequest
  hierarchy. Exposes `message` text and `signature` (base64) getters.
- `RequestApi.approve` now accepts `keys:` for signing approvals.

Tests:
- Go unit tests cover the prefix table, varint, and a full sign +
  RecoverCompact round trip against a known pubkey (no TSS needed).
- Dart integration test creates a Monacoin network, bitcoin-family
  account, connects, fires mpurse_signMessage, and verifies the
  payload reaches MpurseSignMessageRequest correctly.

mpurse_signRawTransaction / sendRawTransaction / sendAsset still
return "not implemented" — TX parsing / UTXO mapping is a separate
milestone.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

28 of 125 new or added lines in 4 files covered. (22.4%)

1 existing line in 1 file now uncovered.

1962 of 7841 relevant lines covered (25.02%)

3.18 hits per line

Uncovered Changes

Lines Coverage ∆ File
31
3.01
-0.25% wltbase/request.go
30
48.28
wltacct/btc_sign.go
30
0.76
-0.04% wltbase/web3.go
6
0.0
0.0% wltacct/btc_address.go

Coverage Regressions

Lines Coverage ∆ File
1
0.76
-0.04% wltbase/web3.go
Jobs
ID Job ID Ran Files Coverage
1 24418628689.1 14 Apr 2026 07:35PM UTC 72
25.02
GitHub Action Run
Source Files on build 24418628689
  • Tree
  • List 72
  • Changed 6
  • Source Changed 3
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24418628689
  • cf103317 on github
  • Prev Build on master (#24416744321)
  • Next Build on master (#24419426170)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc