From 73bc0083b8ffcb09e3466bd12da795886e87490a Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Tue, 28 Oct 2014 16:40:37 -0700 Subject: [PATCH] refactor dumpprivkey. --- lib/bitcoind.js | 12 +++--- src/bitcoindjs.cc | 96 +++++++++++++++++++++++------------------------ 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/lib/bitcoind.js b/lib/bitcoind.js index 34a096b5..4cd56d51 100644 --- a/lib/bitcoind.js +++ b/lib/bitcoind.js @@ -751,8 +751,12 @@ Wallet.prototype.isEncrypted = function() { return bitcoindjs.walletEncrypted(); }; -Wallet.prototype.dumpPrivKey = function(options) { - return bitcoindjs.dumpPrivKey(options || {}); +Wallet.prototype.dumpKey = function(options) { + return bitcoindjs.dumpKey(options || {}); +}; + +Wallet.prototype.importKey = function(options) { + return bitcoindjs.walletImportKey(options || {}); }; Wallet.prototype.keyPoolRefill = function(options) { @@ -763,10 +767,6 @@ Wallet.prototype.setTxFee = function(options) { return bitcoindjs.walletSetTxFee(options || {}); }; -Wallet.prototype.importKey = function(options) { - return bitcoindjs.walletImportKey(options || {}); -}; - Wallet.prototype.dump = function(options, callback) { return bitcoindjs.walletDumpWallet(options || {}, callback); }; diff --git a/src/bitcoindjs.cc b/src/bitcoindjs.cc index 0de10aba..421df936 100644 --- a/src/bitcoindjs.cc +++ b/src/bitcoindjs.cc @@ -199,9 +199,9 @@ NAN_METHOD(WalletPassphraseChange); NAN_METHOD(WalletLock); NAN_METHOD(WalletEncrypt); NAN_METHOD(WalletEncrypted); -NAN_METHOD(WalletDumpPrivKey); NAN_METHOD(WalletKeyPoolRefill); NAN_METHOD(WalletSetTxFee); +NAN_METHOD(WalletDumpKey); NAN_METHOD(WalletImportKey); NAN_METHOD(WalletDumpWallet); NAN_METHOD(WalletImportWallet); @@ -3754,52 +3754,6 @@ NAN_METHOD(WalletEncrypted) { NanReturnValue(NanNew(isEncrypted)); } -/** - * WalletDumpPrivKey() - * bitcoindjs.walletDumpPrivKey(options) - * Dump private key - */ - -NAN_METHOD(WalletDumpPrivKey) { - NanScope(); - - if (args.Length() < 1 || !args[0]->IsObject()) { - return NanThrowError( - "Usage: bitcoindjs.walletDumpPrivKey(options)"); - } - - Local options = Local::Cast(args[0]); - String::Utf8Value addr_(options->Get(NanNew("address"))->ToString()); - std::string addr = std::string(*addr_); - - CBitcoinAddress address(addr); - - Local obj = NanNew(); - obj->Set(NanNew("address"), NanNew(address.ToString())); - - CKeyID keyID; - if (!address.GetKeyID(keyID)) { - return NanThrowError("Address does not refer to a key"); - } - CKey vchSecret; - if (!pwalletMain->GetKey(keyID, vchSecret)) { - return NanThrowError("Private key for address is not known"); - } - - if (!pwalletMain->IsCrypted()) { - std::string priv = CBitcoinSecret(vchSecret).ToString(); - obj->Set(NanNew("privkeycompressed"), NanNew(vchSecret.IsCompressed())); - obj->Set(NanNew("privkey"), NanNew(priv)); - } - - CPubKey vchPubKey; - pwalletMain->GetPubKey(keyID, vchPubKey); - obj->Set(NanNew("pubkeycompressed"), NanNew(vchPubKey.IsCompressed())); - obj->Set(NanNew("pubkey"), NanNew(HexStr(vchPubKey))); - - NanReturnValue(obj); -} - /** * WalletKeyPoolRefill() * bitcoindjs.walletKeyPoolRefill(options) @@ -3865,6 +3819,52 @@ NAN_METHOD(WalletSetTxFee) { NanReturnValue(True()); } +/** + * WalletDumpKey() + * bitcoindjs.walletDumpKey(options) + * Dump private key + */ + +NAN_METHOD(WalletDumpKey) { + NanScope(); + + if (args.Length() < 1 || !args[0]->IsObject()) { + return NanThrowError( + "Usage: bitcoindjs.walletDumpKey(options)"); + } + + Local options = Local::Cast(args[0]); + String::Utf8Value addr_(options->Get(NanNew("address"))->ToString()); + std::string addr = std::string(*addr_); + + CBitcoinAddress address(addr); + + Local obj = NanNew(); + obj->Set(NanNew("address"), NanNew(address.ToString())); + + CKeyID keyID; + if (!address.GetKeyID(keyID)) { + return NanThrowError("Address does not refer to a key"); + } + CKey vchSecret; + if (!pwalletMain->GetKey(keyID, vchSecret)) { + return NanThrowError("Private key for address is not known"); + } + + if (!pwalletMain->IsCrypted()) { + std::string priv = CBitcoinSecret(vchSecret).ToString(); + obj->Set(NanNew("privkeycompressed"), NanNew(vchSecret.IsCompressed())); + obj->Set(NanNew("privkey"), NanNew(priv)); + } + + CPubKey vchPubKey; + pwalletMain->GetPubKey(keyID, vchPubKey); + obj->Set(NanNew("pubkeycompressed"), NanNew(vchPubKey.IsCompressed())); + obj->Set(NanNew("pubkey"), NanNew(HexStr(vchPubKey))); + + NanReturnValue(obj); +} + /** * WalletImportKey() * bitcoindjs.walletImportKey(options) @@ -4820,7 +4820,7 @@ init(Handle target) { NODE_SET_METHOD(target, "walletLock", WalletLock); NODE_SET_METHOD(target, "walletEncrypt", WalletEncrypt); NODE_SET_METHOD(target, "walletEncrypted", WalletEncrypted); - NODE_SET_METHOD(target, "walletDumpPrivKey", WalletDumpPrivKey); + NODE_SET_METHOD(target, "walletDumpKey", WalletDumpKey); NODE_SET_METHOD(target, "walletKeyPoolRefill", WalletKeyPoolRefill); NODE_SET_METHOD(target, "walletSetTxFee", WalletSetTxFee); NODE_SET_METHOD(target, "walletImportKey", WalletImportKey);