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.BitcoinRhodium
|
||||
bisq.asset.coins.Bitcoin$Testnet
|
||||
bisq.asset.coins.BitcoinCash
|
||||
bisq.asset.coins.BitDaric
|
||||
bisq.asset.coins.Bitmark
|
||||
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() {
|
||||
final List<CryptoCurrency> result = new ArrayList<>();
|
||||
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("LTC", "Litecoin"));
|
||||
result.add(new CryptoCurrency("ZEC", "Zcash"));
|
||||
result.sort(TradeCurrency::compareTo);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static List<CryptoCurrency> getRemovedCryptoCurrencies() {
|
||||
final List<CryptoCurrency> currencies = new ArrayList<>();
|
||||
currencies.add(new CryptoCurrency("BCH", "Bitcoin Cash"));
|
||||
currencies.add(new CryptoCurrency("BCHC", "Bitcoin Clashic"));
|
||||
currencies.add(new CryptoCurrency("ACH", "AchieveCoin"));
|
||||
currencies.add(new CryptoCurrency("SC", "Siacoin"));
|
||||
|
|
|
@ -98,7 +98,6 @@ public class CurrencyUtilTest {
|
|||
|
||||
@Test
|
||||
public void testGetNameAndCodeOfRemovedAsset() {
|
||||
assertEquals("Bitcoin Cash (BCH)", CurrencyUtil.getNameAndCode("BCH"));
|
||||
assertEquals("N/A (XYZ)", CurrencyUtil.getNameAndCode("XYZ"));
|
||||
}
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ class GrpcPriceService extends PriceImplBase {
|
|||
return getCustomRateMeteringInterceptor(coreApi.getConfig().appDataDir, this.getClass())
|
||||
.or(() -> Optional.of(CallRateMeteringInterceptor.valueOf(
|
||||
new HashMap<>() {{
|
||||
put(getGetMarketPriceMethod().getFullMethodName(), new GrpcCallRateMeter(10, SECONDS));
|
||||
put(getGetMarketPriceMethod().getFullMethodName(), new GrpcCallRateMeter(20, SECONDS));
|
||||
}}
|
||||
)));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue