public boolean isValidAddress(byte[] address) { try { Address.fromP2SHHash(TestNet3Params.get(), address); return true; } catch (AddressFormatException e) { return false; } }
/** Returns an Address that represents the script hash extracted from the given scriptPubKey */ public static Address fromP2SHScript(NetworkParameters params, Script scriptPubKey) { checkArgument(scriptPubKey.isPayToScriptHash(), "Not a P2SH script"); return fromP2SHHash(params, scriptPubKey.getPubKeyHash()); }
/** Returns an Address that represents the script hash extracted from the given scriptPubKey */ public static Address fromP2SHScript(NetworkParameters params, Script scriptPubKey) { checkArgument(scriptPubKey.isPayToScriptHash(), "Not a P2SH script"); return fromP2SHHash(params, scriptPubKey.getPubKeyHash()); }
/** Returns an Address that represents the script hash extracted from the given scriptPubKey. */ public static Address fromP2SHScript(NetworkParameters params, Script scriptPubKey) { checkArgument(scriptPubKey.isPayToScriptHash(), "Not a P2SH script"); return fromP2SHHash(params, scriptPubKey.getPubKeyHash()); }
/** Returns an Address that represents the script hash extracted from the given scriptPubKey */ public static Address fromP2SHScript(NetworkParameters params, Script scriptPubKey) { checkArgument(scriptPubKey.isPayToScriptHash(), "Not a P2SH script"); return fromP2SHHash(params, scriptPubKey.getPubKeyHash()); }
@Test public void p2shAddress() throws Exception { // Test that we can construct P2SH addresses Address mainNetP2SHAddress = Address.fromBase58(MainNetParams.get(), "35b9vsyH1KoFT5a5KtrKusaCcPLkiSo1tU"); assertEquals(mainNetP2SHAddress.version, MainNetParams.get().p2shHeader); assertTrue(mainNetP2SHAddress.isP2SHAddress()); Address testNetP2SHAddress = Address.fromBase58(TestNet3Params.get(), "2MuVSxtfivPKJe93EC1Tb9UhJtGhsoWEHCe"); assertEquals(testNetP2SHAddress.version, TestNet3Params.get().p2shHeader); assertTrue(testNetP2SHAddress.isP2SHAddress()); // Test that we can determine what network a P2SH address belongs to NetworkParameters mainNetParams = Address.getParametersFromAddress("35b9vsyH1KoFT5a5KtrKusaCcPLkiSo1tU"); assertEquals(MainNetParams.get().getId(), mainNetParams.getId()); NetworkParameters testNetParams = Address.getParametersFromAddress("2MuVSxtfivPKJe93EC1Tb9UhJtGhsoWEHCe"); assertEquals(TestNet3Params.get().getId(), testNetParams.getId()); // Test that we can convert them from hashes byte[] hex = HEX.decode("2ac4b0b501117cc8119c5797b519538d4942e90e"); Address a = Address.fromP2SHHash(mainParams, hex); assertEquals("35b9vsyH1KoFT5a5KtrKusaCcPLkiSo1tU", a.toString()); Address b = Address.fromP2SHHash(testParams, HEX.decode("18a0e827269b5211eb51a4af1b2fa69333efa722")); assertEquals("2MuVSxtfivPKJe93EC1Tb9UhJtGhsoWEHCe", b.toString()); Address c = Address.fromP2SHScript(mainParams, ScriptBuilder.createP2SHOutputScript(hex)); assertEquals("35b9vsyH1KoFT5a5KtrKusaCcPLkiSo1tU", c.toString()); }