urbit-os-v2.75
This release will be pushed to the network as an over-the-air update.
Breaking changes: none
Base hash (check with +trouble):
0v9.fndqs.eva7g.c06pq.b802f.cpgvm.pjami.si695.bj6l9.jeqcf.cg0nl
Release notes:
- Bitcoin wallet app release
- Introduces new views for group feed
Contributions:
Isaac Visintainer (57):
   btc: post merge cleanup
   btc: added tile
   btc: frontend template
   btc: more frontend template stuff
   btc: provider/wallet setup flow
   temp commit: beginning balance and transactions page
   temp: fix balance issue
   btc: fix issue with wallet generation from master ticket
   btc: unconditionally re-request address-info for watched addresses
   btc: record history for transactions that occur outside wallet flow
   btc: transaction history
   btc: address copying
   btc: some frontend cleanup
   btc: check if payee has wallet; allow sending to external addresses
   btc: fix transaction ordering
   btc: currency rate polling and reducer
   btc: fix currencyValue in transaction.js
   btc: allow unsetting provider; let frontend know if wallet is removed
   btc: fix issue with channel-js resubscribes
   btc: improved initial loading display
   btc: fix prod build
   btc: improved transitions and error handling for startup modals
   btc: fix issue with channel-js part 2
   btc: bug and style fixes for transaction history
   btc: add icon
   btc: address validation; loading states in sending flow
   btc: js hash check generator
   btc: route network info from top level
   temp
   temp 2
   btc: first pass on fee selection
   btc: retry logic for unconfirmed balance, show it on frontend
   btc: add tile
   btc: add warning message
   btc: finish fee picker
   btc: blur and warning typo
   btc: attach note to transaction
   btc: fix history bug
   btc: settings page
   glob: generalize
   btc: update hash verification process
   btc: switch feepicker
   btc: copy truncated address
   btc: feepicker dismissal
   btc: persist preferred currency; clean up btc currency style
   btc: connection status styling
   btc: provider now has one heartbeat for all clients
   btc: change tile to svg
   btc: invoice error handling
   btc: stop putting so many things in window
   btc: switch network to bitcoin
   btc: link to
urbit.org to learn more about wallet
   Merge pull request #4940 from urbit/release/bitcoin-wallet
   Merge pull request #4943 from urbit/mp/btc/remove-import
   glob: fix +trouble
   glob: don't flush state when upgrading
   Merge pull request #4945 from urbit/ixv/fix-glob
James Acklin (1):
   chat: no s3, no blank space
Liam Fitzgerald (14):
   Settings: correct default keybinds
   interface: fix tsc errors
   GroupFeedHeader: do not mutate state
   interface: add jest for unit testing
   tokenizeMessage: refactor, add tests
   interface: add more stories
   interface: add chromatic to CI
   RemoteContent: add stories
   interface: fix chromatic CI
   interface: run chromatic on push to update baselines
   Comments: fix deletion
   btc-wallet: standardise build process
   Merge remote-tracking branch 'origin/release/next-userspace' into lf/chromatic
   interface: prevent storybook flake
Logan Allen (37):
   graph-store: add deep-subset scry that allows one to scry for an upper bound of ordered items by time
   graph-store: change scry name
   graph-store: updated deep-node retrieval to use +tab
   Merge branch 'la/sys-fast-orm' into la/deep-graph
   Merge branch 'master' into la/deep-graph
   graph-store: make it compile
   graph-store: properly take a deep tabulation
   interface: fix urbit/landscape #749
   interface: truncate at 90% width instead of 100% to allow for a touchable zone to get to comments on mobile. fixes urbit/landscape #826
   interface: first pass at writing BigIntArrOrderedMap for flatGraphs
   interface: flat timeline first pass
   interface: work on threading
   graph-store: threading scry
   interface: use proper method names for fetches
   graph-store: fix parsing of firstborn scry path
   interface: added thread reducer and basic thread view
   interface: visually distinguish thread view
   graph-store: add index validation
   interface: improve general sanity of timeline / thread rendering
   graph-store: remove sigpam
   Merge branch 'release/next-userspace' into la/deep-graph
   Merge branch 'release/next-userspace' into la/deep-graph
   interface: wip reducers with immer
   interface: make pending messages work for flat graphs
   interface: display last item of thread properly
   Merge branch 'release/next-sys' into la/deep-graph
   graph-store: fix firstborn scry
   graph-store: make firstborn scry work starting at any index, not just top-level
   interface: reworked thread view so that one can navigate to it from any child to see the conversation around that particular child
   graph-store: last tweak to make firstborn fetch perfectly
   BigIntArrayOrderedMap: reverse BigInteger arrays before sorting them
   graph-store: fix deep-older-than scry to not mangle indices
   interface: threading works for complex graph structures
   interface: fix replies view
   interface: fix virtual scroller bug of negative offsets
   interface: pending and new message updates work across timeline, thread, and replies
   interface: create proper group feed back button behavior
