* feat: add `Share PSBT` button with options * feat: add basic communication via the serial port * chore: code format * feat: send data to and from serial port * fix: port disconnect * feat: handle psbt extract * feat: show signed transaction details * fix: handle Connect/Disconnect failure state * feat:small UI improvements * feat: broadcast transaction (partial solution) * feat: integrate psbt response from HWW * feat: login and send commands to HWW * feat: ui improvements * feat: ui/ux improvements * feat: more small UI impreovemsnts * feat: simplify UI * feat: add `help` command * feat: add wipe command * feet: add `seed` command * feat: add `restore` command * feat: always show PSBT input text (for outside PSBTs) * feat: show spinner while signing tx * feat: hide panels after transaction is broadcast * feat: basic use of custom components * refactor: move components one folder up * refactor: extract wallet-config * refactor: extract `wallet-list` component * refactor: clean-up * chore: code format html component files * refactor: extract address-list component * refactor: extract `history` component * refactor: extract `utxo-list` component * feat: UI/UX improvements * feat: partial payment redesign * refactor: rename `fee` to `fee-rate` * refactor: rename component * refactor: extract `send-to` component * refactor: payment: first migration * fix: init `sendToList` * fix: change address * fix: change address and `Select All` coins * feat: show custom fees & two way binding for addresses * fix: scanAddressesWithAmount * fix: max amount * fix: coin selection mode * chore: code clean-up * feat: shuffle the UI * fix: change amount * feat: update tx size in real time * fix: coin selection * fix: show erro messages * fix: psbt generation * refactor: move serial port logic * refactor: payment component * refactor: code clean-up; use `slot` for `serial-signer` * feat: toggle serial port * feat: add Disconnect command * feat: prompt for `Connect` and `Login` before signing * refactor: send psbt to device * feat: extract signed transaction * refactor: code clean-up * feat: show auth green icon * chore: code clean-up * feat: show console * feat: allow `Connect` from dropdown menu * fix: stop if serial port cannot be open * feat: confirm outputs and fee * feat: add cancel command * fix: add `sats-denominated` for confirmations * feat: wait for HWW to authenticate, then open dialog * feat: share PSBT as text * refactor: extract `refreshAddresses` * feat: small UI improvements * feat: add default `Mainnet` network * feat: fix mempool endpint * feat: propagate config update only when explicitly updated * feat: add network for wallet accounts * fix: stop scanning when network changed * chore: code clean-up * chore: code clean-up * feat: show hardware device Xpub option * fix: handle failed to parse psbt * feat: add accounts using the HWW * fix: testnet is in the bip32 derivation path * feat: add spinner while wallet account is created * fix: check network and masterpub for duplicate accounts * feat: integrate transaction broadcast * feat: add password confirmation for `Wipe` and `Restore` * fix: fingerprint is not unique per account (it is the fingerprint of the master) * chore: code clean-up, remove `masterpub_fingerprint` * fix: account name diplay * chore: code format * fix: memppol links * fix: shortcut buttons * fix: note update * chore: code format * chore: clean-up rebase left overs * chore: clean-up * feat: less technical labels for addresses * feat: add serial port config params * fix: address type selection * chore: drop `mempool` table * fix: change & fee value * fix: handle no input signed scenario * fix: sat/btc unit * fix: small UI stuff * doc: update the readme * Update README.md
4.5 KiB
4.5 KiB
Onchain Wallet (watch-only)
Monitor an onchain wallet and generate addresses for onchain payments
Monitor an extended public key and generate deterministic fresh public keys with this simple watch only wallet. Invoice payments can also be generated, both through a publically shareable page and API.
You can now use this wallet on the LNBits SatsPayServer extension
Wallet Account
- a user can add one or more
xPubsordescriptors- the
xPubmust be unique per user - such and entry is called an
Wallet Account - the addresses in a
Wallet Accountare split intoReceive AddressesandChange Address - the user interacts directly only with the
Receive Addresses(by sharing them) - see BIP44 for more details
- same
xPubwill always generate the same addresses (deterministic)
- the
- when a
Wallet Accountis created, there are generated20 Receive Addressesand5 Change Address- the limits can be change from the
Configpage (seescreenshot 1) - regular wallets only scan up to
20empty receive addresses. If the user generates addresses beyond this limit a warning is shown (seescreenshot 4)
- the limits can be change from the
- an account can be added
From Hardware Device
Scan Blockchain
- when the user clicks
Scan Blockchain, the wallet will loop over the all addresses (for each account)- if funds are found, then the list is extended
- will scan addresses for all wallet accounts
- the search is done on the client-side (using the
mempool.spaceAPI).mempool.spacehas a limit on the number of req/sec, therefore it is expected for the scanning to start fast, but slow down as more HTTP requests have to be retried - addresses can also be rescanned individually form the
Address Detailssection (Addressestab) of each address
New Receive Address
- the
New Receive Addressbutton show the user the NEXT un-used address- un-used means funds have not already been sent to that address AND the address has not already been shared
- internally there is a counter that keeps track of the last shared address
- it is possible to add a
Noteto each address in order to remember when/with whom it was shared - mind the gap (
screenshot 4)
Addresses Tab
- the
Addressestab contains a list with the addresses for all theWallet Accounts- only one entry per address will be shown (even if there are multiple UTXOs at that address)
- several filter criteria can be applied
- unconfirmed funds are also taken into account
Address Detailscan be viewed by clicking theExpandbutton
History Tap
- shows the chronological order of transactions
- it shows unconfirmed transactions at the top
- it can be exported as CSV file
Coins Tab
- shows the UTXOs for all wallets
- there can be multiple UTXOs for the same address
New Payment
- create a new
Partially Signed Bitcoin Transaction - multiple
Send Addressescan be added- the
Maxbutton next to an address is for sending the remaining funds to this address (no change)
- the
- the user can select the inputs (UTXOs) manually, or it can use of the basic selection algorithms
- amounts have to be provided for the
Send Addressesbeforehand (so the algorithm knows the amount to be selected)
- amounts have to be provided for the
Show Changeallows to select from which account the change address will be selected (defaults to the first one)Show Custom Feeallows to manually select the fee- it defaults to the
Mediumvalue at the moment theNew Paymentbutton was clicked - it can be refreshed
- warnings are shown if the fee is too Low or to High
- it defaults to the
Check & Send
- creates the PSBT and sends it to the Hardware Wallet
- a confirmation will be shown for each Output and for the Fee
- after the user confirms the addresses and amounts, the transaction will be signed on the Hardware Device
Share PSBT
- Show the PSBT without sending it to the Hardware Wallet



