add all shutting_down failsafe checks in c++.

This commit is contained in:
Christopher Jeffrey 2014-12-12 11:24:53 -08:00
parent ece3d65cc5
commit f8b5e65be0

View File

@ -934,6 +934,8 @@ start_node_thread(void) {
NAN_METHOD(StopBitcoind) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsFunction()) {
return NanThrowError(
"Usage: bitcoind.stop(callback)");
@ -971,6 +973,7 @@ NAN_METHOD(StopBitcoind) {
static void
async_stop_node(uv_work_t *req) {
async_node_data *data = static_cast<async_node_data*>(req->data);
// if (shutting_down) return;
shutting_down = true;
unhook_packets();
StartShutdown();
@ -987,6 +990,8 @@ async_stop_node_after(uv_work_t *req) {
NanScope();
async_node_data* data = static_cast<async_node_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
Local<Value> err = Exception::Error(NanNew<String>(data->err_msg));
const unsigned argc = 1;
@ -1024,6 +1029,7 @@ async_stop_node_after(uv_work_t *req) {
NAN_METHOD(IsStopping) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
NanReturnValue(NanNew<Boolean>(ShutdownRequested()));
}
@ -1036,6 +1042,7 @@ NAN_METHOD(IsStopping) {
NAN_METHOD(IsStopped) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
NanReturnValue(NanNew<Boolean>(shutdown_complete));
}
@ -1092,6 +1099,8 @@ static void
async_get_block(uv_work_t *req) {
async_block_data* data = static_cast<async_block_data*>(req->data);
// if (shutting_down) return;
if (data->height != -1) {
CBlockIndex* pblockindex = chainActive[data->height];
CBlock cblock;
@ -1122,6 +1131,8 @@ async_get_block_after(uv_work_t *req) {
NanScope();
async_block_data* data = static_cast<async_block_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
Local<Value> err = Exception::Error(NanNew<String>(data->err_msg));
const unsigned argc = 1;
@ -1165,6 +1176,8 @@ async_get_block_after(uv_work_t *req) {
NAN_METHOD(GetTransaction) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 3
|| !args[0]->IsString()
|| !args[1]->IsString()
@ -1206,6 +1219,8 @@ static void
async_get_tx(uv_work_t *req) {
async_tx_data* data = static_cast<async_tx_data*>(req->data);
// if (shutting_down) return;
uint256 hash(data->txid);
uint256 blockhash(data->blockhash);
CTransaction ctx;
@ -1228,6 +1243,8 @@ async_get_tx_after(uv_work_t *req) {
NanScope();
async_tx_data* data = static_cast<async_tx_data*>(req->data);
// if (shutting_down) return;
CTransaction ctx = data->ctx;
uint256 blockhash(data->blockhash);
@ -1272,6 +1289,8 @@ async_get_tx_after(uv_work_t *req) {
NAN_METHOD(BroadcastTx) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 4
|| !args[0]->IsObject()
|| !args[1]->IsBoolean()
@ -1312,6 +1331,8 @@ static void
async_broadcast_tx(uv_work_t *req) {
async_broadcast_tx_data* data = static_cast<async_broadcast_tx_data*>(req->data);
// if (shutting_down) return;
bool fOverrideFees = false;
bool fOwnOnly = false;
@ -1361,6 +1382,8 @@ async_broadcast_tx_after(uv_work_t *req) {
NanScope();
async_broadcast_tx_data* data = static_cast<async_broadcast_tx_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
Local<Value> err = Exception::Error(NanNew<String>(data->err_msg));
const unsigned argc = 1;
@ -1400,6 +1423,8 @@ async_broadcast_tx_after(uv_work_t *req) {
NAN_METHOD(VerifyBlock) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.verifyBlock(block)");
@ -1429,6 +1454,8 @@ NAN_METHOD(VerifyBlock) {
NAN_METHOD(VerifyTransaction) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.verifyTransaction(tx)");
@ -1461,6 +1488,8 @@ NAN_METHOD(VerifyTransaction) {
NAN_METHOD(FillTransaction) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 2 || !args[0]->IsObject() || !args[1]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.fillTransaction(tx, options)");
@ -1549,6 +1578,8 @@ NAN_METHOD(FillTransaction) {
NAN_METHOD(GetInfo) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() > 0) {
return NanThrowError(
"Usage: bitcoindjs.getInfo()");
@ -1598,6 +1629,8 @@ NAN_METHOD(GetInfo) {
NAN_METHOD(GetPeerInfo) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() > 0) {
return NanThrowError(
"Usage: bitcoindjs.getPeerInfo()");
@ -1673,6 +1706,8 @@ NAN_METHOD(GetPeerInfo) {
NAN_METHOD(GetAddresses) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() > 0) {
return NanThrowError(
"Usage: bitcoindjs.getAddresses()");
@ -1713,6 +1748,8 @@ NAN_METHOD(GetAddresses) {
NAN_METHOD(GetProgress) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsFunction()) {
return NanThrowError(
"Usage: bitcoindjs.getProgress(callback)");
@ -1742,6 +1779,7 @@ NAN_METHOD(GetProgress) {
static void
async_get_progress(uv_work_t *req) {
// if (shutting_down) return;
async_get_block(req);
}
@ -1750,6 +1788,8 @@ async_get_progress_after(uv_work_t *req) {
NanScope();
async_block_data* data = static_cast<async_block_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
Local<Value> err = Exception::Error(NanNew<String>(data->err_msg));
const unsigned argc = 1;
@ -1829,6 +1869,8 @@ async_get_progress_after(uv_work_t *req) {
NAN_METHOD(SetGenerate) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.setGenerate(options)");
@ -1894,6 +1936,7 @@ NAN_METHOD(SetGenerate) {
NAN_METHOD(GetGenerate) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
bool generate = GetBoolArg("-gen", false);
NanReturnValue(NanNew<Boolean>(generate));
}
@ -1907,6 +1950,8 @@ NAN_METHOD(GetGenerate) {
NAN_METHOD(GetMiningInfo) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
Local<Object> obj = NanNew<Object>();
json_spirit::Array empty_params;
@ -1945,6 +1990,8 @@ NAN_METHOD(GetMiningInfo) {
NAN_METHOD(GetAddrTransactions) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 2
|| (!args[0]->IsString() && !args[0]->IsObject())
|| !args[1]->IsFunction()) {
@ -2012,6 +2059,8 @@ static void
async_get_addrtx(uv_work_t *req) {
async_addrtx_data* data = static_cast<async_addrtx_data*>(req->data);
// if (shutting_down) return;
if (data->addr.empty()) {
data->err_msg = std::string("Invalid address.");
return;
@ -2108,6 +2157,8 @@ async_get_addrtx_after(uv_work_t *req) {
NanScope();
async_addrtx_data* data = static_cast<async_addrtx_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
Local<Value> err = Exception::Error(NanNew<String>(data->err_msg));
const unsigned argc = 1;
@ -2159,6 +2210,8 @@ async_get_addrtx_after(uv_work_t *req) {
NAN_METHOD(GetBestBlock) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 0) {
return NanThrowError(
"Usage: bitcoindjs.getBestBlock()");
@ -2178,6 +2231,8 @@ NAN_METHOD(GetBestBlock) {
NAN_METHOD(GetChainHeight) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() > 0) {
return NanThrowError(
"Usage: bitcoindjs.getChainHeight()");
@ -2195,6 +2250,8 @@ NAN_METHOD(GetChainHeight) {
NAN_METHOD(GetBlockByTx) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 2
|| !args[0]->IsString()
|| !args[1]->IsFunction()) {
@ -2227,6 +2284,7 @@ NAN_METHOD(GetBlockByTx) {
static void
async_block_tx(uv_work_t *req) {
async_block_tx_data* data = static_cast<async_block_tx_data*>(req->data);
// if (shutting_down) return;
#if USE_LDB_TX
if (!g_txindex) {
parse:
@ -2262,6 +2320,8 @@ async_block_tx_after(uv_work_t *req) {
NanScope();
async_block_tx_data* data = static_cast<async_block_tx_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
Local<Value> err = Exception::Error(NanNew<String>(data->err_msg));
const unsigned argc = 1;
@ -2310,6 +2370,8 @@ async_block_tx_after(uv_work_t *req) {
NAN_METHOD(GetBlocksByTime) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 2
|| !args[0]->IsString()
|| !args[1]->IsFunction()) {
@ -2353,6 +2415,7 @@ NAN_METHOD(GetBlocksByTime) {
static void
async_block_time(uv_work_t *req) {
async_block_time_data* data = static_cast<async_block_time_data*>(req->data);
// if (shutting_down) return;
if (!data->gte && !data->lte) {
data->err_msg = std::string("gte and lte not found.");
return;
@ -2393,6 +2456,8 @@ async_block_time_after(uv_work_t *req) {
NanScope();
async_block_time_data* data = static_cast<async_block_time_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
Local<Value> err = Exception::Error(NanNew<String>(data->err_msg));
const unsigned argc = 1;
@ -2441,6 +2506,8 @@ async_block_time_after(uv_work_t *req) {
NAN_METHOD(GetLastFileIndex) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() > 0) {
return NanThrowError(
"Usage: bitcoindjs.getLastFileIndex(callback)");
@ -2462,6 +2529,8 @@ NAN_METHOD(GetLastFileIndex) {
NAN_METHOD(GetBlockHex) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.getBlockHex(block)");
@ -2494,6 +2563,8 @@ NAN_METHOD(GetBlockHex) {
NAN_METHOD(GetTxHex) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.getTxHex(tx)");
@ -2525,6 +2596,8 @@ NAN_METHOD(GetTxHex) {
NAN_METHOD(BlockFromHex) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsString()) {
return NanThrowError(
"Usage: bitcoindjs.blockFromHex(hex)");
@ -2557,6 +2630,8 @@ NAN_METHOD(BlockFromHex) {
NAN_METHOD(TxFromHex) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsString()) {
return NanThrowError(
"Usage: bitcoindjs.txFromHex(hex)");
@ -2603,6 +2678,8 @@ boost::mutex poll_packets_mutex;
NAN_METHOD(HookPackets) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
Local<Array> obj = NanNew<Array>();
poll_packets_list *cur = NULL;
poll_packets_list *next = NULL;
@ -3158,6 +3235,8 @@ process_packet(CNode* pfrom, string strCommand, CDataStream& vRecv, int64_t nTim
NAN_METHOD(WalletNewAddress) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletNewAddress(options)");
@ -3244,6 +3323,8 @@ CBitcoinAddress GetAccountAddress(std::string strAccount, bool bForceNew=false)
NAN_METHOD(WalletGetAccountAddress) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletGetAccountAddress(options)");
@ -3287,6 +3368,8 @@ NAN_METHOD(WalletGetAccountAddress) {
NAN_METHOD(WalletSetAccount) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletSetAccount(options)");
@ -3379,6 +3462,8 @@ NAN_METHOD(WalletSetAccount) {
NAN_METHOD(WalletGetAccount) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletGetAccount(options)");
@ -3412,6 +3497,8 @@ NAN_METHOD(WalletGetAccount) {
NAN_METHOD(WalletGetRecipients) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletGetRecipients(options)");
@ -3455,6 +3542,8 @@ NAN_METHOD(WalletGetRecipients) {
NAN_METHOD(WalletSetRecipient) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletSetRecipient(options)");
@ -3502,6 +3591,8 @@ NAN_METHOD(WalletSetRecipient) {
NAN_METHOD(WalletRemoveRecipient) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletRemoveRecipient(options)");
@ -3529,6 +3620,8 @@ NAN_METHOD(WalletRemoveRecipient) {
NAN_METHOD(WalletSendTo) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 2 || !args[0]->IsObject() || !args[1]->IsFunction()) {
return NanThrowError(
"Usage: bitcoindjs.walletSendTo(options, callback)");
@ -3580,6 +3673,8 @@ static void
async_wallet_sendto(uv_work_t *req) {
async_wallet_sendto_data* data = static_cast<async_wallet_sendto_data*>(req->data);
// if (shutting_down) return;
CBitcoinAddress address(data->address);
if (!address.IsValid()) {
@ -3613,6 +3708,8 @@ async_wallet_sendto_after(uv_work_t *req) {
NanScope();
async_wallet_sendto_data* data = static_cast<async_wallet_sendto_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
Local<Value> err = Exception::Error(NanNew<String>(data->err_msg));
const unsigned argc = 1;
@ -3652,6 +3749,8 @@ async_wallet_sendto_after(uv_work_t *req) {
NAN_METHOD(WalletSendFrom) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 2 || !args[0]->IsObject() || !args[1]->IsFunction()) {
return NanThrowError(
"Usage: bitcoindjs.walletSendFrom(options, callback)");
@ -3712,6 +3811,8 @@ static void
async_wallet_sendfrom(uv_work_t *req) {
async_wallet_sendfrom_data* data = static_cast<async_wallet_sendfrom_data*>(req->data);
// if (shutting_down) return;
CBitcoinAddress address(data->address);
if (!address.IsValid()) {
@ -3752,6 +3853,8 @@ async_wallet_sendfrom_after(uv_work_t *req) {
NanScope();
async_wallet_sendfrom_data* data = static_cast<async_wallet_sendfrom_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
Local<Value> err = Exception::Error(NanNew<String>(data->err_msg));
const unsigned argc = 1;
@ -3789,6 +3892,8 @@ async_wallet_sendfrom_after(uv_work_t *req) {
NAN_METHOD(WalletMove) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletMove(options)");
@ -3870,6 +3975,8 @@ NAN_METHOD(WalletMove) {
NAN_METHOD(WalletSignMessage) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletSignMessage(options)");
@ -3925,6 +4032,8 @@ NAN_METHOD(WalletSignMessage) {
NAN_METHOD(WalletVerifyMessage) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletVerifyMessage(options)");
@ -4046,6 +4155,8 @@ CScript _createmultisig_redeemScript(int nRequired, Local<Array> keys) {
NAN_METHOD(WalletCreateMultiSigAddress) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletCreateMultiSigAddress(options)");
@ -4114,6 +4225,8 @@ NAN_METHOD(WalletCreateMultiSigAddress) {
NAN_METHOD(WalletGetBalance) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletGetBalance(options)");
@ -4190,6 +4303,7 @@ NAN_METHOD(WalletGetBalance) {
NAN_METHOD(WalletGetUnconfirmedBalance) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
NanReturnValue(NanNew<Number>(pwalletMain->GetUnconfirmedBalance()));
}
@ -4202,6 +4316,8 @@ NAN_METHOD(WalletGetUnconfirmedBalance) {
NAN_METHOD(WalletListTransactions) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletListTransactions(options)");
@ -4435,6 +4551,8 @@ ListTransactions_V8(const CWalletTx& wtx, const string& strAccount,
NAN_METHOD(WalletReceivedByAddress) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletReceivedByAddress(options)");
@ -4493,6 +4611,8 @@ NAN_METHOD(WalletReceivedByAddress) {
NAN_METHOD(WalletListAccounts) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletListAccounts(options)");
@ -4603,6 +4723,8 @@ NAN_METHOD(WalletListAccounts) {
NAN_METHOD(WalletGetTransaction) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletGetTransaction(options)");
@ -4669,6 +4791,8 @@ NAN_METHOD(WalletGetTransaction) {
NAN_METHOD(WalletBackup) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletBackup(options)");
@ -4695,6 +4819,8 @@ NAN_METHOD(WalletBackup) {
NAN_METHOD(WalletPassphrase) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletPassphrase(options)");
@ -4736,6 +4862,8 @@ NAN_METHOD(WalletPassphrase) {
NAN_METHOD(WalletPassphraseChange) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletPassphraseChange(options)");
@ -4781,6 +4909,8 @@ NAN_METHOD(WalletPassphraseChange) {
NAN_METHOD(WalletLock) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 0) {
return NanThrowError(
"Usage: bitcoindjs.walletLock([options])");
@ -4805,6 +4935,8 @@ NAN_METHOD(WalletLock) {
NAN_METHOD(WalletEncrypt) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletEncrypt(options)");
@ -4858,6 +4990,8 @@ NAN_METHOD(WalletEncrypt) {
NAN_METHOD(WalletEncrypted) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() > 0) {
return NanThrowError(
"Usage: bitcoindjs.walletEncrypted()");
@ -4888,6 +5022,8 @@ NAN_METHOD(WalletEncrypted) {
NAN_METHOD(WalletKeyPoolRefill) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletKeyPoolRefill(options)");
@ -4924,6 +5060,8 @@ NAN_METHOD(WalletKeyPoolRefill) {
NAN_METHOD(WalletSetTxFee) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletSetTxFee(options)");
@ -4953,6 +5091,8 @@ NAN_METHOD(WalletSetTxFee) {
NAN_METHOD(WalletDumpKey) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletDumpKey(options)");
@ -5000,6 +5140,8 @@ NAN_METHOD(WalletDumpKey) {
NAN_METHOD(WalletImportKey) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletImportKey(options, callback)");
@ -5137,6 +5279,7 @@ rescan:
static void
async_import_key(uv_work_t *req) {
async_import_key_data* data = static_cast<async_import_key_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
return;
}
@ -5151,6 +5294,8 @@ async_import_key_after(uv_work_t *req) {
NanScope();
async_import_key_data* data = static_cast<async_import_key_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
Local<Value> err = Exception::Error(NanNew<String>(data->err_msg));
const unsigned argc = 1;
@ -5188,6 +5333,8 @@ async_import_key_after(uv_work_t *req) {
NAN_METHOD(WalletDumpWallet) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 2 || !args[0]->IsObject() || !args[1]->IsFunction()) {
return NanThrowError(
"Usage: bitcoindjs.walletDumpWallet(options, callback)");
@ -5227,6 +5374,8 @@ static void
async_dump_wallet(uv_work_t *req) {
async_dump_wallet_data* data = static_cast<async_dump_wallet_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
return;
}
@ -5298,6 +5447,8 @@ async_dump_wallet_after(uv_work_t *req) {
NanScope();
async_dump_wallet_data* data = static_cast<async_dump_wallet_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
Local<Value> err = Exception::Error(NanNew<String>(data->err_msg));
const unsigned argc = 1;
@ -5335,6 +5486,8 @@ async_dump_wallet_after(uv_work_t *req) {
NAN_METHOD(WalletImportWallet) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 2 || !args[0]->IsObject() || !args[1]->IsFunction()) {
return NanThrowError(
"Usage: bitcoindjs.walletImportWallet(options, callback)");
@ -5374,6 +5527,8 @@ static void
async_import_wallet(uv_work_t *req) {
async_import_wallet_data* data = static_cast<async_import_wallet_data*>(req->data);
// if (shutting_down) return;
std::string path = data->path;
ifstream file;
@ -5473,6 +5628,8 @@ async_import_wallet_after(uv_work_t *req) {
NanScope();
async_import_wallet_data* data = static_cast<async_import_wallet_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
Local<Value> err = Exception::Error(NanNew<String>(data->err_msg));
const unsigned argc = 1;
@ -5510,6 +5667,8 @@ async_import_wallet_after(uv_work_t *req) {
NAN_METHOD(WalletChangeLabel) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletChangeLabel(options)");
@ -5591,6 +5750,8 @@ NAN_METHOD(WalletChangeLabel) {
NAN_METHOD(WalletDeleteAccount) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletDeleteAccount(options)");
@ -5670,6 +5831,8 @@ NAN_METHOD(WalletDeleteAccount) {
NAN_METHOD(WalletIsMine) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 1 || !args[0]->IsObject()) {
return NanThrowError(
"Usage: bitcoindjs.walletIsMine(options)");
@ -5716,6 +5879,8 @@ NAN_METHOD(WalletIsMine) {
NAN_METHOD(WalletRescan) {
NanScope();
// if (shutting_down) NanReturnValue(Undefined());
if (args.Length() < 2 || !args[0]->IsObject() || !args[1]->IsFunction()) {
return NanThrowError(
"Usage: bitcoindjs.walletRescan(options, callback)");
@ -5743,6 +5908,7 @@ NAN_METHOD(WalletRescan) {
static void
async_rescan(uv_work_t *req) {
// if (shutting_down) return;
// async_rescan_data* data = static_cast<async_rescan_data*>(req->data);
// This may take a long time, do it on the libuv thread pool:
pwalletMain->ScanForWalletTransactions(chainActive.Genesis(), true);
@ -5753,6 +5919,8 @@ async_rescan_after(uv_work_t *req) {
NanScope();
async_rescan_data* data = static_cast<async_rescan_data*>(req->data);
// if (shutting_down) return;
if (data->err_msg != "") {
Local<Value> err = Exception::Error(NanNew<String>(data->err_msg));
const unsigned argc = 1;