Matilde Park (17):
   Merge pull request #4928 from urbit/lf/keybind-fix
   Merge branch 'release/next-userspace' into la/deep-graph
   Merge pull request #4904 from urbit/la/deep-graph
   ChatResource: remove extraneous space in mentions
   Merge pull request #4933 from urbit/lf/tokenize-fixed
   Merge pull request #4931 from urbit/james/chat-input-buttons
   tokenizeMessage: accept whitespace chars in regex
   tokenizeMessage: remove console.log, add same check on other regex
   tokenizeMessage: retweak regex, add tests
   tokenizeMessage: clear url parse case
   tokenizeMessage: fix trailing slash case
   Merge pull request #4935 from urbit/mp/landscape/tokenization-links
   Merge pull request #4937 from urbit/lf/fix-deletes
   launch: fix types
   meta: modify devnet build for new glob
   Merge pull request #4934 from urbit/lf/chromatic
   btc: remove urbitrc import
janeway (1):
   glob: update to 0v3.p6u25.2ltvl.kdnbq.a2uq4.9uhqu
janeway-bot (1):
   Merge 61a3ea8028ff18a2f4bf5ed6618b921a8e148bab into release/next-userspace
pkova (25):
   btc: add mvp sending flow
   btc: add unstaged files, fix fingerprint length
   btc: fix walletModal fprint, balance.js initial state
   btc: go to invoice screen only after receiving psbt
   btc: make invoice send btc button reactive
   btc: add final screen for sending flow
   btc: styling improvements in send.js
   btc: styling improvements in invoice.js
   btc: add USD currency conversion rate fetching
   btc: make button in send.js reactive
   btc: propagate psbt state through balance component
   btc: add x to final component in sending flow
   btc: reset psbt state on exit from sending flow
   btc: round denominated amounts on invoice and sent screens
   btc: retry logic for unconfirmed balance, show it on frontend
   btc: add balance events on handle-address-info
   btc: remove unnecessary retry logic, send balance in handle-tx-info
   btc: add basic error handling
   btc: add dust error handling
   btc: add invalid key error handling
   btc: make feePicker position: absolute instead of relative
   btc: add signing through bridge
   btc: overflow-wrap addresses on sent screen
   btc: confirm master ticket on wallet setup
   btc: add reworked urbit-key-generation, fixes in bridge flow
