mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-23 15:00:30 +01:00
Remove Ergo coin as prep to remove Bouncy Castle
This commit is contained in:
parent
e974d616cf
commit
e93a4efbc9
3 changed files with 0 additions and 115 deletions
|
@ -1,66 +0,0 @@
|
||||||
/*
|
|
||||||
* 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.asset.coins;
|
|
||||||
|
|
||||||
import bisq.asset.AddressValidationResult;
|
|
||||||
import bisq.asset.AddressValidator;
|
|
||||||
import bisq.asset.Coin;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
import org.bitcoinj.core.Base58;
|
|
||||||
import org.bitcoinj.core.AddressFormatException;
|
|
||||||
import org.bouncycastle.crypto.digests.Blake2bDigest;
|
|
||||||
|
|
||||||
public class Ergo extends Coin {
|
|
||||||
|
|
||||||
public Ergo() {
|
|
||||||
super("Ergo", "ERG", new ErgoAddressValidator());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class ErgoAddressValidator implements AddressValidator {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public AddressValidationResult validate(String address) {
|
|
||||||
try {
|
|
||||||
byte[] decoded = Base58.decode(address);
|
|
||||||
if (decoded.length < 4) {
|
|
||||||
return AddressValidationResult.invalidAddress("Input too short: " + decoded.length);
|
|
||||||
}
|
|
||||||
if (decoded[0] != 1 && decoded[0] != 2 && decoded[0] != 3) {
|
|
||||||
return AddressValidationResult.invalidAddress("Invalid prefix");
|
|
||||||
}
|
|
||||||
byte[] data = Arrays.copyOfRange(decoded, 0, decoded.length - 4);
|
|
||||||
byte[] checksum = Arrays.copyOfRange(decoded, decoded.length - 4, decoded.length);
|
|
||||||
byte[] hashed = new byte[32];
|
|
||||||
{
|
|
||||||
Blake2bDigest digest = new Blake2bDigest(256);
|
|
||||||
digest.update(data, 0, data.length);
|
|
||||||
digest.doFinal(hashed, 0);
|
|
||||||
}
|
|
||||||
byte[] actualChecksum = Arrays.copyOfRange(hashed, 0, 4);
|
|
||||||
if (!Arrays.equals(checksum, actualChecksum)) {
|
|
||||||
return AddressValidationResult.invalidAddress("Invalid checksum");
|
|
||||||
}
|
|
||||||
} catch (AddressFormatException e) {
|
|
||||||
return AddressValidationResult.invalidAddress(e);
|
|
||||||
}
|
|
||||||
return AddressValidationResult.validAddress();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -40,7 +40,6 @@ bisq.asset.coins.Donu
|
||||||
bisq.asset.coins.Dragonglass
|
bisq.asset.coins.Dragonglass
|
||||||
bisq.asset.coins.DSTRA
|
bisq.asset.coins.DSTRA
|
||||||
bisq.asset.coins.Emercoin
|
bisq.asset.coins.Emercoin
|
||||||
bisq.asset.coins.Ergo
|
|
||||||
bisq.asset.coins.Ether
|
bisq.asset.coins.Ether
|
||||||
bisq.asset.coins.EtherClassic
|
bisq.asset.coins.EtherClassic
|
||||||
bisq.asset.coins.FourtyTwo
|
bisq.asset.coins.FourtyTwo
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
/*
|
|
||||||
* 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.asset.coins;
|
|
||||||
|
|
||||||
import bisq.asset.AbstractAssetTest;
|
|
||||||
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
public class ErgoTest extends AbstractAssetTest {
|
|
||||||
|
|
||||||
public ErgoTest() {
|
|
||||||
super(new Ergo());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testValidAddresses() {
|
|
||||||
assertValidAddress("9fRAWhdxEsTcdb8PhGNrZfwqa65zfkuYHAMmkQLcic1gdLSV5vA");
|
|
||||||
assertValidAddress("25qGdVWg2yyYho8uC1pLtc7KxFn4nEEAwD");
|
|
||||||
assertValidAddress("23NL9a8ngN28ovtLiKLgHexcdTKBbUMLhH");
|
|
||||||
assertValidAddress("7bwdkU5V8");
|
|
||||||
assertValidAddress("BxKBaHkvrTvLZrDcZjcsxsF7aSsrN73ijeFZXtbj4CXZHHcvBtqSxQ");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testInvalidAddresses() {
|
|
||||||
assertInvalidAddress("9fRAWhdxEsTcdb8PhGNrZfwqa65zfkuYHAMmkQLcic1gdLSV5vAaa");
|
|
||||||
assertInvalidAddress("afRAWhdxEsTcdb8PhGNrZfwqa65zfkuYHAMmkQLcic1gdLSV5vA");
|
|
||||||
assertInvalidAddress("25qGdVWg2yyYho8uC1pLtc7KxFn4nEEAwDaa");
|
|
||||||
assertInvalidAddress("23NL9a8ngN28ovtLiKLgHexcdTKBbUMLhHaa");
|
|
||||||
assertInvalidAddress("7bwdkU5V8aa");
|
|
||||||
assertInvalidAddress("BxKBaHkvrTvLZrDcZjcsxsF7aSsrN73ijeFZXtbj4CXZHHcvBtqSxQ#");
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue