From e18bfdd2fb90f6be27bbae5fe3551fd12a54862a Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Mon, 17 Nov 2014 16:05:31 -0800 Subject: [PATCH] fix v8 assertion failure on tx sending. --- src/bitcoindjs.cc | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/bitcoindjs.cc b/src/bitcoindjs.cc index dc81f988..35e9c471 100644 --- a/src/bitcoindjs.cc +++ b/src/bitcoindjs.cc @@ -3222,7 +3222,7 @@ NAN_METHOD(WalletRemoveRecipient) { /** * WalletSendTo() - * bitcoindjs.walletSendTo(options) + * bitcoindjs.walletSendTo(options, callback) * Send bitcoin to an address, automatically creating the transaction based on * availing unspent outputs. */ @@ -3230,16 +3230,18 @@ NAN_METHOD(WalletRemoveRecipient) { NAN_METHOD(WalletSendTo) { NanScope(); - if (args.Length() < 1 || !args[0]->IsObject()) { + if (args.Length() < 2 || !args[0]->IsObject() || !args[1]->IsFunction()) { return NanThrowError( - "Usage: bitcoindjs.walletSendTo(options)"); + "Usage: bitcoindjs.walletSendTo(options, callback)"); } Local options = Local::Cast(args[0]); + Local callback = Local::Cast(args[1]); async_wallet_sendto_data *data = new async_wallet_sendto_data(); data->err_msg = std::string(""); + data->callback = Persistent::New(callback); String::Utf8Value addr_(options->Get(NanNew("address"))->ToString()); std::string addr = std::string(*addr_); @@ -3342,7 +3344,7 @@ async_wallet_sendto_after(uv_work_t *req) { /** * WalletSendFrom() - * bitcoindjs.walletSendFrom(options) + * bitcoindjs.walletSendFrom(options, callback) * Send bitcoin to a particular address from a particular owned account name. * This once again automatically creates and signs a transaction based on any * unspent outputs available. @@ -3351,16 +3353,18 @@ async_wallet_sendto_after(uv_work_t *req) { NAN_METHOD(WalletSendFrom) { NanScope(); - if (args.Length() < 1 || !args[0]->IsObject()) { + if (args.Length() < 2 || !args[0]->IsObject() || !args[1]->IsFunction()) { return NanThrowError( - "Usage: bitcoindjs.walletSendFrom(options)"); + "Usage: bitcoindjs.walletSendFrom(options, callback)"); } Local options = Local::Cast(args[0]); + Local callback = Local::Cast(args[1]); async_wallet_sendfrom_data *data = new async_wallet_sendfrom_data(); data->err_msg = std::string(""); + data->callback = Persistent::New(callback); String::Utf8Value addr_(options->Get(NanNew("address"))->ToString()); std::string addr = std::string(*addr_);