From c7c660e1d80b01b362ec7ae2561b64a04833383c Mon Sep 17 00:00:00 2001 From: jmacxx <47253594+jmacxx@users.noreply.github.com> Date: Mon, 26 Jul 2021 23:17:42 -0500 Subject: [PATCH 1/2] allow LTC accounts to use segwit addresses --- assets/src/main/java/bisq/asset/coins/Litecoin.java | 7 ++++--- assets/src/test/java/bisq/asset/coins/LitecoinTest.java | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/assets/src/main/java/bisq/asset/coins/Litecoin.java b/assets/src/main/java/bisq/asset/coins/Litecoin.java index 34e7ef86713..871ad6e6914 100644 --- a/assets/src/main/java/bisq/asset/coins/Litecoin.java +++ b/assets/src/main/java/bisq/asset/coins/Litecoin.java @@ -17,19 +17,20 @@ package bisq.asset.coins; -import bisq.asset.Base58AddressValidator; +import bisq.asset.BitcoinAddressValidator; import bisq.asset.Coin; import bisq.asset.NetworkParametersAdapter; public class Litecoin extends Coin { public Litecoin() { - super("Litecoin", "LTC", new Base58AddressValidator(new LitecoinMainNetParams()), Network.MAINNET); + super("Litecoin", "LTC", new BitcoinAddressValidator(new LitecoinMainNetParams()), Network.MAINNET); } public static class LitecoinMainNetParams extends NetworkParametersAdapter { public LitecoinMainNetParams() { this.addressHeader = 48; - this.p2shHeader = 5; + this.p2shHeader = 50; + this.segwitAddressHrp = "ltc"; } } } diff --git a/assets/src/test/java/bisq/asset/coins/LitecoinTest.java b/assets/src/test/java/bisq/asset/coins/LitecoinTest.java index f1fd9b4028d..083d3610609 100644 --- a/assets/src/test/java/bisq/asset/coins/LitecoinTest.java +++ b/assets/src/test/java/bisq/asset/coins/LitecoinTest.java @@ -32,6 +32,8 @@ public void testValidAddresses() { assertValidAddress("Lg3PX8wRWmApFCoCMAsPF5P9dPHYQHEWKW"); assertValidAddress("LTuoeY6RBHV3n3cfhXVVTbJbxzxnXs9ofm"); assertValidAddress("LgfapHEPhZbRF9pMd5WPT35hFXcZS1USrW"); + assertValidAddress("ltc1qxtm55gultqzhqzl2p3ks50hg2478y3hehuj6dz"); + assertValidAddress("MGEW4aba3tnrVtVhGcmoqqHaLt5ymPSLPi"); } @Test @@ -39,5 +41,7 @@ public void testInvalidAddresses() { assertInvalidAddress("1LgfapHEPhZbRF9pMd5WPT35hFXcZS1USrW"); assertInvalidAddress("LgfapHEPhZbdRF9pMd5WPT35hFXcZS1USrW"); assertInvalidAddress("LgfapHEPhZbRF9pMd5WPT35hFXcZS1USrW#"); + assertInvalidAddress("bc1qxtm55gultqzhqzl2p3ks50hg2478y3hehuj6dz"); + assertInvalidAddress("MGEW4aba3tnrVtVhGcmoqqHaLt5ymPSLPW"); } } From 670ff92f4c8ac1528860b32ed01b91ef21e6b29e Mon Sep 17 00:00:00 2001 From: jmacxx <47253594+jmacxx@users.noreply.github.com> Date: Thu, 29 Jul 2021 08:04:38 -0500 Subject: [PATCH 2/2] fix deserialize issue for deprecated payment account imported from backup --- core/src/main/java/bisq/core/payment/PaymentAccountList.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/src/main/java/bisq/core/payment/PaymentAccountList.java b/core/src/main/java/bisq/core/payment/PaymentAccountList.java index a35801705ce..d2271d4119d 100644 --- a/core/src/main/java/bisq/core/payment/PaymentAccountList.java +++ b/core/src/main/java/bisq/core/payment/PaymentAccountList.java @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; import lombok.EqualsAndHashCode; @@ -47,6 +48,7 @@ public Message toProtoMessage() { public static PaymentAccountList fromProto(protobuf.PaymentAccountList proto, CoreProtoResolver coreProtoResolver) { return new PaymentAccountList(new ArrayList<>(proto.getPaymentAccountList().stream() .map(e -> PaymentAccount.fromProto(e, coreProtoResolver)) + .filter(Objects::nonNull) .collect(Collectors.toList()))); } }