From 45d0945d19a17c141f1a9e9612f3269b95a1e52f Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Mon, 3 Nov 2014 14:06:25 -0800 Subject: [PATCH] add own addresses properly. --- src/bitcoindjs.cc | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/bitcoindjs.cc b/src/bitcoindjs.cc index 7647c39a..fc532423 100644 --- a/src/bitcoindjs.cc +++ b/src/bitcoindjs.cc @@ -4612,6 +4612,10 @@ NAN_METHOD(WalletChangeLabel) { if (!IsMine(*pwalletMain, address)) { pwalletMain->SetAddressBook(address, accountName, "send"); + // ~/bitcoin/src/qt/walletmodel.cpp + // ~/bitcoin/src/qt/addresstablemodel.cpp + // ~/bitcoin/src/rpcwallet.cpp + //walletdb.WriteName(addr, accountName); //walletdb.WritePurpose(addr, std::string("send")); @@ -4629,11 +4633,25 @@ NAN_METHOD(WalletChangeLabel) { // walletdb.WriteName(address.ToString(), accountName); // walletdb.WritePurpose(address.ToString(), std::string("receive")); - //CKeyID keyID; - //address.GetKeyID(keyID); - //pwalletMain->SetAddressBook(keyID, accountName, "receive"); + // CKeyID keyID; + // address.GetKeyID(keyID); + // pwalletMain->SetAddressBook(keyID, accountName, "receive"); - pwalletMain->SetAddressBook(address.Get(), accountName, "receive"); + // Generate a new key that is added to wallet + CPubKey newKey; + if (!pwalletMain->GetKeyFromPool(newKey)) { + if (pwalletMain->IsLocked()) { + return NanThrowError("Please enter the wallet passphrase with walletpassphrase first."); + } + pwalletMain->TopUpKeyPool(100); + if (pwalletMain->GetKeyPoolSize() < 100) { + return NanThrowError("Error refreshing keypool."); + } + } + CKeyID keyID = newKey.GetID(); + pwalletMain->SetAddressBook(keyID, accountName, "receive"); + + // pwalletMain->SetAddressBook(address.Get(), accountName, "receive"); } }