Merge pull request #49 from kennycud/master

Add LTC address infos
This commit is contained in:
QuickMythril
2023-11-06 14:24:48 -05:00
committed by GitHub
8 changed files with 343 additions and 0 deletions

View File

@@ -4,6 +4,7 @@ import org.bitcoinj.core.Transaction;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.qortal.crosschain.AddressInfo;
import org.qortal.crosschain.Bitcoiny;
import org.qortal.crosschain.BitcoinyHTLC;
import org.qortal.crosschain.ForeignBlockchainException;
@@ -11,6 +12,8 @@ import org.qortal.repository.DataException;
import org.qortal.test.common.Common;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import static org.junit.Assert.*;
@@ -127,4 +130,36 @@ public abstract class BitcoinyTests extends Common {
System.out.println(address);
}
@Test
public void testGenerateRootKeyForTesting() {
String rootKey = BitcoinyTestsUtils.generateBip32RootKey( this.bitcoiny.getNetworkParameters() );
System.out.println(String.format(getCoinName() + " generated BIP32 Root Key: " + rootKey));
}
@Test
public void testGetWalletAddresses() throws ForeignBlockchainException {
String xprv58 = getDeterministicKey58();
Set<String> addresses = this.bitcoiny.getWalletAddresses(xprv58);
System.out.println( "root key = " + xprv58 );
System.out.println( "keys ...");
addresses.stream().forEach(System.out::println);
}
@Test
public void testWalletAddressInfos() throws ForeignBlockchainException {
String xprv58 = getDeterministicKey58();
List<AddressInfo> addressInfos = this.bitcoiny.getWalletAddressInfos(xprv58);
System.out.println("address count = " + addressInfos.size() );
System.out.println( "address infos ..." );
addressInfos.forEach( System.out::println );
}
}

View File

@@ -0,0 +1,42 @@
package org.qortal.test.crosschain;
import com.google.common.collect.ImmutableList;
import org.bitcoinj.core.NetworkParameters;
import org.bitcoinj.crypto.ChildNumber;
import org.bitcoinj.crypto.DeterministicKey;
import org.bitcoinj.script.Script;
import org.bitcoinj.wallet.DeterministicKeyChain;
import org.bitcoinj.wallet.DeterministicSeed;
import org.bitcoinj.wallet.Wallet;
import org.qortal.crosschain.ForeignBlockchainException;
import org.qortal.crosschain.Litecoin;
import org.qortal.repository.DataException;
import org.qortal.test.common.Common;
public class BitcoinyTestsUtils {
public static void main(String[] args) throws DataException, ForeignBlockchainException {
Common.useDefaultSettings();
final String rootKey = generateBip32RootKey( Litecoin.LitecoinNet.TEST3.getParams());
String address = Litecoin.getInstance().getUnusedReceiveAddress(rootKey);
System.out.println("rootKey = " + rootKey);
System.out.println("address = " + address);
System.exit(0);
}
public static String generateBip32RootKey(NetworkParameters networkParameters) {
final Wallet wallet = Wallet.createDeterministic(networkParameters, Script.ScriptType.P2PKH);
final DeterministicSeed seed = wallet.getKeyChainSeed();
final DeterministicKeyChain keyChain = DeterministicKeyChain.builder().seed(seed).build();
final ImmutableList<ChildNumber> path = keyChain.getAccountPath();
final DeterministicKey parent = keyChain.getKeyByPath(path, true);
final String rootKey = parent.serializePrivB58(networkParameters);
return rootKey;
}
}

View File

@@ -11,6 +11,7 @@ import org.qortal.crypto.Crypto;
import org.qortal.transform.TransformationException;
import java.util.List;
import java.util.Set;
import static org.junit.Assert.*;
import static org.qortal.crosschain.BitcoinyHTLC.Status.*;
@@ -241,4 +242,12 @@ public class PirateChainTests extends BitcoinyTests {
@Test
@Ignore(value = "Needs adapting for Pirate Chain")
public void testGetUnusedReceiveAddress() {}
@Test
@Ignore(value = "Needs adapting for Pirate Chain")
public void testGetWalletAddresses() throws ForeignBlockchainException {}
@Test
@Ignore(value = "Needs adapting for Pirate Chain")
public void testWalletAddressInfos() throws ForeignBlockchainException {}
}