wallet_testのtips
色々試してみてわかったことのメモを雑多に残しておく。
reserveKey(coinbaseとして自動でされるkeyとか)を設定したい場合は、<CWallet>("mock", WalletDatabase::CreateMock());のように、CreateMock()でdbを作る。
bool firstRun; wallet->LoadWallet(firstRun); して、dbを初期化する。これをしないと、std::runtime_error: BerkeleyBatch: Error 2, can't open database wallet.datが発生する。
AddKey(*wallet, coinbaseKey);で任意の鍵を追加する。一番最初に追加した鍵が多分reserveKeyになるはず。
walletのメンバメソッドを触らずに外部からwalletに間接的にアクセスするようなtestを描く場合は、生成したwalletのpointerをAddWallet(wallet);をつかって登録しておく必要がある。
wallet.AddKeyした後は、testの最後にRemoveWallet(wallet);でお片づけが必要。これを忘れるとsegmentation faultが起きる。