aboutsummaryrefslogtreecommitdiffstats
path: root/bitcoinPayments.js
diff options
context:
space:
mode:
Diffstat (limited to 'bitcoinPayments.js')
-rw-r--r--bitcoinPayments.js19
1 files changed, 13 insertions, 6 deletions
diff --git a/bitcoinPayments.js b/bitcoinPayments.js
index 5b916265..0d410a6a 100644
--- a/bitcoinPayments.js
+++ b/bitcoinPayments.js
@@ -20,17 +20,24 @@ let NETWORK = bitcoin.networks[config.bitcoin.network === "mainnet" ? "bitcoin"
module.exports = (app, bc, db, addresses, payments, emit) => {
zmqRawTx.on("message", async (topic, message, sequence) => {
const hex = message.toString("hex");
- const tx = await bc.decodeRawTransaction(hex);
- let hash = tx.txid;
+ let tx = bitcoin.Transaction.fromHex(message);
+ let hash = reverse(tx.getHash()).toString("hex");
if (payments.includes(hash)) return;
Promise.all(
- tx.vout.map(async o => {
- if (!(o.scriptPubKey && o.scriptPubKey.addresses)) return;
+ tx.outs.map(async o => {
+ const { value } = o;
- const value = toSats(o.value);
- const address = o.scriptPubKey.addresses[0];
+ let address;
+ try {
+ address = bitcoin.address.fromOutputScript(
+ o.script,
+ NETWORK
+ );
+ } catch (e) {
+ return;
+ }
if (Object.keys(addresses).includes(address)) {
payments.push(hash);