Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/v1.6.3 #5464

Merged
merged 21 commits into from May 7, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
2c5e785
Bump version number for v1.6.3
ripcurlx Apr 22, 2021
f6b244e
Update translations for v1.6.3
ripcurlx Apr 22, 2021
0f9f43c
Update bitcoinj checkpoints for v1.6.3
ripcurlx Apr 22, 2021
b5d772b
Update data stores for v1.6.3
ripcurlx Apr 26, 2021
889ac86
v1.6.3 wording changes recommended by btc_contributor and pazza
Apr 26, 2021
7eb3380
Fix prompt text clipping in text area
ripcurlx Apr 26, 2021
ce73fb8
Code cleanup: Simplify Optional stream processing
stejbac Jan 20, 2021
3470429
Allow use of bech32 BSQ addresses
stejbac Jan 21, 2021
036d5fa
Merge pull request #5439 from ripcurlx/release/v1.6.3
sqrrm Apr 27, 2021
5f1e32a
Perform segwit BSQ wallet migration upon startup
stejbac Jan 23, 2021
9760526
Factor out shared segwit keychain setup to WalletsManager
stejbac Jan 30, 2021
c615d5d
Merge pull request #5109 from stejbac/implement-segwit-for-bsq-wallet
ripcurlx Apr 27, 2021
3520d9b
Remove key logger warning because of new notarization support and spe…
ripcurlx Apr 28, 2021
f94f19e
Fix bsq wallet testcase setup (api)
ghubstan Apr 28, 2021
2559ba2
Fix flaky tx fee rate validation test (api)
ghubstan Apr 28, 2021
1ea445b
Fix NetworkParameters.fromID( incorrect-arg -> correct-arg )
ghubstan Apr 28, 2021
fa920fc
Update DAO state for v1.6.3
ripcurlx Apr 29, 2021
e287fdd
Merge pull request #5449 from ripcurlx/release/v1.6.3
sqrrm Apr 30, 2021
4af614b
Update scripts to JDK 11
BtcContributor Apr 22, 2021
59b4697
Revert to SNAPSHOT version
ripcurlx May 4, 2021
89729c4
Merge branch 'master' of github.com:bisq-network/bisq into release/v1…
ripcurlx May 7, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/boring-cyborg.yml
Expand Up @@ -6,7 +6,7 @@ labelPRBasedOnFilePath:
- assets/**/*

