refactor dumpprivkey.
This commit is contained in:
parent
21fc1c5a74
commit
73bc0083b8
|
@ -751,8 +751,12 @@ Wallet.prototype.isEncrypted = function() {
|
||||||
return bitcoindjs.walletEncrypted();
|
return bitcoindjs.walletEncrypted();
|
||||||
};
|
};
|
||||||
|
|
||||||
Wallet.prototype.dumpPrivKey = function(options) {
|
Wallet.prototype.dumpKey = function(options) {
|
||||||
return bitcoindjs.dumpPrivKey(options || {});
|
return bitcoindjs.dumpKey(options || {});
|
||||||
|
};
|
||||||
|
|
||||||
|
Wallet.prototype.importKey = function(options) {
|
||||||
|
return bitcoindjs.walletImportKey(options || {});
|
||||||
};
|
};
|
||||||
|
|
||||||
Wallet.prototype.keyPoolRefill = function(options) {
|
Wallet.prototype.keyPoolRefill = function(options) {
|
||||||
|
@ -763,10 +767,6 @@ Wallet.prototype.setTxFee = function(options) {
|
||||||
return bitcoindjs.walletSetTxFee(options || {});
|
return bitcoindjs.walletSetTxFee(options || {});
|
||||||
};
|
};
|
||||||
|
|
||||||
Wallet.prototype.importKey = function(options) {
|
|
||||||
return bitcoindjs.walletImportKey(options || {});
|
|
||||||
};
|
|
||||||
|
|
||||||
Wallet.prototype.dump = function(options, callback) {
|
Wallet.prototype.dump = function(options, callback) {
|
||||||
return bitcoindjs.walletDumpWallet(options || {}, callback);
|
return bitcoindjs.walletDumpWallet(options || {}, callback);
|
||||||
};
|
};
|
||||||
|
|
|
@ -199,9 +199,9 @@ NAN_METHOD(WalletPassphraseChange);
|
||||||
NAN_METHOD(WalletLock);
|
NAN_METHOD(WalletLock);
|
||||||
NAN_METHOD(WalletEncrypt);
|
NAN_METHOD(WalletEncrypt);
|
||||||
NAN_METHOD(WalletEncrypted);
|
NAN_METHOD(WalletEncrypted);
|
||||||
NAN_METHOD(WalletDumpPrivKey);
|
|
||||||
NAN_METHOD(WalletKeyPoolRefill);
|
NAN_METHOD(WalletKeyPoolRefill);
|
||||||
NAN_METHOD(WalletSetTxFee);
|
NAN_METHOD(WalletSetTxFee);
|
||||||
|
NAN_METHOD(WalletDumpKey);
|
||||||
NAN_METHOD(WalletImportKey);
|
NAN_METHOD(WalletImportKey);
|
||||||
NAN_METHOD(WalletDumpWallet);
|
NAN_METHOD(WalletDumpWallet);
|
||||||
NAN_METHOD(WalletImportWallet);
|
NAN_METHOD(WalletImportWallet);
|
||||||
|
@ -3754,52 +3754,6 @@ NAN_METHOD(WalletEncrypted) {
|
||||||
NanReturnValue(NanNew<Boolean>(isEncrypted));
|
NanReturnValue(NanNew<Boolean>(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<Object> options = Local<Object>::Cast(args[0]);
|
|
||||||
String::Utf8Value addr_(options->Get(NanNew<String>("address"))->ToString());
|
|
||||||
std::string addr = std::string(*addr_);
|
|
||||||
|
|
||||||
CBitcoinAddress address(addr);
|
|
||||||
|
|
||||||
Local<Object> obj = NanNew<Object>();
|
|
||||||
obj->Set(NanNew<String>("address"), NanNew<String>(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<String>("privkeycompressed"), NanNew<Boolean>(vchSecret.IsCompressed()));
|
|
||||||
obj->Set(NanNew<String>("privkey"), NanNew<String>(priv));
|
|
||||||
}
|
|
||||||
|
|
||||||
CPubKey vchPubKey;
|
|
||||||
pwalletMain->GetPubKey(keyID, vchPubKey);
|
|
||||||
obj->Set(NanNew<String>("pubkeycompressed"), NanNew<Boolean>(vchPubKey.IsCompressed()));
|
|
||||||
obj->Set(NanNew<String>("pubkey"), NanNew<String>(HexStr(vchPubKey)));
|
|
||||||
|
|
||||||
NanReturnValue(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* WalletKeyPoolRefill()
|
* WalletKeyPoolRefill()
|
||||||
* bitcoindjs.walletKeyPoolRefill(options)
|
* bitcoindjs.walletKeyPoolRefill(options)
|
||||||
|
@ -3865,6 +3819,52 @@ NAN_METHOD(WalletSetTxFee) {
|
||||||
NanReturnValue(True());
|
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<Object> options = Local<Object>::Cast(args[0]);
|
||||||
|
String::Utf8Value addr_(options->Get(NanNew<String>("address"))->ToString());
|
||||||
|
std::string addr = std::string(*addr_);
|
||||||
|
|
||||||
|
CBitcoinAddress address(addr);
|
||||||
|
|
||||||
|
Local<Object> obj = NanNew<Object>();
|
||||||
|
obj->Set(NanNew<String>("address"), NanNew<String>(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<String>("privkeycompressed"), NanNew<Boolean>(vchSecret.IsCompressed()));
|
||||||
|
obj->Set(NanNew<String>("privkey"), NanNew<String>(priv));
|
||||||
|
}
|
||||||
|
|
||||||
|
CPubKey vchPubKey;
|
||||||
|
pwalletMain->GetPubKey(keyID, vchPubKey);
|
||||||
|
obj->Set(NanNew<String>("pubkeycompressed"), NanNew<Boolean>(vchPubKey.IsCompressed()));
|
||||||
|
obj->Set(NanNew<String>("pubkey"), NanNew<String>(HexStr(vchPubKey)));
|
||||||
|
|
||||||
|
NanReturnValue(obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* WalletImportKey()
|
* WalletImportKey()
|
||||||
* bitcoindjs.walletImportKey(options)
|
* bitcoindjs.walletImportKey(options)
|
||||||
|
@ -4820,7 +4820,7 @@ init(Handle<Object> target) {
|
||||||
NODE_SET_METHOD(target, "walletLock", WalletLock);
|
NODE_SET_METHOD(target, "walletLock", WalletLock);
|
||||||
NODE_SET_METHOD(target, "walletEncrypt", WalletEncrypt);
|
NODE_SET_METHOD(target, "walletEncrypt", WalletEncrypt);
|
||||||
NODE_SET_METHOD(target, "walletEncrypted", WalletEncrypted);
|
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, "walletKeyPoolRefill", WalletKeyPoolRefill);
|
||||||
NODE_SET_METHOD(target, "walletSetTxFee", WalletSetTxFee);
|
NODE_SET_METHOD(target, "walletSetTxFee", WalletSetTxFee);
|
||||||
NODE_SET_METHOD(target, "walletImportKey", WalletImportKey);
|
NODE_SET_METHOD(target, "walletImportKey", WalletImportKey);
|
||||||
|
|
Loading…
Reference in New Issue