Skip to content
This repository has been archived by the owner on Jan 10, 2021. It is now read-only.

Minimal api #1

Closed
wants to merge 263 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
263 commits
Select commit Hold shift + click to select a range
8521164
Add duration log for DaoStateMonitoringService
chimp1984 Sep 1, 2019
3412725
Update core/src/main/java/bisq/core/dao/monitoring/DaoStateMonitoring…
chimp1984 Sep 1, 2019
800b677
Merge pull request #3178 from chimp1984/Improve-logging
ripcurlx Sep 2, 2019
9c0be82
Merge pull request #3177 from chimp1984/fix-bsq-wallet-performance-issue
ripcurlx Sep 2, 2019
e0c91d2
Merge pull request #3176 from sqrrm/blocknotify-option
ripcurlx Sep 2, 2019
e6d5429
Merge pull request #3174 from blabno/remove-byteball
ripcurlx Sep 2, 2019
f972984
Merge pull request #3172 from battleofwizards/fix-doubleclick-on-auto…
ripcurlx Sep 2, 2019
0e21ffb
Merge pull request #3168 from wiz/fifty-shades-of-gray
ripcurlx Sep 2, 2019
a212a58
Merge pull request #3149 from ghubstan/validate-phone
ripcurlx Sep 2, 2019
e2a17dc
Update data stores
ripcurlx Sep 2, 2019
5d260ad
Update translations
ripcurlx Sep 2, 2019
c235093
Merge pull request #2977 from donito-inc/master
ripcurlx Sep 2, 2019
fdecf6f
Remove cbeams pricenode from ProvidersRepository
cbeams Sep 2, 2019
7f17ab5
Merge pull request #3181 from cbeams/remove-cbeams-pricenode
ripcurlx Sep 2, 2019
bcb7b1a
Merge pull request #3180 from ripcurlx/update-data-stores
ripcurlx Sep 2, 2019
ba099d9
fix NPE in shutdown hook
christophsturm Sep 2, 2019
629a16f
Change DisputeCommunicationMessage.Type enum
chimp1984 Sep 2, 2019
3f885c2
Use ARBITRATION instead of MEDIATION
chimp1984 Sep 2, 2019
ca0bccf
Merge pull request #3183 from chimp1984/add-mediator-type
sqrrm Sep 2, 2019
3fc19f9
Merge pull request #3182 from christophsturm/fix-npe
ripcurlx Sep 2, 2019
4139e02
Update bitcoinj checkpoint
ripcurlx Sep 2, 2019
ab96f2a
Use latest btcd-cli4j
sqrrm Sep 2, 2019
9047ff1
Merge pull request #3184 from sqrrm/use-latest-btcd-cli4j
ripcurlx Sep 2, 2019
cbfa35e
Log Exceptions to logfile instead of STDERR
christophsturm Sep 2, 2019
93e4611
Fix CSS styling bug caused by using Text() instead of Label()
wiz Sep 2, 2019
73d0975
gender-neutral language change in P2PService.java
gordonel Sep 3, 2019
e257df4
Update displayStrings.properties
gordonel Sep 3, 2019
ce43142
Update TacWindow.java
gordonel Sep 3, 2019
a25aeef
Update GetDataRequestHandler.java
gordonel Sep 3, 2019
42a69c7
add missing corrections
gordonel Sep 3, 2019
688bb4e
Update displayStrings.properties
gordonel Sep 3, 2019
7b2ab4a
Update ApplyFilter.java
gordonel Sep 3, 2019
74215d1
Update TakeOfferDataModel.java
gordonel Sep 3, 2019
2618ac1
Don't paint vertical grid lines on charts
wiz Sep 3, 2019
7719851
Replace bouncycastle Hex with guava Hex
battleofwizards Sep 3, 2019
f393625
Fix amount change when "Below market price" is empty
ben-kaufman Aug 28, 2019
97b6ba1
Reduce size of chart axis font to fit Japanese string
wiz Sep 3, 2019
e974d61
Replace bouncycastle Base64 with java builtin Base64
battleofwizards Sep 3, 2019
c7c2082
More UI polish for Dark Mode
wiz Sep 3, 2019
e93a4ef
Remove Ergo coin as prep to remove Bouncy Castle
battleofwizards Sep 3, 2019
1c580da
Remove bouncycastle:bcprov from *direct* dependencies
battleofwizards Sep 3, 2019
082de82
Auto caluculate offer price from amount and volume
ben-kaufman Sep 3, 2019
d27311f
Remove json-simple dependency
battleofwizards Sep 3, 2019
8624c26
Merge pull request #3196 from battleofwizards/remove-json-simple-depe…
ripcurlx Sep 4, 2019
2c9e927
Merge pull request #3195 from battleofwizards/remove-bcprov-as-direct…
ripcurlx Sep 4, 2019
6adbc41
Merge pull request #3193 from wiz/more-dark-mode-polishing
ripcurlx Sep 4, 2019
7be5cab
More UI polish for Dark Mode
wiz Sep 3, 2019
16a2f07
Merge pull request #3192 from wiz/japanese-locale-chart-axis-bugfix
ripcurlx Sep 4, 2019
bf69f51
Reduce size of chart axis font to fit Japanese string
wiz Sep 3, 2019
dd17e08
Merge pull request #3188 from wiz/beyond-the-css
ripcurlx Sep 4, 2019
ec633f0
Fix CSS styling bug caused by using Text() instead of Label()
wiz Sep 2, 2019
285e5f2
Merge pull request #3189 from gordonel/patch-1
ripcurlx Sep 4, 2019
af95fcc
Merge pull request #3186 from christophsturm/fix-exception-logging
ripcurlx Sep 4, 2019
2abc4b4
Add scripts to create testing jars
ripcurlx Sep 4, 2019
1c4cbc5
Update docs/idea-import.md for walkthrough with IDEA 2019.2
Sep 4, 2019
eea0bd6
Merge pull request #3191 from wiz/hide-chart-vertical-grid-lines
ripcurlx Sep 5, 2019
aae4977
Don't paint vertical grid lines on charts
wiz Sep 3, 2019
574fe5b
Merge pull request #3199 from bodymindarts/idea-docs
ripcurlx Sep 5, 2019
305b545
Add autogenerated entry by Intellij (2019.2)
ripcurlx Sep 5, 2019
5dcfa96
Add portuguese (Brazil) locale
ripcurlx Sep 5, 2019
a8cc39d
Merge pull request #3203 from ripcurlx/extend-code-style-config
ripcurlx Sep 5, 2019
28801ac
Revert "Add autogenerated entry by Intellij (2019.2)"
ripcurlx Sep 5, 2019
d4079cb
Merge pull request #3205 from bisq-network/revert-3203-extend-code-st…
ripcurlx Sep 5, 2019
ff45007
Update to Tor v0.4.1.5
freimair Sep 5, 2019
82e9672
Remove PGP keys from the KeyRing
battleofwizards Sep 5, 2019
9af723f
Remove not used fields
chimp1984 Sep 6, 2019
5d4f9af
Add 90 days average and median BSQ price
chimp1984 Sep 6, 2019
522ed4c
Move calculation to data model and fix typo
ben-kaufman Sep 6, 2019
ac78f72
Set thread name at thread creation
christophsturm Sep 3, 2019
1758994
Use try with resource.
christophsturm Sep 3, 2019
6cb206c
Inline unused variable
christophsturm Sep 3, 2019
bcaac51
Assign more thread names at thread creation.
christophsturm Sep 3, 2019
6273a58
Assign even more thread names at thread creation.
christophsturm Sep 3, 2019
4223036
name connection thread
christophsturm Sep 6, 2019
7173bb7
Don't build debug strings when debug is not enabled.
christophsturm Sep 6, 2019
b113c7a
Merge pull request #3207 from battleofwizards/remove-dead-pgp-from-ke…
ripcurlx Sep 6, 2019
a3bf6ab
Don't build debug strings when debug is not enabled.
christophsturm Sep 6, 2019
93e6d86
Remove CapabilityRequiringPayload from AckMessage
chimp1984 Sep 6, 2019
206c4bc
Remove CapabilityRequiringPayload from AccountAgeWitness
chimp1984 Sep 6, 2019
7856722
Remove CapabilityRequiringPayload from TradeStatistics2
chimp1984 Sep 6, 2019
9be4b71
Add comments
chimp1984 Sep 6, 2019
ecaf592
Implement reviewer suggestions also in NetworkNode
christophsturm Sep 6, 2019
3df57ad
Add Deprecated annotation to old Capabilities
chimp1984 Sep 6, 2019
42311ea
optimize debug logging.
christophsturm Sep 6, 2019
934e31d
don't calculate values twice
christophsturm Sep 6, 2019
84f3ef8
More debug logging optimizing
christophsturm Sep 6, 2019
0a263b0
Merge pull request #3215 from chimp1984/remove-old-capability-require…
sqrrm Sep 6, 2019
8b2ecb4
CONTRIBUTING.md: add 'squash commits' to contributor's workflow
erciccione Sep 6, 2019
118d33a
Merge pull request #3214 from christophsturm/optimize-hotspots
sqrrm Sep 6, 2019
e5e49dc
Don't build debug strings when debug is not enabled.
christophsturm Sep 6, 2019
3666ed2
Don't build debug strings when debug is not enabled.
christophsturm Sep 6, 2019
372ff50
Implement reviewer suggestions also in NetworkNode
christophsturm Sep 6, 2019
660f130
Merge pull request #3217 from erciccione/squash
ripcurlx Sep 6, 2019
ec0b657
Merge pull request #3216 from christophsturm/optimize-logging
ripcurlx Sep 6, 2019
211eb1b
Merge pull request #3213 from christophsturm/cleanup-thread-handling
ripcurlx Sep 6, 2019
1c8f869
Only build string when its actually output
christophsturm Sep 6, 2019
69d70f3
Revert non-changes
freimair Sep 6, 2019
7c034a4
Merge pull request #3212 from chimp1984/add-average-bsq-price
ripcurlx Sep 6, 2019
9bce77d
Merge pull request #3218 from christophsturm/more-logging-fixes
ripcurlx Sep 6, 2019
4d49697
Only build string when its actually output
christophsturm Sep 6, 2019
5fbe2e3
Fix broken build because of removed Hex util in release branch
ripcurlx Sep 6, 2019
85e6da7
Tweak code formatter settings
christophsturm Sep 6, 2019
fee097d
Add CapabilityRequiringPayload interface to BundleOfEnvelopes
chimp1984 Sep 7, 2019
b210118
Set old DAO Capabilities Deprecated
chimp1984 Sep 7, 2019
a3a3bf2
Add new BondedRoleType for Analytics Operator
wiz Sep 9, 2019
f614e60
Merge pull request #3228 from wiz/add-role-analytics-operator
ripcurlx Sep 9, 2019
622cf8b
Merge pull request #3222 from chimp1984/remove-old-dao-required-capab…
ripcurlx Sep 9, 2019
2cee125
Merge pull request #3219 from christophsturm/tweak-formatting
ripcurlx Sep 9, 2019
990a998
Merge pull request #3206 from freimair/tor_0.4.1.5
ripcurlx Sep 9, 2019
bb806cf
Add bsq price trend indicator (#3226)
chimp1984 Sep 9, 2019
322fe23
Increase analytics operator bond amount from 1 to 2
wiz Sep 9, 2019
d55114e
Add mediation support (#3221)
chimp1984 Sep 9, 2019
0a606b4
Hide account age verification salt for altcoin accounts
devinbileck Sep 10, 2019
fc72225
Revert DAO changes to add bonded role for Analytics Operator (#3241)
wiz Sep 11, 2019
dab8436
Merge pull request #3200 from ripcurlx/add-scripts-for-testing-jars
sqrrm Sep 11, 2019
deeb6e4
Merge pull request #3204 from ripcurlx/add-brazilian-portuguese
sqrrm Sep 11, 2019
57d9bad
Make stateless BSFormatter functions static and remove dead code
Sep 11, 2019
be21535
Merge pull request #3239 from bodymindarts/static-BSFormatter-functions
freimair Sep 11, 2019
fe33a80
Extract DisplayUtils from BSFormatter
Sep 11, 2019
3b46f35
Extract parsing functions from BSFormatter to ParsingUtils
Sep 11, 2019
617ae35
Fix wrong error string
chimp1984 Sep 11, 2019
5e48845
Remove dev log, change log level
chimp1984 Sep 11, 2019
4a3d070
Close trader chat popup once trade gets closed
chimp1984 Sep 11, 2019
14f8b2e
Add missing CSS classes for trade message states and status icon
wiz Sep 11, 2019
0c6b9d0
Tweak light/dark theme CSS colors for trade chat state messages
wiz Sep 11, 2019
2387651
Merge pull request #3245 from chimp1984/bug-fixes-for-rc-1.1.6
ripcurlx Sep 11, 2019
1e45e53
Merge pull request #3246 from wiz/fix-chat-bubble-colors
ripcurlx Sep 11, 2019
6b69579
Add missing CSS classes for trade message states and status icon
wiz Sep 11, 2019
0c4a07e
Tweak light/dark theme CSS colors for trade chat state messages
wiz Sep 11, 2019
d8e742a
Add support for Monero integrated addresses; fix #3242
battleofwizards Sep 11, 2019
eba6ab9
Merge pull request #3248 from battleofwizards/add-monero-integrated-a…
ripcurlx Sep 11, 2019
3b35386
Add support for Monero integrated addresses; fix #3242
battleofwizards Sep 11, 2019
33c6f73
Add new FormBuilder method for Label + TextField + AutocompleteComboBox
wiz Sep 12, 2019
2e72776
Merge pull request #3244 from bodymindarts/extract-ParsingUtils
freimair Sep 12, 2019
e71b6d6
Remove CapabilityRequiringPayload from NewBlockBroadcastMessage
chimp1984 Sep 12, 2019
c246571
List Noteblockhain [NTBC]
abytecurious Sep 13, 2019
fb385a0
Add new payment method: Japan Bank Transfer (furikomi)
wiz Sep 7, 2019
e84fffb
Merge pull request #3250 from chimp1984/remove-required-capability
ripcurlx Sep 13, 2019
13f00a9
Merge pull request #3225 from wiz/japan-bank-transfer-payment-method
ripcurlx Sep 13, 2019
4d2a51e
Add new FormBuilder method for Label + TextField + AutocompleteComboBox
wiz Sep 12, 2019
a09557f
Add new payment method: Japan Bank Transfer (furikomi)
wiz Sep 7, 2019
8f20096
Fix typo fist > first
ripcurlx Sep 13, 2019
84d9158
Hide support request info, when trade is complete
ripcurlx Sep 13, 2019
982f610
Add alternative text until mediation is activated
ripcurlx Sep 13, 2019
15f71c9
Add information what to do next after mediation is completed
ripcurlx Sep 13, 2019
bd656d5
Rename review and accept or reject button to prevent confusion
ripcurlx Sep 13, 2019
f28d262
Update data stores
ripcurlx Sep 13, 2019
ac98a61
Update migration dates for v1.1.6 and remove testing code
ripcurlx Sep 13, 2019
4a9623b
Merge branch 'master' into fix-offer-volume-jumps
ben-kaufman Sep 13, 2019
690ceb0
Fix typo
ripcurlx Sep 13, 2019
12809a3
Merge pull request #3254 from ripcurlx/improve-mediation-ui
ripcurlx Sep 13, 2019
069e5c0
Update ParseUtils methods
ben-kaufman Sep 13, 2019
457da44
Bump version number
ripcurlx Sep 13, 2019
e617999
Merge pull request #3255 from ripcurlx/update-data-stores-and-dates-f…
sqrrm Sep 13, 2019
9f84f02
Remove CapabilityRequiringPayload from GetBlocksRequest
chimp1984 Sep 14, 2019
f9687ad
Fix various bugs related to Japan Bank Transfer payment method (#3258)
wiz Sep 14, 2019
0ada9a3
Merge pull request #3259 from chimp1984/remove-CapabilityRequiringPay…
ripcurlx Sep 14, 2019
4cc636d
Fix various bugs related to Japan Bank Transfer payment method (#3258)
wiz Sep 14, 2019
cf21580
Remove extra field from JapanBankTransferForm::addFormForBuyer()
wiz Sep 14, 2019
b1e2483
Merge pull request #3260 from wiz/fix-japan-bank-account-gui-further
ripcurlx Sep 14, 2019
2782ae0
Remove extra field from JapanBankTransferForm::addFormForBuyer()
wiz Sep 14, 2019
ec9cc04
Update IP address for @mrosseel's 2 hard-coded BTC nodes
wiz Sep 15, 2019
d333520
Temporarily disable onion host for @KanoczTomas's BTC node
wiz Sep 15, 2019
683b8b5
Remove bitcoin4-fullnode.csg.uzh.ch / 192.41.136.217 btcnode
wiz Sep 15, 2019
771b0fb
Merge pull request #3264 from wiz/remove-tbocek-btcnode
ripcurlx Sep 16, 2019
8327d35
Remove bitcoin4-fullnode.csg.uzh.ch / 192.41.136.217 btcnode
wiz Sep 15, 2019
85f9ead
Merge pull request #3262 from wiz/fix-mrosseel-btcnode-ip-addresses
ripcurlx Sep 16, 2019
db62d0d
Update IP address for @mrosseel's 2 hard-coded BTC nodes
wiz Sep 15, 2019
c0563fb
Revert to SNAPSHOT version
ripcurlx Sep 16, 2019
6964adc
Sort hashes by hitcount
freimair Aug 13, 2019
4f8fb24
Added rough bisq version metric
freimair Aug 21, 2019
072fb13
Change dao.proposal.display.name to 'Exact GitHub username'
erciccione Sep 17, 2019
cc3128d
Merge branch 'master' of github.com:bisq-network/bisq into release/v1…
ripcurlx Sep 17, 2019
37eef84
Merge pull request #3280 from bisq-network/release/v1.1.6
ripcurlx Sep 17, 2019
b26a156
Use static method, remove unused formatter field
chimp1984 Sep 17, 2019
8327c1f
Merge pull request #3281 from chimp1984/small-fixes-for-formatter-ref…
ripcurlx Sep 17, 2019
736da2a
Merge pull request #3278 from erciccione/DAO-username
ripcurlx Sep 17, 2019
219c5a0
use gradle dist with sources for better IDE experience.
christophsturm Sep 17, 2019
f2ec433
use /usr/bin/caffeinate to disable power management on macOS
christophsturm Sep 17, 2019
feadfb8
Add an explaining comment
christophsturm Sep 17, 2019
9ea6b21
Remove reactfx dependency
battleofwizards Sep 17, 2019
2290eb2
Remove showing FPS rate in developer mode
battleofwizards Sep 18, 2019
19a1910
Merge pull request #3279 from battleofwizards/remove-reactfx
ripcurlx Sep 18, 2019
2d4abbe
Remove controlsfx dependency
battleofwizards Sep 18, 2019
047ec4a
Add Ergo (ERG) without Bouncy Castle dependency.
jasondavies Sep 18, 2019
b823a9f
Merge pull request #3284 from christophsturm/caffeinate
sqrrm Sep 18, 2019
bff731f
Merge pull request #3283 from christophsturm/gradle-sources
sqrrm Sep 19, 2019
bd1f19c
Merge pull request #3287 from battleofwizards/remove-controlsfx
sqrrm Sep 19, 2019
b6b0d6c
chop down long chained calls and force brackets on if
christophsturm Sep 19, 2019
d388c7c
Revert to SNAPSHOT version
ripcurlx Sep 19, 2019
02fb5a6
Remove unnecessary release step because of updates in the bisq-websit…
ripcurlx Sep 19, 2019
f0fb663
Merge pull request #3194 from ben-kaufman/fix-offer-volume-jumps
ripcurlx Sep 19, 2019
08bbfe8
add Right-to-Left support (#2774)
initCCG Sep 19, 2019
4232615
Merge pull request #3224 from note-llc/master
ripcurlx Sep 19, 2019
27b6035
Update copyright date for macOS binary
ripcurlx Sep 19, 2019
2f35227
Merge pull request #3299 from ripcurlx/update-copyright-date
ripcurlx Sep 19, 2019
fb46738
Merge pull request #3298 from ripcurlx/update-release-process
ripcurlx Sep 19, 2019
54f2407
Merge pull request #3297 from ripcurlx/add-mediator-to-dev-setup
ripcurlx Sep 19, 2019
9c82510
Merge pull request #3296 from christophsturm/chop-down-long
ripcurlx Sep 19, 2019
593abc2
Add new pricenode gztmprecgqjq64zh operated by @wiz
wiz Sep 20, 2019
4274a8e
Merge pull request #3300 from wiz/add-wiz-pricenode
sqrrm Sep 20, 2019
5fb650e
Fixed mandatory capabilities
freimair Sep 20, 2019
3b2610f
Increase chart maxTicks from 30 to 90
wiz Sep 20, 2019
b357bb8
Load hashes from local store
freimair Sep 20, 2019
56f67e7
Changed rel no. ref. host to overall unique msg
freimair Sep 20, 2019
abe7bc1
Bump datstateheight to start from on restart
freimair Sep 20, 2019
b617e74
Load hashes from local store for market stats
freimair Sep 20, 2019
c379279
Add all capabilities so we get all the data
freimair Sep 20, 2019
d26b451
Revert recent code format changes
chimp1984 Sep 22, 2019
8cd9f29
Add missing handling for mailbox messages
chimp1984 Sep 22, 2019
94724a2
Fix potential ConcurrentModificationException
chimp1984 Sep 22, 2019
a1d2999
Avoid that the mediation result popup is shown
chimp1984 Sep 22, 2019
fdb0908
Merge pull request #3309 from chimp1984/Revert-code-format-changes
ripcurlx Sep 23, 2019
51d3179
Merge pull request #3310 from chimp1984/fix-missing-handling-of-media…
ripcurlx Sep 23, 2019
7f88bbf
Update data directories
ripcurlx Sep 23, 2019
b7cf661
Merge pull request #3312 from ripcurlx/update-data-directories
ripcurlx Sep 23, 2019
e22707a
Avoid that the mediation result popup is shown
chimp1984 Sep 22, 2019
29f1cb2
Fix potential ConcurrentModificationException
chimp1984 Sep 22, 2019
8cf49e0
Add missing handling for mailbox messages
chimp1984 Sep 22, 2019
1375f3d
Update data directories
ripcurlx Sep 23, 2019
39a811e
Fix broken line break
ripcurlx Sep 23, 2019
58f3f73
Bump version number
ripcurlx Sep 23, 2019
4842352
Revert to SNAPSHOT version
ripcurlx Sep 23, 2019
4201e06
Merge branch 'master' of github.com:bisq-network/bisq into hotfix/v1.1.6
ripcurlx Sep 23, 2019
e90856e
Merge pull request #3313 from bisq-network/hotfix/v1.1.6
ripcurlx Sep 23, 2019
490eaab
Merge pull request #3301 from wiz/increase-chart-data
ripcurlx Sep 23, 2019
9cd5c9f
inject DaoKillSwitch
christophsturm Sep 24, 2019
939f48a
remove instance
christophsturm Sep 24, 2019
fbd6525
List CTSCoin (CTSC)
cryptogeuse Sep 24, 2019
8f3cf65
Merge pull request #3237 from devinbileck/hide-altcoin-account-age-salt
sqrrm Sep 25, 2019
f2e846e
Merge pull request #3321 from christophsturm/inject-dao-killswitch
sqrrm Sep 25, 2019
95304ff
Merge pull request #3302 from freimair/monitor
ripcurlx Sep 26, 2019
3303b90
periodical UpdateDataReq for Seednodes (#3202)
freimair Sep 26, 2019
06a28d0
Merge pull request #3289 from plutomonkey/ergo
ripcurlx Sep 27, 2019
c63c77c
Tweak the English name of Japan Bank Transfer payment method
wiz Sep 28, 2019
7bed73e
Merge pull request #3344 from wiz/tweak-japan-bank-transfer-string
ripcurlx Sep 30, 2019
b1c8141
Add mediator prefix to trade statistics
chimp1984 Oct 2, 2019
406c098
List Faircoin (FAIR)
jsalatas Oct 3, 2019
f5f4611
List uPlexa (UPX)
QuantumLeaper Oct 1, 2019
ca1538d
Merge pull request #3354 from jsalatas/faircoin-pr
ripcurlx Oct 4, 2019
95e9bd4
Merge pull request #3351 from chimp1984/fix-missing-addition-of-mediator
ripcurlx Oct 4, 2019
70d17ea
Merge pull request #3350 from QuantumLeaper/list-upx-asset
ripcurlx Oct 4, 2019
bae6e7a
Merge pull request #3324 from ctscoin/list-ctsc-asset
ripcurlx Oct 4, 2019
b6cc351
Add onInitP2pNetwork and onInitWallet to BisqSetupListener
ManfredKarrer Jan 16, 2019
fb9f59d
Start server at onInitWallet and add wallet password handler
ManfredKarrer Jan 16, 2019
3cfa73a
Merge pull request #3263 from wiz/disable-kanocztomas-onion-btcnode
ripcurlx Oct 7, 2019
560d66b
Merge pull request #3348 from blabno/changes-needed-for-minimal-api
ripcurlx Oct 7, 2019
db9538a
Minimal HTTP API
Jun 19, 2019
71a5d1a
Start server at onInitWallet and add wallet password handler
ManfredKarrer Jan 16, 2019
f7abd62
Add periodic log to remind user to enter pw
ManfredKarrer Jan 16, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .idea/codeStyles/Project.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .idea/codeStyles/codeStyleConfig.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ All Bisq contributors submit changes via pull requests. The workflow is as follo
- Fork the repository
- Create a topic branch from the `master` branch
- Commit patches
- Squash redundant or unnecessary commits
- Submit a pull request from your topic branch back to the `master` branch of the main repository

Pull requests should be focused on a single change. Do not mix, for example, refactorings with a bug fix or implementation of a new feature. This practice makes it easier for fellow contributors to review each pull request on its merits and and to give a clear ACK/NACK (see below).
Expand Down Expand Up @@ -73,6 +74,10 @@ https://help.github.com/articles/signing-commits-with-gpg/ for instructions.

The [.editorconfig](.editorconfig) settings in this repository ensure consistent management of whitespace, line endings and more. Most modern editors support it natively or with plugin. See http://editorconfig.org for details. See also [bisq-network/style#10](https://github.com/bisq-network/style/issues/10).

### Keep the git history clean

It's very important to keep the git history clear, light and easily browsable. This means contributors must make sure their pull requests include only meaningful commits (if they are redundant or were added after a review, they should be removed) and _no merge commits_.

### Additional style guidelines

See the issues in the [bisq-network/style](https://github.com/bisq-network/style/issues) repository.
Expand Down
87 changes: 87 additions & 0 deletions api/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Bisq HTTP API

**The API branch is under development!
Do not use it in production environment at the current state!**

Enabling the API exposes some of Bisq's functionality for access over a http API.
You can run it either as the desktop application or as a headless application.

On that branch we start to implement feature by feature starting with the most simple one - `version`.


**Known issues**: Wallet password protection is not supported at the moment for the headless version. So if you have set
a wallet password when running the Desktop version and afterwards run the headless version it will get stuck at startup
expecting the wallet password. This feature will be implemented soon._

**Note**: If you have a Bisq application with BTC already set up it is recommended to use the optional `appName` argument to
provide a different name and data directory so that the default Bisq application is not exposed via the API. That way
your data and wallet from your default Bisq application are completely isolated from the API application. In the below
commands we use the argument `--appName=bisq-API` to ensure you are not mixing up your default Bisq setup when
experimenting with the API branch. You cannot run the desktop and the headless version in parallel as they would access
the same data.

**Security**: Api uses HTTP transport which is not encrypted. Use the API only locally and do not expose it over
public network interfaces.

## Run the API as Desktop application

cd desktop
../gradlew run --args="--desktopWithHttpApi=true --appName=bisq-API"

If the application has started up you should see following line in the logs:

HTTP API started on localhost/127.0.0.1:8080

If you prefer another port or host use the arguments `--httpApiHost` and `--httpApiPort`.

### API Documentation

Documentation is available at http://localhost:8080/docs/

Sample call:

curl http://localhost:8080/api/v1/version

#### Authentication

By default there is no password required for the API. We recommend that you set password as soon as possible:

curl -X POST "http://localhost:8080/api/v1/user/password" -H "Content-Type: application/json" -d "{\"newPassword\":\"string\"}"

Password digest and salt are stored in a `apipasswd` in Bisq data directory.
If you forget your password, just delete that file and restart Bisq.

Now you can access other endpoints by adding `Authorization` header to the request
accordingly to [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) rules.
```
Base64(username+":"+password)
```
Note that username is ignored and can be whatever, i.e. in following example username is empty string and password is `abc`
(Base64 of `:abc` is `OmFiYw==`):

curl -X GET "http://localhost:8080/api/v1/version" -H "authorization: Basic OmFiYw=="

## Run the API as headless application

cd api
../gradlew run --args="--appName=bisq-API"

## Host and port configuration

../gradlew run --args="--httpApiHost=127.0.0.1 --httpApiPort=8080"

**CAUTION! Please do not expose the API over a public interface**

## Experimental features

Some features will be not sufficiently tested and will only be enabled if you add the
`enableHttpApiExperimentalFeatures` argument:

../gradlew run --args="--enableHttpApiExperimentalFeatures"

## Regtest mode

../gradlew run --args="--appName=bisq-BTC_REGTEST-alice --nodePort=8003 --useLocalhostForP2P=true
--seedNodes=localhost:8000 --btcNodes=localhost:18445 --baseCurrencyNetwork=BTC_REGTEST --logLevel=info
--useDevPrivilegeKeys=true --bitcoinRegtestHost=NONE --myAddress=172.17.0.1:8003
--enableHttpApiExperimentalFeatures"
53 changes: 53 additions & 0 deletions api/src/main/java/bisq/api/http/HttpApiModule.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/*
* This file is part of Bisq.
*
* Bisq is free software: you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or (at
* your option) any later version.
*
* Bisq is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
* License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/

package bisq.api.http;

import bisq.api.http.service.HttpApiServer;
import bisq.api.http.service.auth.ApiPasswordManager;
import bisq.api.http.service.endpoint.UserEndpoint;
import bisq.api.http.service.endpoint.VersionEndpoint;

import bisq.core.app.AppOptionKeys;

import bisq.common.app.AppModule;

import org.springframework.core.env.Environment;

import com.google.inject.Singleton;
import com.google.inject.name.Names;

public class HttpApiModule extends AppModule {

public HttpApiModule(Environment environment) {
super(environment);
}

@Override
protected void configure() {
bind(HttpApiServer.class).in(Singleton.class);
bind(ApiPasswordManager.class).in(Singleton.class);
bind(UserEndpoint.class).in(Singleton.class);
bind(VersionEndpoint.class).in(Singleton.class);

String httpApiHost = environment.getProperty(AppOptionKeys.HTTP_API_HOST, String.class, "127.0.0.1");
bind(String.class).annotatedWith(Names.named(AppOptionKeys.HTTP_API_HOST)).toInstance(httpApiHost);

Integer httpApiPort = Integer.valueOf(environment.getProperty(AppOptionKeys.HTTP_API_PORT, String.class, "8080"));
bind(Integer.class).annotatedWith(Names.named(AppOptionKeys.HTTP_API_PORT)).toInstance(httpApiPort);
}
}
82 changes: 82 additions & 0 deletions api/src/main/java/bisq/api/http/app/HttpApiHeadlessApp.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
/*
* This file is part of Bisq.
*
* Bisq is free software: you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or (at
* your option) any later version.
*
* Bisq is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
* License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/

package bisq.api.http.app;

import bisq.core.app.BisqHeadlessApp;

import bisq.common.Timer;
import bisq.common.UserThread;
import bisq.common.setup.UncaughtExceptionHandler;

import lombok.extern.slf4j.Slf4j;

/**
* BisqHeadlessApp implementation for HttpApi.
* This is only used in case of the headless version to startup Bisq.
*/
@Slf4j
class HttpApiHeadlessApp extends BisqHeadlessApp implements UncaughtExceptionHandler {

@Override
protected void setupHandlers() {
super.setupHandlers();

bisqSetup.setRequestWalletPasswordHandler(aesKeyHandler -> {
log.info("onRequestWalletPasswordHandler");

// Add a periodic log so that users get reminded to enter the pw
Timer reminder = UserThread.runPeriodically(() -> {
log.info("Awaiting user's wallet password to be entered via API call");
}, 10);


// TODO @bernard listen for users input of pw, create aseKey and call handler
// aesKeyHandler.accept(aseKey);
// Once pw is entered we stop periodic log
// reminder.stop();


// here is code from UI
/* String password = passwordTextField.getText();
checkArgument(password.length() < 500, Res.get("password.tooLong"));
KeyCrypterScrypt keyCrypterScrypt = walletsManager.getKeyCrypterScrypt();
if (keyCrypterScrypt != null) {
busyAnimation.play();
deriveStatusLabel.setText(Res.get("password.deriveKey"));
ScryptUtil.deriveKeyWithScrypt(keyCrypterScrypt, password, aesKey -> {
if (walletsManager.checkAESKey(aesKey)) {
if (aesKeyHandler != null)
aesKeyHandler.onAesKey(aesKey);

hide();
} else {
busyAnimation.stop();
deriveStatusLabel.setText("");

UserThread.runAfter(() -> new Popup<>()
.warning(Res.get("password.wrongPw"))
.onClose(this::blurAgain).show(), Transitions.DEFAULT_DURATION, TimeUnit.MILLISECONDS);
}
});
} else {
log.error("wallet.getKeyCrypter() is null, that must not happen.");
}
*/
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,28 @@
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/

package bisq.core.arbitration;
package bisq.api.http.app;

import bisq.api.http.HttpApiModule;

import bisq.core.CoreModule;

import bisq.common.app.AppModule;

import org.springframework.core.env.Environment;

import com.google.inject.Singleton;
/**
* Used in case of the headless version.
*/
public class HttpApiHeadlessModule extends AppModule {

public class ArbitratorModule extends AppModule {
public ArbitratorModule(Environment environment) {
public HttpApiHeadlessModule(Environment environment) {
super(environment);
}

@Override
protected final void configure() {
bind(ArbitratorManager.class).in(Singleton.class);
bind(DisputeManager.class).in(Singleton.class);
bind(ArbitratorService.class).in(Singleton.class);
protected void configure() {
install(new CoreModule(environment));
install(new HttpApiModule(environment));
}
}
79 changes: 79 additions & 0 deletions api/src/main/java/bisq/api/http/app/HttpApiMain.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
/*
* This file is part of Bisq.
*
* Bisq is free software: you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or (at
* your option) any later version.
*
* Bisq is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
* License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
*/

package bisq.api.http.app;

import bisq.api.http.service.HttpApiServer;

import bisq.core.app.BisqExecutable;
import bisq.core.app.BisqHeadlessAppMain;

import bisq.common.UserThread;
import bisq.common.app.AppModule;
import bisq.common.setup.CommonSetup;

import lombok.extern.slf4j.Slf4j;

/**
* Main class for headless version.
*/
@Slf4j
public class HttpApiMain extends BisqHeadlessAppMain {

public static void main(String[] args) throws Exception {
if (BisqExecutable.setupInitialOptionParser(args)) {
// For some reason the JavaFX launch process results in us losing the thread context class loader: reset it.
// In order to work around a bug in JavaFX 8u25 and below, you must include the following code as the first line of your realMain method:
Thread.currentThread().setContextClassLoader(HttpApiMain.class.getClassLoader());

new HttpApiMain().execute(args);
}
}

@Override
protected void launchApplication() {
headlessApp = new HttpApiHeadlessApp();
CommonSetup.setup(HttpApiMain.this.headlessApp);

UserThread.execute(this::onApplicationLaunched);
}

@Override
protected AppModule getModule() {
return new HttpApiHeadlessModule(bisqEnvironment);
}

@Override
public void onInitWallet() {
log.info("onInitWallet: We start the http server now");

HttpApiServer httpApiServer = injector.getInstance(HttpApiServer.class);
httpApiServer.startServer();
}

@Override
public void onRequestWalletPassword() {
log.info("onRequestWalletPassword");

// TODO @bernard now we need to get users wallet pw
}

@Override
public void onSetupComplete() {
log.info("onSetupComplete");
}
}
Loading