~singpolyma/jmp-pay

Do not hang forever if shutdown fails
Do not warn about BTC tx <= 0

This is a valid case for when we have sent BTC received at this address out.
Rubocop

Since these files didn't have shebangs, rubocop didn't look at them.
Once it started looking it found a bunch of stuff it didn't like, but
the original commit where they were written is already merged, so I'm
fixing those issues here.
Fix Executables

I've added shebangs to the starts and chmod'd the scripts to match the
others.

Locally I just ran `bundle exec rescue` and so didn't notice until it went
into prod that they didn't match.
Various Electrum Checks and Fixes

There were some issues with Electrum, and we lost a bit of confidence,
so I built these to help with that.

bin/check_electrum_wallet_completeness
- This one is meant to be run in cron. It checks for addresses we've
  given a user that Electrum doesn't know we have. It just prints out,
  so we get an email and can go look.
  The purpose of this is to know before our users that we're missing
  something.

bin/detect_duplicate_addrs
- This one is meant to be run in cron. It looks through the addresses
  that users has have been given to make sure the same address hasn't
  been given out to more than one person.
  It just prints out the issues, so we'll be notified and can take a
  look

bin/correct_duplicate_addrs
- This is one potential solution that can be run in response to
  duplicate addresses.
  Since I'm expecting an email from bin/detect_duplicate_addrs, this
  takes as input the text that was sent to us.
  It goes through each address and re-assigns it away from all users,
  parking the addresses on the support account so we still get notified
  when people send money, etc
  Because it takes output as input, they could be piped together in
  theory, but I never tested that because I assume some investigation
  would be warranted

bin/reassert_electrum_notification
- This script goes through every bitcoin address that's been given to a
  customer and makes sure that electrum knows to tell us about changes
  to that address
small on next line
Merge branch 'auto-top-up'

* auto-top-up:
  Default auto-top-up to $15 and allow changing from credit card management screen
Default auto-top-up to $15 and allow changing from credit card management screen
Wait until fully disconnected before EM.stop
Transaction id must be unique
Include BTC addresses in notification, if there are any
If a user has no balance, then their balance is 0
Only notify expired users once a week
Fix Dhall signature

The config got updated, but the signature was missed.
Fix intermittent notification non-delivery

We need to wait until all EventMachine items in flight are complete before we
allow the process to terminate or some of them might not happen.  So when the
process wants to exit, wait until the EM thread is done.  Use next_tick to make
sure our stop command only happens when the EM queue is next clear.
update schemas to include hotfix from prod and sqitch tag for prod
Update schema and INSERT to plan_log using new range type

plan_log has been updated to use a range type, so our INSERTs need to be
updated as well.
Next