Merge pull request #2238 from nezero/master

List DeepOnion (ONION)
This commit is contained in:
Christoph Atteneder 2019-01-11 14:54:17 +01:00 committed by GitHub
commit 493592b8c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 101 additions and 0 deletions

View File

@ -0,0 +1,56 @@
/*
* 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.Base58BitcoinAddressValidator;
import bisq.asset.Coin;
import bisq.asset.NetworkParametersAdapter;
import org.libdohj.params.DashMainNetParams;
public class DeepOnion extends Coin {
public DeepOnion() {
super("DeepOnion", "ONION", new DeepOnionAddressValidator());
}
public static class DeepOnionAddressValidator extends Base58BitcoinAddressValidator {
public DeepOnionAddressValidator() {
super(new DeepOnionParams());
}
@Override
public AddressValidationResult validate(String address) {
if (!address.matches("^[D][a-km-zA-HJ-NP-Z1-9]{24,33}$"))
return AddressValidationResult.invalidStructure();
return super.validate(address);
}
}
public static class DeepOnionParams extends NetworkParametersAdapter {
public DeepOnionParams() {
super();
addressHeader = 31;
p2shHeader = 78;
acceptableAddressCodes = new int[]{addressHeader, p2shHeader};
}
}
}

View File

@ -22,6 +22,7 @@ bisq.asset.coins.Croat
bisq.asset.coins.Dash
bisq.asset.coins.Decred
bisq.asset.coins.Dextro
bisq.asset.coins.DeepOnion
bisq.asset.coins.Dogecoin
bisq.asset.coins.Dragonglass
bisq.asset.coins.Ether

View File

@ -0,0 +1,44 @@
/*
* 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 DeepOnionTest extends AbstractAssetTest {
public DeepOnionTest() {
super(new DeepOnion());
}
@Test
public void testValidAddresses() {
assertValidAddress("DYQLyJ1CcxJyRBujtKdv2JDkQEkEkAzNNA");
assertValidAddress("DW7YKfPgm7fdTNGyyaSVfQhY7ccBoeVK5D");
assertValidAddress("DsA31xPpijxiCuTQeYMpMTQsTH1m2jTgtS");
}
@Test
public void testInvalidAddresses() {
assertInvalidAddress("1sA31xPpijxiCuTQeYMpMTQsTH1m2jTgtS");
assertInvalidAddress("DsA31xPpijxiCuTQeYMpMTQsTH1m2jTgtSd");
assertInvalidAddress("DsA31xPpijxiCuTQeYMpMTQsTH1m2jTgt#");
}
}