BDK を wasm 向けにビルドする
↓↓↓本稿は BDK のバージョンアップで過去のものとなった。歴史的資料(?)として残しておく↓↓↓
Counterwallet のような web ブラウザウォレットを Rust で書きたい稀有な人向けの、小ネタ。
答えを先に示す。
# Cargo.toml
[dependencies]
bdk = { version = "0.27.1", default-features = false, features = ["async-interface", "key-value-db", "all-keys"] }
蛇足ながら、自分への忘備録として、雑な解説を付けておく。
default feature に "electrum" という feature が含まれている。バックエンドに Electrum server が存在することを仮定しており、Electrum とは UDP/IP で通信する。その箇所でビルドが通らない。よって default-features = false が必要。
async-interface は、bitcoin crate のコードに #[maybe_async] が存在し、async-trait 関連のビルドエラーが引き起こされるため必要。
key-value-db は不要かもしれないが、ビルドは通るため追加しておいた。
all-keys で bip39 関連の操作が可能となる。mnemonic から xkey や xpub を取得する際に便利。
他の feature も追加可能かもしれないが、上記設定でもウォレットを作る際の最小限度は満たされるかなと。