* chore(regtest): do not build tor locally in regtest env
* feat(import): add rescanning param to session request
* feat(api): add rescanblockchain request to JmWalletApi
* feat: add import wallet button to wallets page
* refactor: externalize component PreventLeavingPageByMistake
* refactor: externalize component WalletCreationForm
* wip: use WalletCreationForm in ImportWallet
* refactor: externalize SeedWordInput and rename to MnemonicWordInput
* feat(api): add wallet recover request to JmWalletApi
* build(deps): bump caniuse-lite to v1.0.30001511
* wip(import): start wallet after successful import
* refactor: externalize component WalletCreationConfirmation
* wip(import): use WalletCreationConfirmation view in component WalletImport
* dev(regtest): add funds to dummy wallet during initialization of local setup
* wip(import): update gaplimit before rescanning chain
* wip(import): prevent import if rescan is in progress
* wip(import): ability to customize gaplimit and blockheight
* wip(import): show duration hint when importing wallet
* wip(import): hide sensitive info while importing wallet
* wip(import): reset gaplimit to original value after importing
* wip(import): add description for blockheight and gaplimit
* wip(import): add cancel button to WalletCreationForm
* refactor: externalize component MnemonicPhraseInput
* wip(import): show rescanning indicator on main wallet view
* wip(import): show rescanning indicator in navbar
* wip(import): disable sending when rescanning is in progress
* wip(import): disable navbar/earn/jam when rescanning is in progress
* Update src/i18n/locales/en/translation.json
Co-authored-by: openoms <43343391+openoms@users.noreply.github.com>
* fix(import): disable viewing jars on main wallet if rescanning is active
* wip(import): prevent creating new address when rescanning
* fix(import): reload wallet info after rescanning finishes
* refactor: move auto reloading code from WalletContext to WalletInfoAutoReload
* refactor: remove unused method reloadDisplay
* wip(import): reload recursively till balance is found
* wip(import): expand import options by default
* ui: add 'dev' badge to buttons only visible in dev env
---------
Co-authored-by: openoms <43343391+openoms@users.noreply.github.com>
* refactor(UtxoList): prevent re-rendering of list items
* ui(UtxoList): highlight frozen UTXOs
* ui(UtxoList): font and bg color for tags
* ui(UtxoList): remove redundant frozen tag
* feat(UtxoList): sort UTXOs by tags
* ui(UtxoList): shorten address on smaller screens
* ui(UtxoList): shorten fb tag by moving locktime to toolip
* ui(UtxoList): increase font-weight for balance
* ui(UtxoDetailsOverlay): fixed min-width for header title
* refactor: prevent re-render confirmations node
* feat: ability to quickly freeze/unfreeze single UTXO
wip: still work-in-progress; icons needs to be updated
* ui(UtxoList): display freeze buttons only on UTXO selection
* ui: move quick freeze toggle column to front
* ui(UtxoList): use sun icon for unfreezing
* ui: use header loading indicator when freezing/unfreezing
* ui(UtxoList): hide hover actions on small screens
* ui(UtxoList): gray-out fidelity bond utxo
* chore: rename UtxoDetailModule -> UtxoDetailModal
* fix: disable quick actions if maker/taker is running
* fix: proper freeze/unfreeze icons
* fix: gray-out not only locked but all fidelity bond utxos
* fix: freeze/unfreeze icons from figma
* fix: pass AbortSignal to freeze calls
* dev: ability to append content to ExistingFidelityBond component
* refactor(i18n): add global.errors keys
* fix: improve resolving of api error messages
* refactor: use generic 'spendUtxosWithDirectSend' method
this method can lator on be used to send a fidelity bond
to an external destination, renew the fidelity bond, or
generally send selected utxos without manually freezing/
unfreezing them before.
* refactor: externalize PaymentConfirmModal
* dev: sort fidelity bond by value and lock state
* refactor: prevent unnecessary rerendering of Balance component
* ui: always display FB utxos with lock icon in JarDetails
* feat: add refreshConfigValues to ServiceConfigContext
* chore: add api method to post config values
* feat: add updateConfigValues to ServiceConfigContext
* feat(fees): ability to update fee specific config vars
* chore(fees): display error message on update failure
* chore(fees): add block sprite and adapt description
* ui(fee): wrap form sections in accordion
* feat(fees): add ability to set fee randomization factor
* ui(fees): use placeholder instead of loading spinner
* fix(fees): proper error messages depending on fee value unit
* fix(fees): dont decline zero as input value
* chore(fees): wording
* fix(fees): sats/vbyte mininum is exclusive
* refactor: move percentage/factor functions to utils
* fix(i18n): number strings
* feat(fees): improve wording
* fix(i18n): title case for title
* feat(fees): remove superfluous label
* feat(fees): improve wording
* feat(fees): more realistic example
* fix(fees): consistency; vbyte -> vByte
* fix(fees): consistency; satoshi -> sats
* feat(i18n): better verb
* feat(fees): maker -> collaborator
* Revert "feat(fees): remove superfluous label"
This reverts commit 20937aee1d.
* feat(fees): improve wording around base fee and block target
* fix(fees): parse max_cj_fee_abs as integer
* fix(fees): min/max value for absolute fee
* fix(fees): parse block target as integer
* fix(fees): allow 0% maximum relative fee
* fix(fees): use 'absurd_fee_per_kb' as upper level for fee
* chore(fees): lower max relative fee val from 50% to 20%
* fix(fees): let users specify 1sat/vbyte as fee
This is special case in that it will be translated to
1.001 sats/vbyte afterwards. This might be surprising to users
but it was decided that this is better than telling them that
the min is 1.001 from a UX point of view.
* fix(fees): add language attribute on form element
* feat(fees): improve wording & remove fee from label
* feat(fees): better fee randomization wording
* feat(fees): better fee label wording
* feat(fees): use smaller numbers in example
* feat(fees): improve wording
* feat(fees): improve wording
* feat(fees): improve base fee wording
* chore(fees): remove dead code
* ui(fees): colorize accordion header on form errors
* ui(fees): add info icon to cj fee description text
* fix(fees): wording
* docs(fees): fix typo
* chore: fix comment
* review(fees): lower max valid form value for absolute fee
* review(fees): lower max valid form value for relative fee
Co-authored-by: Gigi <109058+dergigi@users.noreply.github.com>
Co-authored-by: Gigi <dergigi@pm.me>
* style(svg): add jamColor to all jars
* feat: add jar flavor based on index
* feat(jar): named jars with bold initial
* feat(jar-detail): use initial, not index
* feat: "Jar #{n}" -> "Jar {X}"
* feat(send): use full name in from & recipient
* feat: add tabbed control to jar overlay
* feat: add utxo table
* refactor: clean up overlay container
* refactor: clean up table
* feat: add alert
* refactr: re-add utxo modal
* refactor: add back old account details view
* refactor: delete old files
* fix: tests
* feat: add confirmations and refresh button
* fix: class name
* fix: paddings
* fix: acccordion shadow
* fix: bs colors
* fix: remove utxo conversion where not needed
* feat: i18n
* fix: button active color
* Update src/components/jar_details/JarDetailsOverlay.tsx
Co-authored-by: Thebora Kompanioni <theborakompanioni@users.noreply.github.com>
* fix: use lockgime from property instead of status
* fix: disable freezing and unfreezing when service is running
* fix: do not allow locked utxos to be unfrozen
* fix: make sure tab and content are in sync
* feat: add sorting by confirmations
* feat: add reset position to sort toggle
* fix: switch cancel button placement
* fix: right-align value column
* Update src/components/jar_details/UtxoList.tsx
Co-authored-by: Thebora Kompanioni <theborakompanioni@users.noreply.github.com>
Co-authored-by: Thebora Kompanioni <theborakompanioni@users.noreply.github.com>
* feat(settings): add link to Jam twitter
* feat(settings): add link to Matrix
* fix(settings): repo rename
* feat: add matrix logo to sprite.svg
* fix(components): repo rename
* dev: add simple fidelity bond screen in advanced mode
* dev: add link to fidelity form page in CurrentWalletAdvanced
* dev: fix build errors and remove 'as' tag of translation elements
* refactor: move FidelityBondAdvanced component to own file
* ui: highlight expiry date of fidelity bond address
* dev: display Fidelity Bond create form regardless if FBs already exist
* dev: avoid flickering when loading new fb address
* fix: rename Locktime to Lockdate
* dev: add translation strings to section 'global'
* wip: FidelityBondSimple
* review: distinct simple and dev mode Fidelity Bond screens
* review: fix dev FB view in dark mode
* refactor: rename FidelityBondAdvanced to FidelityBondDevOnly
* dev: add link to default view to FidelityBondDevOnly
* dev: sort utxo by value
* dev: reset user confirmation on data change
* dev: create fidelity bond with collaborative transaction WIP
* dev: wait for collaborative transaction to finish
* dev: unfreeze utxos after creating sweep tx
* review: render whitespace only when necessary in FB alert
* review: do not provide time related values to Date.UTC for FB
* Update src/components/FidelityBondDevOnly.tsx
Co-authored-by: Daniel <10026790+dnlggr@users.noreply.github.com>
* review: do not duplicate 'initialLockdate' values
* dev: allow lockdates in the past in dev mode
* dev: display percentage of utxo to total value in account
* dev: style percentage bar
* dev: display percentage bar in account selector
* dev: i18n for 'time elapsed' phrase
* dev: externalize components UtxoSelector and UtxoCheckbox
* dev: externalize components AccountSelector and AccountCheckbox
* dev: externalize LockdateForm
* dev: externalize FidelityBondDetailsSetupForm
* dev: display all accounts by default in FB form
* refactor: remove unused vars and imports
* dev: fix comments and add todos
* dev: minimal i18n for FB form
* ui: remove account/utxo checkbox overlay
* dev: add checkbox-card component
* dev: show unit of funds according to settings in FB form
* dev: allow already expired lockdates in dev mode
* dev: use minimum makers to create fb
* refactor: combine FidelityBond and FidelityBondSimple
* dev: undo coin control setup on errors
* dev: perform coin control actions sequentially
* dev: use direct-send when renewing an expired fidelity bond
* review: improve code readability
* review: do not return value from function 'sweepToFidelityBond'
* dev: log timelocked address to console in dev mode
* review: remove FidelityBondDevOnly component
* review: use dropdowns in lockdate form
* Update src/components/FidelityBond.tsx
Co-authored-by: Daniel <10026790+dnlggr@users.noreply.github.com>
* dev: add debug feature 'allowCreatingExpiredFidelityBond'
* review: fix var naming
* review: fix comment
* Update src/components/FidelityBond.tsx
Co-authored-by: Daniel <10026790+dnlggr@users.noreply.github.com>
* Update src/components/FidelityBond.tsx
Co-authored-by: Daniel <10026790+dnlggr@users.noreply.github.com>
* dev: unfreeze sequentially after fidelity bond tx was created
* review: remove ability to select multiple jars
* review: add tests for fb utils
* review: remove coin control
* review: reflect missing coin control in account checkbox
* review: remove time elapsed string from fb summary
* dev: add taker started alert to FB screen
* dev: reset lockdate form if date is invalid
* dev: reload after taker operation
* dev: add calculated total balance to useBalanceSummary hook
* dev: handle expired timelocked funds in useBalanceSummary hook
* dev: use isLocked to detect if freeze/unfreeze is enabled
* dev: fix build
* refactor: proper var names
* dev: show success msg only if fb has been created successfully
* dev: do not wait for collaborative tx to finish
* dev: direct-send if renewing FB
* dev: utilize 'isLocked' in CurrentWalletAdvanced and Jam view
* dev: link to FB view in Cheatsheet
* dev: utilize 'calculatedTotalBalanceInSats' where possible
* Update src/components/FidelityBond.tsx
Co-authored-by: Daniel <10026790+dnlggr@users.noreply.github.com>
* review: adapt error handling style on FB sweep tx
sorry @dnlggr for letting this slip in _again_
* review: always show all accounts in FB form
* review: initial lockdate should be 3 month from now
* review: move YearsRange and initialLockdate to fb_utils
* review: display month names
* review: wrap rows in container
* review: remove unnecessary comment
* review: left-align confirmation toggle in FB form
* review: turn accountBalances from array to object
* Update src/i18n/locales/en/translation.json
Co-authored-by: Gigi <109058+dergigi@users.noreply.github.com>
* Update src/components/FidelityBond.tsx
Co-authored-by: Gigi <109058+dergigi@users.noreply.github.com>
* review: remove initializing flag
* review: show timelocked address in confirmation step
* test: add test for LockdateForm component
* test: add test for _minMonth
* test: add test for _selectableYears
* test: add test for _selectableMonths
* ui: fix table in light theme
Co-authored-by: Daniel <10026790+dnlggr@users.noreply.github.com>
Co-authored-by: Gigi <109058+dergigi@users.noreply.github.com>
* refactor: DisplayBranch from jsx to tsx
* ui: improve DisplayAccountsOverlay on mobile screens
* ui: show derivation path below branch title
* ui: abbreviate hd path in DisplayBranch component
* ui: add copy functionality to DisplayBranch
* ui: branches as accordion in DisplayAccountsOverlay
Co-authored-by: Daniel <10026790+dnlggr@users.noreply.github.com>
* fix: align text in buttons on Settings screen
* fix: buttons and dropdowns should have same look and feel
* ui: add section titles 'Wallet' and 'Community' to settings page
* fix: open link to translation help page in new tab
* ui: add plus symbol to 'Create new wallet' button
Co-authored-by: Daniel <10026790+dnlggr@users.noreply.github.com>
* fix: disable sending if maker or taker service is active
* ui: blur send form when taker or maker service is running
* fix: prevent unfreezing of fidelity bonds before locktime is over
* refactor: expose mechanism for reloading service info to components
* fix: reload service info on send page
* ui: add caret-right icon to info alert when maker is running
* feat: add cheatsheet
* show cheatsheet only when wallet is active
* display cheatsheat in dev mode only for now
* add close button to cheatsheet overlay (for mobile users)
* ui: visualize upcoming features in cheatsheet
* ui: show cheatsheet once after first wallet was created
* feat: add simple feature flags
Co-authored-by: Đorđe Spasić <34274884+Djo1e@users.noreply.github.com>
Co-authored-by: Gigi <109058+dergigi@users.noreply.github.com>
* ui: adapt info alert color to match figma more closely
* ui: adapt connection indicator icon to match figma more closely
* ui: better visibility of disabled input fields in dark-mode
* ui: reorder form fields on send page to match figma
* ui: default to sending as collaborative transaction
* ui: add icons to receive/withdraw buttons in CurrentWalletMagic
* review: use Send/Receive instead of Deposit/Withdraw
* fix: spacing on send screen
* fix: make collapsed accordion buttons visible in dark mode
Co-authored-by: Daniel <10026790+dnlggr@users.noreply.github.com>
* Convert logo into sprite
* Add theme basics
* Extract Sprite component
* Add some more overrides
* Update src/components/App.jsx
Co-authored-by: Daniel <eggerdnl@gmail.com>
* Move switch to settings view
Co-authored-by: Daniel <eggerdnl@gmail.com>