since we now make an rpc call to get the active chain before bothering with exchange rates, exchange rates were prone to fail to initialize, either due to slow response to getblockchaininfo call or connecting to a node that's not ready to serve traffic (e.g. verifying blocks). with this change, wait to decide about exchange rate status until we have a verified rpc connection.
* display chain/network in header if not mainnet
* indicate active chain/network in startup log
* specify which chain/network "fun" items apply to and only show them for that chain
* don't display exchange rates for testnet/regtest
* use block interval of 150 for regtest halving
* regtest hacks: since getblockchaininfo.blocks=0 on a default regtest node despite the genesis block existing, hack in a couple of places in order to display the genesis block
* fix /peers page to not throw error with no connections
Move closer to the original vision of supporting any address-querying implementation desired. Current options include ElectrumX (as before) and now blockchain.com and blockcypher.com since they were easy to support and are publicly/easily available (though ridiculously neither is yet to support bc1 addresses).
- new env var option BTCEXP_ADDRESS_API, value can be electrumx, blockchain.com, blockcypher.com
- update ElectrumX client connect to request v1.4 of API as all clients are now supposed to do
- misc frontend improvements/cleanup for addresses
all for demo site only:
- remove github's javascript buttons from homepage in favor of github-api-request followed by self-rendered buttons
- donation modal with support for BTCPay-backed donations of set denominations and hidden-but-expandable old donation addresses
- tweak footer style and remove old donation addresses in favor of another donation button that shows the modal
It might not be when installing btc-rpc-explorer globally (npm install -g).
Without this, running btc-rpc-explorer without .git resulted in:
fatal: Not a git repository (or any parent up to mount point /home/user)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
Unhandled Rejection at: Promise Promise {
<rejected> TypeError: Cannot read property 'all' of null
at btc-rpc-explorer/app.js:334:35
- updated package-lock
- include sample .env file for easy reference
- continue to support key-by-key updating from credentials.js for now
- minor code formatting
- reflect status of BTCEXP_NO_RATES in UI when applicable (hide new exchanged-currency items from display dropdown and hide exchange rate on homepage)
- rename _LOGIN to _BASIC_AUTH_PASSWORD for clarity
- tweak README to call out .env-sample
This ensures a unique, hard-to-guess cookie secret for every instance.
Also, renamed from "cookiePassword" to "cookieSecret" to better express
its meaning.