rust: bdk_walletの使い方 (1)
2025/10/21
BDK を使ってトランザクションを作るところまでできたので、整理を兼ねて使い方をまとめよう。
そのうち Bitcoin調査のページにまとめたいものだ。
サンプルコード
作ったのはこちら。
使用する BDK
bdk_wallet
v2.2.0
bdk_bitcoind_rpc
v0.22.0
Cargo.toml はこうなっている。
[dependencies]
bdk_wallet = { version = "2.2.0", features = ["rusqlite"] }
bdk_bitcoind_rpc = "0.22.0"
hex = "0.4.3"
anyhow = "1.0.100"
serde = { version = "1.0.228", features = ["derive"] }
clap = { version = "4.3.10", features = ["derive"] }
toml = "0.9.8"
wallet作成
今回は P2TR の単独鍵ウォレットを作っている。
対象のネットワークは Bitcoin regtest としている。
最初に書かないといけないことだが、このウォレット実装は非常に雑である。
特に秘密鍵に当たるデータをそのままテキストファイルに保存しているのはよろしくない。
構造体
Connection
を持っているのは wallet.persist()
のためである。
pub struct MyWallet {
pub wallet: PersistedWallet<Connection>,
conn: Connection,
}
writer: hiro99ma