mirror of
https://github.com/boldsuck/haveno.git
synced 2024-12-22 20:19:21 +00:00
support Bitcoin Cash
This commit is contained in:
parent
e864210f4b
commit
e91b96227f
6 changed files with 78 additions and 5 deletions
30
assets/src/main/java/bisq/asset/coins/BitcoinCash.java
Normal file
30
assets/src/main/java/bisq/asset/coins/BitcoinCash.java
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
/*
|
||||||
|
* This file is part of Haveno.
|
||||||
|
*
|
||||||
|
* Haveno 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.
|
||||||
|
*
|
||||||
|
* Haveno 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 Haveno. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package bisq.asset.coins;
|
||||||
|
|
||||||
|
import bisq.asset.BitcoinAddressValidator;
|
||||||
|
import bisq.asset.Coin;
|
||||||
|
|
||||||
|
import org.bitcoinj.params.MainNetParams;
|
||||||
|
|
||||||
|
public class BitcoinCash extends Coin {
|
||||||
|
|
||||||
|
public BitcoinCash() {
|
||||||
|
super("Bitcoin Cash", "BCH", new BitcoinAddressValidator(MainNetParams.get()), Network.MAINNET); // TODO: BCH address validation
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,6 +15,7 @@ bisq.asset.coins.Bitcoin$Mainnet
|
||||||
bisq.asset.coins.Bitcoin$Regtest
|
bisq.asset.coins.Bitcoin$Regtest
|
||||||
bisq.asset.coins.BitcoinRhodium
|
bisq.asset.coins.BitcoinRhodium
|
||||||
bisq.asset.coins.Bitcoin$Testnet
|
bisq.asset.coins.Bitcoin$Testnet
|
||||||
|
bisq.asset.coins.BitcoinCash
|
||||||
bisq.asset.coins.BitDaric
|
bisq.asset.coins.BitDaric
|
||||||
bisq.asset.coins.Bitmark
|
bisq.asset.coins.Bitmark
|
||||||
bisq.asset.coins.Bitzec
|
bisq.asset.coins.Bitzec
|
||||||
|
|
44
assets/src/test/java/bisq/asset/coins/BitcoinCashTest.java
Normal file
44
assets/src/test/java/bisq/asset/coins/BitcoinCashTest.java
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
/*
|
||||||
|
* This file is part of Haveno.
|
||||||
|
*
|
||||||
|
* Haveno 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.
|
||||||
|
*
|
||||||
|
* Haveno 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 Haveno. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package bisq.asset.coins;
|
||||||
|
|
||||||
|
import bisq.asset.AbstractAssetTest;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class BitcoinCashTest extends AbstractAssetTest {
|
||||||
|
|
||||||
|
public BitcoinCashTest() {
|
||||||
|
super(new BitcoinCash());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testValidAddresses() {
|
||||||
|
assertValidAddress("17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem");
|
||||||
|
assertValidAddress("3EktnHQD7RiAE6uzMj2ZifT9YgRrkSgzQX");
|
||||||
|
assertValidAddress("1111111111111111111114oLvT2");
|
||||||
|
assertValidAddress("1BitcoinEaterAddressDontSendf59kuE");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInvalidAddresses() {
|
||||||
|
assertInvalidAddress("17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhemqq");
|
||||||
|
assertInvalidAddress("17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYheO");
|
||||||
|
assertInvalidAddress("17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhek#");
|
||||||
|
}
|
||||||
|
}
|
|
@ -135,17 +135,16 @@ public class CurrencyUtil {
|
||||||
public static List<CryptoCurrency> getMainCryptoCurrencies() {
|
public static List<CryptoCurrency> getMainCryptoCurrencies() {
|
||||||
final List<CryptoCurrency> result = new ArrayList<>();
|
final List<CryptoCurrency> result = new ArrayList<>();
|
||||||
result.add(new CryptoCurrency("BTC", "Bitcoin"));
|
result.add(new CryptoCurrency("BTC", "Bitcoin"));
|
||||||
result.add(new CryptoCurrency("LTC", "Litecoin"));
|
result.add(new CryptoCurrency("BCH", "Bitcoin Cash"));
|
||||||
result.add(new CryptoCurrency("ETH", "Ether"));
|
result.add(new CryptoCurrency("ETH", "Ether"));
|
||||||
|
result.add(new CryptoCurrency("LTC", "Litecoin"));
|
||||||
result.add(new CryptoCurrency("ZEC", "Zcash"));
|
result.add(new CryptoCurrency("ZEC", "Zcash"));
|
||||||
result.sort(TradeCurrency::compareTo);
|
result.sort(TradeCurrency::compareTo);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<CryptoCurrency> getRemovedCryptoCurrencies() {
|
public static List<CryptoCurrency> getRemovedCryptoCurrencies() {
|
||||||
final List<CryptoCurrency> currencies = new ArrayList<>();
|
final List<CryptoCurrency> currencies = new ArrayList<>();
|
||||||
currencies.add(new CryptoCurrency("BCH", "Bitcoin Cash"));
|
|
||||||
currencies.add(new CryptoCurrency("BCHC", "Bitcoin Clashic"));
|
currencies.add(new CryptoCurrency("BCHC", "Bitcoin Clashic"));
|
||||||
currencies.add(new CryptoCurrency("ACH", "AchieveCoin"));
|
currencies.add(new CryptoCurrency("ACH", "AchieveCoin"));
|
||||||
currencies.add(new CryptoCurrency("SC", "Siacoin"));
|
currencies.add(new CryptoCurrency("SC", "Siacoin"));
|
||||||
|
|
|
@ -98,7 +98,6 @@ public class CurrencyUtilTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetNameAndCodeOfRemovedAsset() {
|
public void testGetNameAndCodeOfRemovedAsset() {
|
||||||
assertEquals("Bitcoin Cash (BCH)", CurrencyUtil.getNameAndCode("BCH"));
|
|
||||||
assertEquals("N/A (XYZ)", CurrencyUtil.getNameAndCode("XYZ"));
|
assertEquals("N/A (XYZ)", CurrencyUtil.getNameAndCode("XYZ"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@ class GrpcPriceService extends PriceImplBase {
|
||||||
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
||||||
.or(() -> Optional.of(CallRateMeteringInterceptor.valueOf(
|
.or(() -> Optional.of(CallRateMeteringInterceptor.valueOf(
|
||||||
new HashMap<>() {{
|
new HashMap<>() {{
|
||||||
put(getGetMarketPriceMethod().getFullMethodName(), new GrpcCallRateMeter(10, SECONDS));
|
put(getGetMarketPriceMethod().getFullMethodName(), new GrpcCallRateMeter(20, SECONDS));
|
||||||
}}
|
}}
|
||||||
)));
|
)));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue