UX improvements
Various UX improvements:
- Displays Keeper download link when Keeper is not found
- Secrets now must be created (with repeated input) before being used
- Error handling for node interaction functions (sending payments, etc.); retry button appears on errors
- Recipient address is also displayed after entering the recipient pubkey
- Warning on leaving the contract creation window between contract setup and payment; warning on deleting the contract
- Contract state is updated properly every 2 seconds
- Entering an invalid address (no contract at address or not a valid address at all) into the recipient's address input shows an error message
- The app now works on both testnet and mainnet
Refactors:
- All blockchain interactions (Keeper and node) are abstracted in a single "Blockchain Connector" entity
- Asynchronous functions return promises instead of accepting callbacks
- Components are separated into different files
Edited by Ivan Kamakin