* buliding new auth setup to remove race condition during login
* revert complex fix. Just add local is loaded property
* Apply suggestion from @bitcoinuser
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
---------
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* building send and replace settings context
* adding translations
* fixing double parse
* adding spend and replace flags to send txs
* adding listener to handle sar payments
* add tx descripion handler for sar payments in restore
* making sure sar key is fetched during app load
* split toast manager and toast continer
* adding tests
* adding custom sar payment title to toast message
* removing spark sdk navigation
* adding sarPayment mark to transaction table
* pass poolInfoRef from context to remove fetch if value is already set
* remove spark naviagtion listener
* fix btc -> usd swaps not calling sar
* finalize spend and replace
* fix timeout mismatch
* adding usablePaymentMethod to narrow eligiblility
* block requsets if account switches
* remove duplicate storage and keep all referances to keyscontext
* steralize writes to fix overlap issue
* docs: add portfolio chart design doc for analytics page
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs: add portfolio chart implementation plan
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: add buildDailyBalances helper for portfolio chart
Implements pure function to reconstruct daily closing balances for the
current calendar month from transaction data. Used by analytics dashboard
to display balance history per day.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: guard buildDailyBalances against cross-month transactions
* feat: add PortfolioChart SVG component
* fix: use unique gradient id in PortfolioChart to prevent collision
* feat: add portfolio value chart to analytics page
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: budget card was showing spentTotal instead of leftToSpend
* docs: add balance pie chart design doc
* docs: add analytics charts redesign doc
* adding chart library
* making sure privacy sets for each wallet
* fixing pos server name bug
* switch toggle theme to analytics page
* fixing text align for close pool
* adding monthly buget to masterInfoObject
* creating AnalyticsProvider
* adding buget constants
* use new chart library
* building analytics homepage
* creating sent and received analytics pages
* creating budget pages
* adding analytics to navigation pages
* add budget helpers
* creating buget warning component
* adding budget warning to send pages
* fixed spelling bug
* fixing color inconsistancy
* fix dup key bug
* making sure to warn if current payment puts user over or near budget limit
* adding translations
* fix preset amount format
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* adding deeplinks to android
* adding deeplink handling for paylinks
* fixing deeplink regex and navigating strait to sendPaymentScreen
* create function to get paylink doc
* add paylink handler to decode send address to handle deeplinks
* fixing user balance not being visible on send page
* using reset to override any half modals currently active
* adding confirmation handling for paylinks to send page
* fixing linecount from button bug
* moving to shared hook
* creating paylink creation path
* adding translations
* add receiverIdentityPubkey to receiveSparkLightningPayment and build createSatsInvoice
* increase height for better touch action
* fix spelling issue
* add new half modal path for paylinks
* adding translations
* creating pool context + deeplinks
* adding pool constants and avatar themes
* creating circular progres bar
* creating contributor avatar
* creating contributions grid
* increasing minimum input height
* creating pools storage and deleting pools on reset
* create pools wallet function
* create pools db functions
* fixed token name cuttoff bug
* adding pool as a half modal receive option
* create pool screens
* adding translations
* fixing contribution and closing pool tx labels
* only refresh active pools
* add starter for swaps
* creating swap page
* building better swap functions
* creating select send type page
* bumping flashnet version
* fixing polling manager to inclue both increases and decreses to balance
* updating swaps page to use custom keyboard entry + enter in from or to amount
* adding basic support for chosing payment amount
* remoing log messges
* creating user balance context to easily use total, sat, and usd balance
* remove uneeded imports
* fixing navbar balance to match selected balance
* filter txs based on chosen balance
* fixed select page header text size
* created flashnet txid tracker to keep homepage clean
* adding swap function to payments wrapper
* using total balance in navbar balance
* fixing navbar balance
* load saved swaps on wallet init
* finishing swap page
* adding translations
* adding temp txs to swaps so the txs always show
* adding error messages to flashnet
* adding ability to pause animation
* adding start at begining animation
* standardize tokens display format
* fixed missing return
* create function to decode spark invoices
* creating flashnet provider to hold flashnet pool info
* use global pool info to speed up loading speed
* fixing icon style inconsistancy
* using flashnet rate more more accurate USD value
* adding bitcoin and dollar icons
* creating toast message for incoming ln swap
* removing native tokens amount display, only show formatted amount
* adding new icons
* creating dollar sat, dollar token values
* fixing USD user sat amount display
* creating select receive asset page for receiveBtcPage
* adding dollar receive type to LN and Spark
* handing swap receive payment on homepage
* using new dollar and bitcoin icons
* fixing number fomatter
* fixing wallet load balance bug
* adding denominations to swap balances
* exporting for flashnet use
* increasing modal height
* fixed swap amount conversion bug + formatted error messages
* adding webview processes to functions
* since lightning payments can now be lrc20 payments we need to specify spark here so the id is the correct format.
* updating bitcoin icon
* updating address parser
* creating regex to extract flashnet error code
* adding loading to fee when calculating swap
* adding failed tx hash to flashnet transfer
* adding flashnet transfers to webcontext
* remove hardcoded value
* blcok all failed txs
* mark auto-refunded flashnet swaps as failed
* allow failed txs to be added to database. Now they are blocked on the homscreen
* optimizing ln invoice match during restore
* fixing translation
* adding ln -> bitcoin swap + limits context
* removing unneded imports
* adding retry to balance + fixing wallet state change + moving swaps to flashnet context
* load saved transfers on context init
* use new poolInfo format
* adding payment logic for swaps
* adding freeze property so balance doesnt update on send page
* updating fee information
* adding fee warning to receive page
* adding conversion rate line
* fixing fee rate on receive page to not convert
* creating conversion utility functions
* getting current bitcoin price based on swap rate
* adding amount validation + making min half amd max more accurate
* adding estimated converted amount to receive page
* fixed variable naming
* adding swap payments logic to sending
* adding translations
* updating swap context
* increasing slider duration
* waiting for wallet to init before starting swap page init process
* fixing eslint
* fixing naming convention
* fixing height issue
* changed txt labels to percent amounts
* fixed dollar balance not showing for USD
* fixing payments to ln addresses with encoded spark invoices
* fixing converted amount
* fixing cuttof fee text
* making sure usdb doesn't trigger full tokens display
* updating swaps flow
* fixing usd txs not displaying on homescreen when lrc20 is not enabled
* fixing balance mismatch
* adding tap to switch sats to fiat on send page
* fixing fee and input bug
* fixing rate bug
* removing uneeded second button tap
* fixing double execution of same swap
* fixing inputs being unmatched
* adding automatic refund listener for swaps
* bumping version code
* updating translations
* fixing zero amount invoice validation
* fixed rouding error
* only show swap conversion on home and dollar page
* removing swaps description from pending tx
* making swap payments have type swap
* adding execution price and swap label to swap transactions
* adding checks for pending payments
* removed error showing on screen
* updating translations
* bumping version code
* making sure fees calcuate on user-choice as well
* fixing theme issues
* fixing dollar sat balance
* creating choose payment component
* bump version code
* fixing half modal slide out animation
* updating payments flow
* separating spark and flashnet inits
* cache pool info to fix sat balance on init
* updating translations
* removing sat value for swap payments
* bump version code
* remove old handler
* fixing fiat display bug
* persisting keyboard on taps
* making fee more accurate if paying bolt11 invoice with spark address inside
* making fiat search more broad
* allowing fast pay to be set using andriod buttons
* adding request title to contacts send and request page if requesting
* fixing button opacity
* adding tap to scroll up feature on contacts page
* adding helpfull errors
* updating overlay color for lightsout mode
* adding button to scroll to top on homepage
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
---------
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* creating centralized location to handle stale background state
* adding global background threashold
* creating auth context
* disconnecting from liquid node during force auth
* reset did get to homepage variable
* fix crash if globalContactsInformation.myProfile is not set
* resetting custody account settings
* clearing keys information on reset
* remove roostock swap listener on reset
* resetting webview context on stale auth
* adding auth reset to spark context
* only load user info once per session
* only open tables once per session
* making sure to recheck login status to fix issue with initial load
* adding large heap flag
* fixing sql table open bug
* making sure didLoadUserSettings runs on app open
* fixing unqiueName being null bug
* fixing race condition causing switch to naive spark version
* misc changes
* adding gift icons
* adding uuid generator for gift id
* adding gift page to home navigation
* fixed toast overlay
* adding rotate icons
* gifts index page
* created gifts overview page
* create gift pgae
* fixing expire time
* gift confirmation screen
* manual claim page
* derive hirarachical wallet for gift
* encoding and decoding gift urls
* formatting days till expiry time
* standardized gift share message
* creating gift storage
* opening and deleting gifts table
* adding firebase gift functions
* adding gifts deeplink
* creating gifts context
* added tracking for gift index
* fixed wrong translation placement
* creating reclaim gift page
* auto open claim page
* creating claim page
* updated reclaim to work off uuid not claim link
* fixed translations issue
* added restore gifts
* adding description to payment
* fixing android text styles
* fixing android status bar style
* fixing claimed state
* show all txs but then list the expired ones on the reclaim page
* adding translations
* updating min height
* making sure spark is connected before handling lookup
* fixed exists property
* allow only reclaim of expired swaps
* fixed style bug
* adding recliam not exipired error message
* adding connection label to expanded gift page
* fixed unknown sender text bug
* added confirm screen + pending tx for incoming gift
* only show claim option if a reclaim exists
* uncomment pay
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* Update locales/pt-BR/translation.json
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
---------
Co-authored-by: bitcoinuser <bitcoinuser@users.noreply.github.com>
* adding splash images for android
* adding ios splashscreen image
* adding splashscreen to ios
* removing overlay to make it consistant across platforms
* add coins icon
* move BTKN toggle to display options
* adding token images to tokens list
* adding tokens images to select token page
* creating tokens image object
* fixing tokens name length bug
* adding tokens icons
* adding placeholders for dollars
* force enabled tokens
* update enabled tokens to new variable
* added default token + settings toggle to spark info page from display options
* adding defaultSpendToken to masterInfoObject
* fixing tokens balance not updating when receving a new token
* fixing send max balance bug
* adding default and select token to send page + moving select page to half modal
* preventing double tx run + fixing legacy fee warning + description styling on small devices
* fixed issue where user has prior tokens in transaction list but no current balance
* fixed text and image align issue
* fixing dropdown
* making sure default token is always Bitcoin if tokens are not eneabled
* testing webview
* adding webview code
* fixing on-chain payment from using endpoitn before confirmations
* fixed color bug
* fixing sats text
* fix eslint
* remove uneeded flatlist
* fixing accounts swaps
* fixing tabs rerender issue
* fixing missing props
* removed prop drilling
* add swap state to android
* fixed double run bug
* fixed tokens confirm balance + added infinity symbol if token doesnt have max supply
* adding auth to encription
* only run on-chain restore once a minute
* remove debugging
* commenting webview for later use