Hi,
First of all, thank you for your excellent work. I was looking for a full-node based self-hosted payment solution for several of my companies and it fits perfectly.
I'm testing it since yesterday but I'm running into a few minor issues :
- I made small payments to test (0.0001 BTC) which seem to be equal to the fee to transfer to the merchant account, so I'm getting stuck in a loop of
worker2.js address: XXX expect: 0.0001 confirmed: 0.0001 unconfirmed: 0.0001
worker2.js transferring 0.0001 BTC (minus fee) from XXX to seller XXX ( XXX )
worker2.js broadcasting XXX
- Is there a way to cleanup old payment requests ? I have a few of those looping in the logs of worker.js
worker.js address: XXX expect: 0.001 confirmed: 0 unconfirmed: 0
worker.js address: XXY expect: 0.001 confirmed: 0 unconfirmed: 0
worker.js address: XXZ expect: 0.001 confirmed: 0 unconfirmed: 0
worker.js address: XXW expect: 0.001 confirmed: 0 unconfirmed: 0
- I don't know if it's a consequence of the items above, but I created new payment requests which were paid and arrived in the sub-addresses (I can see them in bitcoin-cli listaddressgroupings) but they are not transferred to the seller account, no trace of them in cashier-btc-out.log
Don't hesitate to ask me for more info

Hey!
Super small payments are kind of an issue. The fee to aggregate payments is hardcoded here
https://github.com/Overtorment/Cashier-BTC/blob/f0fb18c8186f87373c267b1a7e7b42daedb6449d/worker2.js#L54I suggest you change it to a smaller amount (it's currently 0.0001) or deal with such payments manually (the WIF for the hot address is in the database).
Old requests are being re-checked for 24 hours. That's configurable in config
https://github.com/Overtorment/Cashier-BTC/blob/master/config.js.devYou can lower that to your taste, but everything works okay with the way it is.
If you really want to cleanup old requests, you need to write a small script for that, but that's not a very good idea. Occasionally clients
might be paying to some old addresses.
The third question I didn't quite understand.
Probably the payment requests are old enough (>24h) to be ignored by worker.
You can always check out whats wrong with the payment request right in the database.