* refactor(fees): externalize loading fees to own file
* feat(send): show estimated max. collaborator fee
* feat(send): show miner fee target
* fix(fees): allow zero for all fee config values
* feat(fees): put ≤ before max. fee estimate
* fix(i18n): lowercase for consistency
Co-authored-by: Gigi <dergigi@pm.me>
* 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>
* refactor(utxo): disable refresh button while loading
* fix(utxos): reset select state when switching jars
* refactor(utxo-list): store utxos/selectedUtxos in distinct vars
* fix(utxo-list): improve padding across all screens
* refactor(utxo-list): externalize UtxoDetailModal
* feat(utxo-list): show sum of selected utxos
* ui(utxo-list): change order of sum/button elements on mobile
* ui(utxo-list): align selected utxo sum to the right
* fix(utxo-list): wording
Co-authored-by: Gigi <109058+dergigi@users.noreply.github.com>
* refactor: App.jsx to App.tsx
* refactor(test): setupTests.js to setupTests.ts
* refactor(test): App.test.jsx to App.test.tsx
* refactor(ts): ActivityIndicators.jsx to .tsx
* refactor(ts): Alert.jsx to .tsx
* refactor: remove unneeded global declaration
* refactor(ts): JarSelectorModal.jsx to .tsx
* fix: prefer direct usage of classnames instead of bind
* chore: dependencies update
* chore: update test dependencies
* chore: update bootstrap from v5.2.0 to v5.2.1
* chore: update qrcode from v1.5.0 to v1.5.1
* chore: update react-i18next from v11.16.9 to v11.18.6
* feat(taker): ability to abort single collaborative transaction
* feat(taker): show confirm modal before aborting collaborative transaction
* fix: disable abort button if abort confirm modal is already shown
* fix: let normal init process reload wallet and service info
* doc(send): fix typo in comment
Co-authored-by: Gigi <109058+dergigi@users.noreply.github.com>
* fix: min confs of preconditions for all utxos instead of single
* fix: i18n phrases of collaborative transaction preconditions
* wip: use new scheduler preconditions in Jam component
* fix: only report utxos without retries of no retry is left within jar
* feat(regtest): set taker_utxo_retries and maker_timeout_sec config vars for improved testability
* test(preconditions): add test for CoinjoinRequirements
* fix: enable starting scheduler even if preconditions are not fulfilled
* review: fix wording
Co-authored-by: Gigi <109058+dergigi@users.noreply.github.com>
* dev(regtest): remove nbxplorer in favor of simpler custom regtest-initializer
* dev(regtest): use jsonrpc 2.0 requests to create and load wallet
* dev(regtest): upgrade bitcoin core from v22 to v23
* fix(regtest): wait-for-bitcoind should wait for at least >=0 blocks
* dev(regtest): use jam-dev-standalone
* dev(regtest): add npm script regtest:build
this command will build the development setup with docker cache
enabled. usually must fast as it will only pull in newer base
images and not download and recompile jm again. this is the
preferred way if you made only a few adaptions to the images
and e.g. not want to fetch the current master of jm.
* feat: ability to retrieve logs
* feat: automatically scroll to bottom of log content div
* dev: switch regtest target container with env var
* dev: change secondary container image to new jam namespace
* dev: add backend types 'native' and 'jam-standalone' to setupProxy
* fix: pass api token to session request
* dev: add offers and nickname to ServiceInfo
* ui: show active offers on Earn page
* review: change active offer title to nickname:offerId
* dev: pluralize i18n fidelity bond title phrase
* review: display placeholder while active offers are loading
* fix: display relative fee as percentage
* fix: support detecting all offertypes
* style(earn): turn off contextual alternates for offer name
* 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
* fix: pass api token to session request
(cherry picked from commit bb4a875271)
* dev: add offers and nickname to ServiceInfo
(cherry picked from commit 3b3154ea20)
* dev: add schedule to ServiceInfo
* feat: click on navbar joining icon opens relevant screen
* review: remove joining icon from navbar
* review: add property schedule to ServiceInfo
* review: add some space to tab activity indicator
* fix: serialize values of /maker/start request body as strings
* Update src/libs/JmWalletApi.ts
Co-authored-by: D <10026790+dnlggr@users.noreply.github.com>