* Add accumulation address cap helper + pair key (Task 1)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Add forceNew + cap enforcement + addressesForOption to accumulation hook (Task 2)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Guard createAddress against re-entrant double-mint (Task 2 review fix)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Add i18n keys for multi accumulation addresses (Task 3)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Add accumulation address + option selector half-modals (Task 4)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Reuse getPairKey in option selector modal (Task 4 review fix)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Group accumulation home by option with per-option count (Task 5)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Manage multiple addresses + option switching in accumulation detail (Task 6)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Guard accumulation detail against externally-emptied option (Task 6 review fix)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Add create-new-address button + direct-address display to deposit QR view (Task 7)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Add address-selector list icon to deposit QR header (Task 8)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Cap-gate create wizard + always mint additional address (Task 9)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* remove manual create button in favor of automatic
* fix select address page
* fix opacity
* improve details page
* fixing translations
* adding dislcimer to address details page
* adding reindex scan
* fixing background color
* fixing camel case var name
* minor correctness fixes
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
* add balance fetch, fix flush bug
* adding success failed flag to restore to make sure we don't accept a failed restore
* add timeout so balance call doesnt hang
* add leaf sync to sync after payments
* add local leaf storage
* create leaf timeout function
* adding leaves function
* adding compatibility for blink recovery tool
* add UI to handle export
* adding function to get root nodes
* fix transaction overlap bug
* adding loading half modal since process can take some time
* cache full exit path to sql
* change wallet leaves to wallet backup, and update icon
* when force mode sync for all leaves not just pending ones
* fix modal double navigation bug
* add wallet backup to doomsday row
* add name as a value to the maps db
* create distance helpers
* map icon names to printed names
* resync maps data to pull names
* update maps UI, add list and filter
* updated translations
* use native modules for map clustering
* 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>
* create currency select page
* use new currency converter on pools page
* use on contribute to pools
* use new currency converter in create invoice path
* use currency converter in analytics page
* use currency icon not flag in settings page
* use currency converter in gift page
* update add money to savings
* adding right content for currency toggle
* slightly increase size of input
* create currency switch button
* new helper function for currency display
* update contacts input pages
* adding tests
* adding currency select page to half modal
* adding send and requset pages
* update translations
* make receive page match input amount
* carry payment denomination to confirm screen
* update CustomInputHalfModal to new currency toggle
* fixing currency + display bug
* fix backnav and input
* standardized chain row sizing
* add back to online listings
* add back to gift quantity page
* add back button to view tokens page
* update pool half modal to back button
* Added back button to swap flow
* adding back button to savings pages
* Add i18n translation keys for deposit page
- Add 16 new keys to wallet.halfModal for deposit UI (depositFunds, onChainBitcoin, stablecoins, etc.)
- Add 'deposit' key to wallet.homeLightning.home
- Add sparkReceivePage section to screens.inAccount
- Apply changes to all 8 locale files: en, es, fr, de-DE, it, pt-BR, ru, sv
- Non-English locales use English placeholders (to be translated by translators)
- Brand names (Bitcoin, Lightning, Spark, Cash App, Liquid, USDC, USDT) preserved in English across all locales
* Add forcedDestination prop to CreateAccumulationAddressModal
When forcedDestination is provided, pre-sets the destination and skips
the destination selection step (chain → confirm directly). Back navigation
from confirm also returns to chain instead of destination.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add SparkReceivePage for displaying Spark address with QR code
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Register SparkReceivePage in navigation
Add import of SparkReceivePage from app/screens/inAccount and register it in SLIDE_FROM_RIGHT_SCREENS array.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add HalfModalDepositFunds component with 5 deposit method tiles
Implements the deposit funds half modal with on-chain Bitcoin, stablecoins,
Cash App (US-only), Spark address, and other Bitcoin tiles, plus animated
subviews for Cash App invoice generation and stablecoin accumulation address flow.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Fix 5 bugs in halfModalDepositFunds: animation, pointerEvents, toast, back handler, i18n
- Fix 1: Replace single shared-value animation pair with per-subview shared values so
exit animations play — both subview containers are always mounted, animated in/out
- Fix 2: Add pointerEvents to options Animated.View so hidden tiles can't be tapped
- Fix 3: Show invoiceRetrivalError toast when Cash App invoice generation fails or throws
- Fix 4: Add useHandleBackPressNew so Android back navigates subview→options, not exit
- Fix 5: Wrap hardcoded "View details" in t() with wallet.halfModal.viewDetails key
added to all 8 locale files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add depositFunds and receiveMethodOptions cases to halfModal renderContent switch
* Add 'Other receiving methods' button to receive page
Adds a new button at the bottom of the receive page that opens CustomHalfModal
with receiveMethodOptions content. Uses existing navigation, translation key,
and imported components.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add deposit button, receive method options modal, and fix post-review issues
- Replace Camera button with Deposit (Plus icon) on home screen, navigating
to depositFunds half modal
- Add halfModalReceiveMethodOptions component with Lightning/On-Chain/
Stablecoins/Spark/Other Bitcoin tiles
- Fix forcedDestination in handleBackPress useCallback deps
- Fix i18n key path from screens.sparkReceivePage to screens.inAccount.sparkReceivePage
- Add all wallet.halfModal and screens.inAccount.sparkReceivePage keys across
all 8 locale files (en, es, fr, de-DE, it, pt-BR, ru, sv)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* add qr button to navbar
* update settings accumulation path
* creating others option
* remove old options pages
* make sure to never double create accumulation addresses
* adding bank icon
* finalizing new deposit path
* adding translations
* update translations
* show paylink insted of ln path
* update halfmodalsend options + depotis address options on homescreen
* fix translation
* ading back skip for ln path
* updated qr code style
* updated deposit path to show qr in modal not to receive page
* update slider height
* update create invoice, pools, and add contact overlay paths
* update qr wrapper styles
* add min amoutn warning
* add description back to edit payment information
* use 1 dollar as floor for usd invoices
* add paylink half modal
* update receive btc page
* updating translations
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.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
* adding contact loading error message translation
* changing title from lnurl to receive currency
* matching style to main payment selector
* fix bottom padding
* respect prefetched data
* respeect previous enterPaymentInfo
* add users endReceiveType
* add users endReceiveType
* make sure we only say we cannot edit when we come from accept and have an amount
* added contact prefech to handle endreceivetype
* fixed final payment info
* use max amount not min amount
* add retry to firebase fetch
* fix currency mismatch
* adding new translations
* migrate USD > BTC LN to orchestra
* adding orchestra tests
* updating call locations
* add exponential backoff + resubmit swap quote if first time failed
* show failed Tx and add support button
* minor fixes
* bump timeout to 1 min
* making sure usd quote doesn't block btc
* adding return key type to CustomSearchInput
* fix android crash
* adding receive currency type selector
* addding lnurlReceiveCurrency to masterinfoobject
* creating name and bio regex
* remove hardcoded strings
* fix receiveAddress not updating
* adding auto-focus to savings goal
* if using usd use zero amount invoice not lnurl since lnurl will go to usd not btc balance
* fix theme
* adding translations
* adding new edit flow
* fixing translation + dup keyboard
* chore: ignore .worktrees/ directory
* fix amount validation errors
* fix rounding issue when fixing to 2 decimals
* fix amount validation for swaps + move buffer to standarized function in payments
* adding ln swap limit which is different than other swap limits
* using lightning max
* remove adding fee to on-chain payment
* fix onchain and ln min swap
* fix amount calculations
* fix paste error bug
* adding lnurl fee calc
* fix budget warning
* fix input amount bug
* removing double fee + invoice generation calls
* early return swaps so they dont get caught by phase 5
* making sure we account for amount out value differnce when perfoming a swap
* fix decimal rounding bug
* fixed gift denomination issue
* fix small style issues
* fix touch gap
* fixing podfile
* creating standardized amountIn function
* show tx ids not amounts
* use standardized amount in
* use standardized amount in
* fixed no payment information crash
* downgrade rn and react-native-quick-crypto
* only show margin if two elements exist
* adding backup amount
* wait till hompage to call analytics data
* fix restore bug
* updating firebase
* fix check logic
* wrap to handle thrown execptions
* use utils package directly
* adding error handling
* group notification payments insted of handling them sequentually
* handle payment requset on confirm page
* improving split payment ux
* adding translations
* adding firebase sdk warning
* 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>
* creating add friends page
* created bulk contact retrival
* created profile image row reusable componenet
* created atmoic bulk updates function
* add publishBulkMessages using atomic bulk updates
* fixing border radius
* turning wordQrToggle into a global componenet
* adding profile row to invoice info
* adding + icon to send and request page to go to bill split
* adding split bill pages
* adding bulk payment requsets title to page
* adding fufillSparkInvoices to webcontext
* Add currency pass through variable
* add counter to number of splits
* fixing padding issue from container
* adding input currency for bulk payments
* add helpfull label to no selection state
* building create split bill screen
* fixing z index
* adding bulk payment ids to restore so we dont show duplicate payments
* adding bulk payments UI to receipts page
* optimizing getBulkPaymentGroupTransferIds
* adding batchTransferTokens to webveiw
* creating new spark functions to handle bulk payments
* use dedicated split bill payment screen
* creating confirm screen and payment function
* adding translations
* fix confirm tx page
* standarizing title
* fixing style and titles
* fix create style and UX
* fix button label
* remove transferid
* update presendPageParsing to handle address with amounts
* adding method to correctly navigate to send usdc or usdt path based on address params
* adding unsupportive token message at top of page stablecoin params page
* handling prefilled amount
* adding supported tokens translation
* fix margin
* 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
* increase button width
* reworking hompage
* removing button opacity
* update zapstore
* fixed txs not loading on restart
* always run balance check
* fixing blance cache and withdrawl direction
* adding load more button to transactions
* fixing missing translation
* preload user balance for better UX
* adding full page no tx message
* fixing continue action without any balance
* adding text to buttons
* fixing text resize bug
* improving no contacts message in half modal
* 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
* adding currency to send and currency to request
* standardizing input denomination and usePaymentValidation
* making ChoosePaymentMethod work with contact requests
* rewroking gifts path
* adding dollar format to notifications
* fixing placeholder text align bug
* updating conversion functions
* fixing edit gift bug
* only allow sending to btc from lnurl contacts
* adding fiat value to contacts transactions
* adding contact details to token transactions
* updating send and requset page to handle usd, bitcoin, and gift payments
* fix eslint
* handling contacts payment logic
* fixing paying bitcoin gifts with dollars from contacts
* adding translations
* fixing requests using payment validation
* fixing amount display when confirming payment
* default payment option to selected send option
* fixing display value
* only use backhandler for custom actions, otherwise leave to device
* fixing gift cards navigate
* removing uneeed keyboard check. On android the keyboard is closed before back handler gets to navigation
* making sure we block androids native back handler
* fixing missing back function
* revert to legacy function for now
* fixing opacity bug
* adding ability to force USD as fiat amount on custom input halfmodal
* update list to handle fiat gifts
* adding usd to confirm screen
* fixing processing for usd gifts
* adding usd to create and claim gift pages
* fixing andvanced claim balance denomination issue
* add in buffer amount to swaps + checks on output amounts
* finalizing dollar gifts
* 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>