diff --git a/src/bitcoindjs.cc b/src/bitcoindjs.cc index 37801d8d..a496132a 100644 --- a/src/bitcoindjs.cc +++ b/src/bitcoindjs.cc @@ -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(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(req->data); + // if (shutting_down) return; + if (data->err_msg != "") { Local err = Exception::Error(NanNew(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(ShutdownRequested())); } @@ -1036,6 +1042,7 @@ NAN_METHOD(IsStopping) { NAN_METHOD(IsStopped) { NanScope(); + // if (shutting_down) NanReturnValue(Undefined()); NanReturnValue(NanNew(shutdown_complete)); } @@ -1092,6 +1099,8 @@ static void async_get_block(uv_work_t *req) { async_block_data* data = static_cast(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(req->data); + // if (shutting_down) return; + if (data->err_msg != "") { Local err = Exception::Error(NanNew(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(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(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(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(req->data); + // if (shutting_down) return; + if (data->err_msg != "") { Local err = Exception::Error(NanNew(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(req->data); + // if (shutting_down) return; + if (data->err_msg != "") { Local err = Exception::Error(NanNew(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(generate)); } @@ -1907,6 +1950,8 @@ NAN_METHOD(GetGenerate) { NAN_METHOD(GetMiningInfo) { NanScope(); + // if (shutting_down) NanReturnValue(Undefined()); + Local obj = NanNew(); 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(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(req->data); + // if (shutting_down) return; + if (data->err_msg != "") { Local err = Exception::Error(NanNew(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(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(req->data); + // if (shutting_down) return; + if (data->err_msg != "") { Local err = Exception::Error(NanNew(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(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(req->data); + // if (shutting_down) return; + if (data->err_msg != "") { Local err = Exception::Error(NanNew(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 obj = NanNew(); 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(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(req->data); + // if (shutting_down) return; + if (data->err_msg != "") { Local err = Exception::Error(NanNew(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(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(req->data); + // if (shutting_down) return; + if (data->err_msg != "") { Local err = Exception::Error(NanNew(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 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(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(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(req->data); + // if (shutting_down) return; + if (data->err_msg != "") { Local err = Exception::Error(NanNew(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(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(req->data); + // if (shutting_down) return; + if (data->err_msg != "") { Local err = Exception::Error(NanNew(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(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(req->data); + // if (shutting_down) return; + if (data->err_msg != "") { Local err = Exception::Error(NanNew(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(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(req->data); + // if (shutting_down) return; + if (data->err_msg != "") { Local err = Exception::Error(NanNew(data->err_msg)); const unsigned argc = 1;