firstPRWelcomeComment: >
**Thanks for opening this pull request!**<br/><br/>Please check out our [contributor checklist](https://docs.bisq.network/contributor-checklist.html) and check if *Travis* or *Codacy* found any issues with your PR. Also make sure your commits are signed, and that you applied [Bisq's code style](https://github.com/bisq-network/style/issues) and [formatting](.editorconfig).<br/><br/>A maintainer will add an `is:priority` label to your PR if it is up for compensation. Please see our [Bisq Q1 2020 Update post](https://bisq.network/blog/q1-2020-update/) for more details.
**Thanks for opening this pull request!**<br/><br/>Please check out our [contributor checklist](https://bisq.wiki/Contributor_checklist) and check if *Travis* or *Codacy* found any issues with your PR. Also make sure your commits are signed, and that you applied [Bisq's code style](https://github.com/bisq-network/style/issues) and [formatting](.editorconfig).<br/><br/>A maintainer will add an `is:priority` label to your PR if it is up for compensation. Please see our [Bisq Q1 2020 Update post](https://bisq.network/blog/q1-2020-update/) for more details.

firstPRMergeComment: >
Awesome work, congrats on your first merged pull request!
Expand Down
33 changes: 33 additions & 0 deletions .github/workflows/build.yml
@@ -0,0 +1,33 @@
name: Build Bisq

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
build:
runs-on: ubuntu-18.04

steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
lfs: true

- name: Set up JDK
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Validate Gradle Wrapper JAR files
uses: gradle/wrapper-validation-action@v1

- name: Build with Gradle
run: ./gradlew build
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Expand Up @@ -11,7 +11,7 @@ Install Keybase and enter "bisq" from the teams tab. This is an "open" team, whi

Discussion about code changes happens in GitHub issues and pull requests.

Discussion about larger changes to the way Bisq works happens in issues the [bisq-network/proposals](https://github.com/bisq-network/proposals/issues) repository. See https://docs.bisq.network/proposals.html for details.
Discussion about larger changes to the way Bisq works happens in issues the [bisq-network/proposals](https://github.com/bisq-network/proposals/issues) repository. See https://bisq.wiki/Proposals for details.


## Contributor Workflow
Expand Down Expand Up @@ -50,7 +50,7 @@ Bisq is not a company, but operates as a _decentralized autonomous organization_
Since our [Q1 2020 update](https://bisq.network/blog/q1-2020-update/) contributions are NOT eligible for compensation unless they are allocated as part of the development budget. Fixes for [critical bugs](https://bisq.wiki/Critical_Bugs) are eligible for compensation when delivered.
In any case please contact the team lead for development (@ripcurlx) upfront if you want to get compensated for your contributions.

For any work that was approved and merged into Bisq's `master` branch, you can [submit a compensation request](https://docs.bisq.network/dao/phase-zero.html#how-to-request-compensation) and earn BSQ (the Bisq DAO native token). Learn more about the Bisq DAO and BSQ [here](https://docs.bisq.network/dao/phase-zero.html).
For any work that was approved and merged into Bisq's `master` branch, you can [submit a compensation request](https://bisq.wiki/Making_a_compensation_request) and earn BSQ (the Bisq DAO native token). Learn more about the Bisq DAO and BSQ [here](https://bisq.wiki/Introduction_to_the_DAO).


## Style and Coding Conventions
Expand Down Expand Up @@ -95,7 +95,7 @@ See the issues in the [bisq-network/style](https://github.com/bisq-network/style

## See also

- [contributor checklist](https://docs.bisq.network/contributor-checklist.html)
- [contributor checklist](https://bisq.wiki/Contributor_checklist)
- [developer docs](docs#readme) including build and dev environment setup instructions
- [project management process](https://bisq.wiki/Project_management)

4 changes: 2 additions & 2 deletions Makefile
Expand Up @@ -14,8 +14,8 @@
#
# - Linux, macOS or similar *nix with standard tools like `make`
# - bitcoind and bitcoin-cli (`brew install bitcoin` on macOS)
# - JDK 10 to build and run Bisq binaries; see
# https://www.oracle.com/java/technologies/java-archive-javase10-downloads.html
# - JDK 11 to build and run Bisq binaries; see
# https://jdk.java.net/archive/
#
#
# USAGE
Expand Down
6 changes: 5 additions & 1 deletion cli/src/test/java/bisq/cli/opt/OptionParsersTest.java
Expand Up @@ -176,8 +176,12 @@ public void testCreatePaymentAcctOptParserWithInvalidPaymentFormOptValueShouldTh
};
Throwable exception = assertThrows(RuntimeException.class, () ->
new CreatePaymentAcctOptionParser(args).parse());
assertEquals("json payment account form '/tmp/milkyway/solarsystem/mars' could not be found",
if (System.getProperty("os.name").toLowerCase().indexOf("win") >= 0)
assertEquals("json payment account form '\\tmp\\milkyway\\solarsystem\\mars' could not be found",
exception.getMessage());
else
assertEquals("json payment account form '/tmp/milkyway/solarsystem/mars' could not be found",
exception.getMessage());
}

// createcryptopaymentacct parser tests
Expand Down
Expand Up @@ -257,8 +257,10 @@ private boolean maybeUpdateHashChain(int blockHeight) {

periodService.getCycle(blockHeight).ifPresent(cycle -> {
List<BlindVote> blindVotes = blindVoteListService.getConfirmedBlindVotes().stream()
.filter(e -> periodService.isTxInCorrectCycle(e.getTxId(), blockHeight))
.sorted(Comparator.comparing(BlindVote::getTxId)).collect(Collectors.toList());
.filter(e -> e.getTxId() != null)
.filter(e -> periodService.isTxInPhaseAndCycle(e.getTxId(), DaoPhase.Phase.BLIND_VOTE, blockHeight))
.sorted(Comparator.comparing(BlindVote::getTxId))
.collect(Collectors.toList());

// We use MyBlindVoteList to get the serialized bytes from the blindVotes list
byte[] serializedBlindVotes = new MyBlindVoteList(blindVotes).toProtoMessage().toByteArray();
Expand Down
Expand Up @@ -259,8 +259,8 @@ private boolean maybeUpdateHashChain(int blockHeight) {

periodService.getCycle(blockHeight).ifPresent(cycle -> {
List<Proposal> proposals = proposalService.getValidatedProposals().stream()
.filter(e -> periodService.isTxInPhaseAndCycle(e.getTxId(), DaoPhase.Phase.PROPOSAL, blockHeight))
.filter(e -> e.getTxId() != null)
.filter(e -> periodService.isTxInPhaseAndCycle(e.getTxId(), DaoPhase.Phase.PROPOSAL, blockHeight))
.sorted(Comparator.comparing(Proposal::getTxId))
.collect(Collectors.toList());

Expand Down
Expand Up @@ -33,13 +33,16 @@
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

import lombok.extern.slf4j.Slf4j;

import org.jetbrains.annotations.Nullable;

// If a new BaseCurrencyNetwork type gets added we need to add the resource file for it as well!
@Slf4j
@Singleton
Expand Down Expand Up @@ -69,11 +72,12 @@ private void reload() {
List<NodeAddress> result = getSeedNodeAddressesFromPropertyFile(config.baseCurrencyNetwork.name().toLowerCase());
cache.addAll(result);

// filter
// let values configured by filter fail more gracefully
cache.removeAll(
config.bannedSeedNodes.stream()
.filter(n -> !n.isEmpty())
.map(NodeAddress::new)
.map(this::getNodeAddress)
.filter(Objects::nonNull)
.collect(Collectors.toSet()));

log.info("Seed nodes: {}", cache);
Expand Down Expand Up @@ -124,4 +128,14 @@ public boolean isSeedNode(NodeAddress nodeAddress) {
reload();
return cache.contains(nodeAddress);
}

@Nullable
private NodeAddress getNodeAddress(String n) {
try {
return new NodeAddress(n);
} catch (Throwable t) {
log.error("exception when filtering banned seednodes", t);
}
return null;
}
}
Expand Up @@ -157,7 +157,7 @@ public void cleanupDisputes() {
@Override
protected String getDisputeInfo(Dispute dispute) {
String role = Res.get("shared.arbitrator").toLowerCase();
String link = "https://docs.bisq.network/trading-rules.html#legacy-arbitration";
String link = "https://bisq.wiki/Arbitrator#Arbitrator_versus_Legacy_Arbitrator";
return Res.get("support.initialInfo", role, role, link);
}

Expand Down
Expand Up @@ -144,7 +144,7 @@ public void cleanupDisputes() {
@Override
protected String getDisputeInfo(Dispute dispute) {
String role = Res.get("shared.mediator").toLowerCase();
String link = "https://docs.bisq.network/trading-rules.html#mediation";
String link = "https://bisq.wiki/Dispute_resolution#Level_2:_Mediation";
return Res.get("support.initialInfo", role, role, link);
}

Expand Down
Expand Up @@ -133,7 +133,7 @@ public void cleanupDisputes() {
@Override
protected String getDisputeInfo(Dispute dispute) {
String role = Res.get("shared.refundAgent").toLowerCase();
String link = "https://docs.bisq.network/trading-rules.html#arbitration";
String link = "https://bisq.wiki/Dispute_resolution#Level_3:_Arbitration";
return Res.get("support.initialInfo", role, role, link);
}

Expand Down
4 changes: 2 additions & 2 deletions core/src/main/java/bisq/core/user/Preferences.java
Expand Up @@ -85,7 +85,7 @@ public final class Preferences implements PersistedDataHost, BridgeAddressProvid
new BlockChainExplorer("mempool.emzy.de (@emzy)", "https://mempool.emzy.de/tx/", "https://mempool.emzy.de/address/"),
new BlockChainExplorer("mempool.emzy.de Tor V3", "http://mempool4t6mypeemozyterviq3i5de4kpoua65r3qkn5i3kknu5l2cad.onion/tx/", "http://mempool4t6mypeemozyterviq3i5de4kpoua65r3qkn5i3kknu5l2cad.onion/address/"),
new BlockChainExplorer("mempool.bisq.services (@devinbileck)", "https://mempool.bisq.services/tx/", "https://mempool.bisq.services/address/"),
new BlockChainExplorer("mempool.bisq.services Tor V3", "http://mempoolusb2f67qi7mz2it7n5e77a6komdzx6wftobcduxszkdfun2yd.onion/tx/", "http://mempoolusb2f67qi7mz2it7n5e77a6komdzx6wftobcduxszkdfun2yd.onion/address/"),
new BlockChainExplorer("mempool.bisq.services Tor V3", "http://mempoolcutehjtynu4k4rd746acmssvj2vz4jbz4setb72clbpx2dfqd.onion/tx/", "http://mempoolcutehjtynu4k4rd746acmssvj2vz4jbz4setb72clbpx2dfqd.onion/address/"),
new BlockChainExplorer("Blockstream.info", "https://blockstream.info/tx/", "https://blockstream.info/address/"),
new BlockChainExplorer("Blockstream.info Tor V3", "http://explorerzydxu5ecjrkwceayqybizmpjjznk5izmitf2modhcusuqlid.onion/tx/", "http://explorerzydxu5ecjrkwceayqybizmpjjznk5izmitf2modhcusuqlid.onion/address/"),
new BlockChainExplorer("OXT", "https://oxt.me/transaction/", "https://oxt.me/address/"),
Expand Down Expand Up @@ -142,7 +142,7 @@ public final class Preferences implements PersistedDataHost, BridgeAddressProvid
private static final ArrayList<String> TX_BROADCAST_SERVICES = new ArrayList<>(Arrays.asList(
"http://mempoolhqx4isw62xs7abwphsq7ldayuidyx2v2oethdhhj6mlo2r6ad.onion/api/tx", // @wiz
"http://mempool4t6mypeemozyterviq3i5de4kpoua65r3qkn5i3kknu5l2cad.onion/api/tx", // @emzy
"http://mempoolusb2f67qi7mz2it7n5e77a6komdzx6wftobcduxszkdfun2yd.onion/api/tx" // @devinbileck
"http://mempoolcutehjtynu4k4rd746acmssvj2vz4jbz4setb72clbpx2dfqd.onion/api/tx" // @devinbileck
));

public static final boolean USE_SYMMETRIC_SECURITY_DEPOSIT = true;
Expand Down
12 changes: 6 additions & 6 deletions core/src/main/resources/i18n/displayStrings.properties
Expand Up @@ -396,7 +396,7 @@ offerbook.warning.counterpartyTradeRestrictions=This offer cannot be taken due t

offerbook.warning.newVersionAnnouncement=With this version of the software, trading peers can verify and sign each others' payment accounts to create a network of trusted payment accounts.\n\n\
After successfully trading with a peer with a verified payment account, your payment account will be signed and trading limits will be lifted after a certain time interval (length of this interval is based on the verification method).\n\n\
For more information on account signing, please see the documentation at [HYPERLINK:https://docs.bisq.network/payment-methods#account-signing].
For more information on account signing, please see the documentation at [HYPERLINK:https://bisq.wiki/Account_limits#Account_signing].

popup.warning.tradeLimitDueAccountAgeRestriction.seller=The allowed trade amount is limited to {0} because of security restrictions based on the following criteria:\n\
- The buyer''s account has not been signed by an arbitrator or a peer\n\
Expand Down Expand Up @@ -915,13 +915,13 @@ portfolio.pending.mediationResult.popup.info=The mediator has suggested the foll
Both traders agreeing to the mediator''s suggestion is the happy path—requesting arbitration is meant for \
exceptional circumstances, such as if a trader is sure the mediator did not make a fair payout suggestion \
(or if the other peer is unresponsive).\n\n\
More details about the new arbitration model: [HYPERLINK:https://docs.bisq.network/trading-rules.html#arbitration]
More details about the new arbitration model: [HYPERLINK:https://bisq.wiki/Dispute_resolution#Level_3:_Arbitration]
portfolio.pending.mediationResult.popup.selfAccepted.lockTimeOver=You have accepted the mediator''s suggested payout \
but it seems that your trading peer has not accepted it.\n\n\
Once the lock time is over on {0} (block {1}), you can open a second-round dispute with an arbitrator who will \
investigate the case again and do a payout based on their findings.\n\n\
You can find more details about the arbitration model at:\
[HYPERLINK:https://docs.bisq.network/trading-rules.html#arbitration]
[HYPERLINK:https://bisq.wiki/Dispute_resolution#Level_3:_Arbitration]
portfolio.pending.mediationResult.popup.openArbitration=Reject and request arbitration
portfolio.pending.mediationResult.popup.alreadyAccepted=You've already accepted

Expand Down Expand Up @@ -1171,7 +1171,7 @@ support.initialInfo=Please enter a description of your problem in the text field
\t● Which operating system are you using?\n\
\t● If you encountered an issue with failed transactions please consider switching to a new data directory.\n\
\t Sometimes the data directory gets corrupted and leads to strange bugs. \n\
\t See: https://docs.bisq.network/backup-recovery.html#switch-to-a-new-data-directory\n\n\
\t See: https://bisq.wiki/Switching_to_a_new_data_directory\n\n\
Please make yourself familiar with the basic rules for the dispute process:\n\
\t● You need to respond to the {0}''s requests within 2 days.\n\
\t● Mediators respond in between 2 days. Arbitrators respond in between 5 business days.\n\
Expand Down Expand Up @@ -2973,7 +2973,7 @@ popup.accountSigning.signAccounts.ECKey.error=Bad arbitrator ECKey
popup.accountSigning.success.headline=Congratulations
popup.accountSigning.success.description=All {0} payment accounts were successfully signed!
popup.accountSigning.generalInformation=You'll find the signing state of all your accounts in the account section.\n\n\
For further information, please visit [HYPERLINK:https://docs.bisq.network/payment-methods#account-signing].
For further information, please visit [HYPERLINK:https://bisq.wiki/Account_limits#Account_signing].
popup.accountSigning.signedByArbitrator=One of your payment accounts has been verified and signed by an arbitrator. Trading with this account will automatically sign your trading peer''s account after a successful trade.\n\n{0}
popup.accountSigning.signedByPeer=One of your payment accounts has been verified and signed by a trading peer. Your initial trading limit will be lifted and you''ll be able to sign other accounts in {0} days from now.\n\n{1}
popup.accountSigning.peerLimitLifted=The initial limit for one of your accounts has been lifted.\n\n{0}
Expand Down Expand Up @@ -3442,7 +3442,7 @@ payment.f2f.info='Face to Face' trades have different rules and come with differ
of what happened at the meeting. In such cases the BTC funds might get locked indefinitely or until the trading peers come to \
an agreement.\n\n\
To be sure you fully understand the differences with 'Face to Face' trades please read the instructions and \
recommendations at: [HYPERLINK:https://docs.bisq.network/trading-rules.html#f2f-trading]
recommendations at: [HYPERLINK:https://bisq.wiki/Face-to-face_(payment_method)]
payment.f2f.info.openURL=Open web page
payment.f2f.offerbook.tooltip.countryAndCity=Country and city: {0} / {1}
payment.f2f.offerbook.tooltip.extra=Additional information: {0}
Expand Down
Expand Up @@ -21,6 +21,7 @@

import bisq.common.config.Config;

import org.junit.After;
import org.junit.Assert;
import org.junit.Test;

Expand All @@ -45,4 +46,21 @@ public void manualSeedNodes() {
Assert.assertTrue(DUT.getSeedNodeAddresses().contains(new NodeAddress(seed1)));
Assert.assertTrue(DUT.getSeedNodeAddresses().contains(new NodeAddress(seed2)));
}

@Test
public void ignoreBannedSeedNodesWithWrongFormat() {
String seed1 = "asdfbroken";
String seed2 = "localhost:2002";
String baseCurrencyNetwork = format("--%s=%s", Config.BASE_CURRENCY_NETWORK, "btc_regtest");
String bannedSeedNodesOption = format("--%s=%s,%s", Config.BANNED_SEED_NODES, seed1, seed2);
Config config = new Config(baseCurrencyNetwork, bannedSeedNodesOption);
DefaultSeedNodeRepository DUT = new DefaultSeedNodeRepository(config);
Assert.assertFalse(DUT.getSeedNodeAddresses().contains(new NodeAddress(seed2)));
}

@After
public void tearDown() {
//restore default Config
new Config();
}
}
Expand Up @@ -244,7 +244,7 @@ private void onSaveNewAccount(PaymentAccount paymentAccount) {
new Popup().information(Res.get("payment.f2f.info"))
.width(700)
.closeButtonText(Res.get("payment.f2f.info.openURL"))
.onClose(() -> GUIUtil.openWebPage("https://docs.bisq.network/trading-rules.html#f2f-trading"))
.onClose(() -> GUIUtil.openWebPage("https://bisq.wiki/Face-to-face_(payment_method)"))
.actionButtonText(Res.get("shared.iUnderstand"))
.onAction(() -> doSaveNewAccount(paymentAccount))
.show();
Expand Down
Expand Up @@ -436,7 +436,7 @@ private void onShowPayFundsScreen() {
String key = "securityDepositInfo";
new Popup().backgroundInfo(Res.get("popup.info.securityDepositInfo"))
.actionButtonText(Res.get("shared.faq"))
.onAction(() -> GUIUtil.openWebPage("https://bisq.network/faq#6"))
.onAction(() -> GUIUtil.openWebPage("https://bisq.wiki/Frequently_asked_questions#Why_does_Bisq_require_a_security_deposit_in_BTC.3F"))
.useIUnderstandButton()
.dontShowAgainId(key)
.show();
Expand Down
You are viewing a condensed version of this merge commit. You can view the full changes here.