timlucmiptev (295):
   init
   bytees from zpub example
   working zpub to bytes
   working point getting
   consolidate into lib
   parse xpub to unit
   WIP: key derivation *should* be working for I/IL/IR
   all workiing
   use a standard bip32
   Key derivation code samples
   new shit w sur
   start types
   w btc-node
   rename files
   added watched-calls
   working btc-bridge
   watch commands
   btc-node-hook returns responses correctly
   cleaner ping
   polymod works
   clean up decoder
   input verification added
   hash 160
   to-n-bits works
   handle leading/trailing zeros correctly in hash-160
   rename to btc
   WIP: encodes but can't decode on the other end
   works
   touchups
   notes
   bip84 account address getting
   refactor types into sur; initial types
   wip
   hacky version to have generator work
   restrict poke access
   dockerized blockchain parser
   deleted py-scanner; messes up DB
   port JSON functions
   ported RPC actions
   working JSON request and parsing
   move Electrum to GET
   address transformations to HTTP
   fully working address balance getting
   clean up sha256
   naming
   working decode of bech32 to hex
   to-hex as byts
   buffer implementation
   zeros-brip improvements and hash-160 handles 0s
   working prevouts hash
   hashing prevouts/sequences/outputs successfully
   generalize to-script-pubkey
   script-pubkey using buffer
   bech32 uses real address type checks
   sighash-witness works
   WIP: wrote down starting point for hash-legacy
   ECC signing works
   WIP: can partially sign txs
   init wallet as shoe
   re-worked as provider; parse out ElectRS response
   refactored rpc response
   upgrade to hash160/256
   making rpc calls for listunspents
   btc-provider lib
   working lib skeleton; action restriction
   catches error with no endpoint given
   RPC refactor
   mark outgoing RPC wire better
   electrum-rpc gets own sur
   rpc error-handling skeleton
   WIP: hook and store for wallet
   WIP: types as each
   skeleton for btc-wallet-store
   wallet basics compile
   scanning types
   address derivation for BIP84 works
   xpub to cord
   get types straight for next index
   WIP: scanning notes
   gen-address
   scanning types compile
   refactor walt door to one param
   provider response writeup
   notes and scan-done
   change provider types; refactor gen-adress
   wallet-store with watch-address compiles
   WIP: wire up scanning logic
   WIP: compiles with scanning, just need refill
   scanning compiles
   working scanning
   WIP: pend/fail tables
   WIP: integrated, not working
   refactor xpub hashing
   working http error handling
   behn timer added
   ping works
   set state to disconnected on some errors
   working %address-info
   comment fixes
   support for req-id
   type fixes in wallet-hook
   wire up request-ids in wallet-hook
   handle back from provider
   clean up subscribe/leave flow in wallet-hook
   connected updates from provider
   start arch doc
   fix provider connection on ping
   successfully integrate the 3 pieces in barebones form
   arch and remove shoe
   generate address action
   architecture writeup; basic scrys
   WIP: lib/btc-wallet-store refactored
   refactor working
   sysfiles
   WIP: rip out btc-rpc work
   docs, btc-provider refactored
   factored out HTTP/RPC processing to lib
   arch docs
   cleanup old sh files
   wallet store stores last-block
   rename mk-wire
   last-block, update/watch rolled into address-info
   add sponsorship info to readme
   get-block-and-fee
   update block and fees
   new wallet-hook types
   wh types refactor
   WIP: generate address
   WIP: %pay-address
   WIP: random utxo selector
   utxo selection
   refactor select-utxos
   syntax on (list input) cast
   syntax cleanup
   support unit for meta payment info
   return txbu from sut
   moon rate limits
   cleanup
   WIP: handle %generate-txbu
   working raw-tx fetch
   WIP: return txid in %raw-tx
   send out txids to provider
   poym done
   poym works
   skeleton view
   added HTML/JS
   add marks
   stylistic fixes
   zuse installer
   BTC signing removed; type changes
   WIP: refactor dataflow and types
   reverted zuse
   provider time conversion
   get recvd time for each utxo
   all compiling
   send for scanning if not done
   watch logic; ARCH update
   retry on new blocks
   add used field to addi
   WIP: piym and history handling
   working tx vals fetching
   cleanup piym
   extracts PSBT txids
   PSBT docs
   spendable updates for selecting utxos
   wrote %expect-payment
   everything compiles
   refactor UTXO selection
   working %create-raw-tx
   update poym with tx info
   create-raw-tx links to poym
   sensible naming
   generalized buffer for PSBT
   keyval type for PSBT
   type framework for parse
   PSBT docs; parse PSBTs
   working HD path for PSBT
   refactor wallet-store types into btc
   integrated fingerprint
   minor changes
   btc fixes
   ported
   refactor bump-nixt
   wallet scan update
   change address doesn't keep generating gaps
   hotfix to watch ALL addresses requested; txinfo records properly
   minor
   psbt skeleton
   byt concact
   cleaned up byt gates; start encoding gates for PSBT
   rename
   use rev for flip
   hdkey includes pubkey
   fix CRITICAL bug with rawtx byt length
   psbt almost there
   PSBT is correct and parseable
   PSBT is in correct format
   add demo code
   fix a serious change address bug w nixt
   TODO notes
   initial bad-tx error handling
   refactored RPC parsing
   %broadcast-tx types work
   creates tx properly from inputs/outputs
   outputs/inputs parsing
   types update
   working decode
   WIP: new, cleaner TXBU compiles
   working TXBU generation and ID fetching
   support for only doing witness part
   remove %create-raw-tx
   WIP: pioym-to-history
   piym/poym handling of tx
   compiling TX processing
   working JS signing example
   PSBT Signer
   d
   fix txinfo return
   working skeleton actions
   factor out req-id in provider
   WIP: mostly refactored wallet-hook
   refactor compiles
   bug fixes from refactor of req-id
   WIP refactor-hook-actions
   working bit streams
   decode works
   working en/de
   compiles
   fixed bug selecting unspendable UTXOs
   WIP: poym fix to not update until full txinfo comes
   History works
   moon install instructions
   working hash of block addresses
   working
   get N from head of filter
   clean up GCS set creation and filter parsing
   gcs-set as bits
   working initial tests and BTC byt take function
   test
   remove leading size byte from script-pubkey:btc
   implemented base58check and tests
   get blockfilter
   reduce all hex types to hexb
   tests passing for addresses
   working tests
   xpub
   BTC tests work
   done w initial cleanup
   rename stuff
   working fee calculator
   added initial tests
   WIP: standardize tests
   working tests for wallet-store
   working tests for fees
   BIP158 tests done
   refactored tests
   demo adjustments
   tests better
   TX signing works, fixed network selection bug in PSBTs
   first PSBT tests
   no more buffer in hdkey generation PSBT
   .
   get rid of buffers
   cleaner compact-size
   tx encode&decode work
   clean up pokes to wallet-hook
   works
   %delete-wallet support
   null fees possible, expanded whitelists and scrys in provider
   remove dejs verbosity
   WIP: refactor to monolith, testing now
   WIP: still fixing type errors
   working monolith, need to test end-to-end
   demo updates
   monolith works e2e
   WIP: check network on provider updates
   leave subscription when provider changes
   working thread example
   note
   remove arg
   massive refactors
   new group library interface
   touchup
   fixed huge bug in drop:bit
   factor out bitcoin-utils
   re-arrange bitcoin-utils
   WIP: factor apart bitcoin.hoon
   tests work
   refactor compiles
   minor byt cleanup
   demo
   install.sh no longer needs /home suffix in pier dir
   fixes
   fixed bizarre bug with ?-
   end-to-end tested
édouard (1):
   stying edits: small collection of various visual fixes
--