-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathBCDAddress.java
More file actions
51 lines (42 loc) · 1.71 KB
/
BCDAddress.java
File metadata and controls
51 lines (42 loc) · 1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package org.bitcoindiamond.demo;
import org.bitcoindiamondj.core.*;
import org.bitcoindiamondj.params.MainNetParams;
import org.bitcoindiamondj.script.Script;
public class BCDAddress {
private static NetworkParameters params = MainNetParams.get();
/**
* Check address is valid
* @param address Base58 string address
* @return boolean
*/
public static boolean isValidAddress(String address) {
try {
// Get a new Address object from import string address
Address.fromString(params, address);
return true;
} catch(AddressFormatException e) {
return false;
}
}
public static void main(String[] args) {
// Make new ECKey
ECKey key = new ECKey();
// Get private key
String privateKeyWIF = key.getPrivateKeyAsWiF(params);
System.out.println("Private key (WIF): " + privateKeyWIF);
// Get public key
String publicKeyHex = key.getPublicKeyAsHex();
System.out.println("Public key hex: " + publicKeyHex);
// Get P2PKH address
Address addressP2PKH = Address.fromKey(params, key, Script.ScriptType.P2PKH);
Address addressLegacy = LegacyAddress.fromKey(params, key);
assert (addressLegacy.equals(addressP2PKH));
System.out.println("Address(P2PKH): " + addressP2PKH);
// Get P2WPKH address
Address addressP2WPKH = Address.fromKey(params, key, Script.ScriptType.P2WPKH);
System.out.println("Address(P2WPKH): " + addressP2WPKH);
// Validate address
boolean validRes = isValidAddress(addressP2PKH.toString());
System.out.println("Address " + addressP2PKH + " is valid: " + validRes);
}
}