return tx on broadcast.

This commit is contained in:
Christopher Jeffrey 2014-09-25 14:01:50 -07:00
parent b681642132
commit 5f21978a44
2 changed files with 13 additions and 5 deletions

View File

@ -482,10 +482,11 @@ Transaction.broadcast = function(tx, options, callback) {
tx.toHex();
}
return bitcoindjs.broadcastTx(tx, fee, own, function(err, hash) {
return bitcoindjs.broadcastTx(tx, fee, own, function(err, hash, tx) {
if (err) return callback(err);
bitcoin.global.emit('broadcast', hash);
return callback(null, err);
tx = bitcoin.tx(tx);
bitcoin.global.emit('broadcast', tx);
return callback(null, hash, tx);
});
};

View File

@ -1059,10 +1059,17 @@ async_broadcast_tx_after(uv_work_t *req) {
node::FatalException(try_catch);
}
} else {
const unsigned argc = 2;
CDataStream ssData(ParseHex(data->tx_hex), SER_NETWORK, PROTOCOL_VERSION);
CTransaction tx;
ssData >> tx;
Local<Object> entry = NanNew<Object>();
ctx_to_js(tx, 0, entry);
const unsigned argc = 3;
Local<Value> argv[argc] = {
Local<Value>::New(Null()),
Local<Value>::New(NanNew<String>(data->tx_hash))
Local<Value>::New(NanNew<String>(data->tx_hash)),
Local<Value>::New(entry)
};
TryCatch try_catch;
data->callback->Call(Context::GetCurrent()->Global(), argc, argv);