I double checked everything address was generated successfully.
On Tuesday, November 14, 2017 at 12:17:02 PM UTC+2, KG wrote:
>
> Hi I was attempting to create a 2of2 P2SH-P2WSH address using bitcoinj.
> Since I couldn't properly sign(invalid private key from bitcoind) received
> output I wanted verify that I am correctly creating this address.
>
> Here is the* code used*. Library used is *0.14.5.* with some inspiration
> taken from* segwit branch* on github.
>
> final List<String> privKeys =
> Arrays.asList("c3accc350d70d1981c4366fd6fd86d9cc311048ae8620dac0b3dc9d18ce415fa",
>
> "1093e97f3c01bd766473cc51441d443e9325a59387421a9e2fb69b7f9587d915");
>
> List<ECKey> ecKeys = new ArrayList<>();
> final SecureRandom secureRandom = getSecureRandom();
> privKeys.forEach(privKey -> {
> try {
> final ECKey ecKey =
> ECKey.fromPrivate(Hex.decodeHex(privKey.toCharArray()));
> ecKeys.add(ecKey);
> System.out.println(String.format("Private Key %s",
> ecKey.getPrivateKeyAsHex()));
> System.out.println(String.format("Public Key %s",
> ecKey.getPublicKeyAsHex()));
>
> System.out.println("--------------------------------------------------------");
> }
> catch (DecoderException e) {
> throw new RuntimeException(e);
> }
> });
> System.out.println();
>
> final Script witnessProgram = ScriptBuilder.createRedeemScript(2,
> ecKeys);
> System.out.println("Witness program=" + witnessProgram);
> System.out.println("Witness hex=" +
> Hex.encodeHexString(witnessProgram.getProgram()) + "\n");
>
> byte[] hash = Sha256Hash.hash(witnessProgram.getProgram());
> final Script redeemScript = new
> ScriptBuilder().smallNum(0).data(hash).build();
> System.out.println("redeemScript program=" + redeemScript);
> System.out.println("redeemScript hex=" +
> Hex.encodeHexString(redeemScript.getProgram()) + "\n");
>
> final Script scriptPubKey =
> ScriptBuilder.createP2SHOutputScript(redeemScript);
> System.out.println("scriptPubKey program=" + scriptPubKey);
> System.out.println("scriptPubKey hex=" +
> Hex.encodeHexString(scriptPubKey.getProgram()) + "\n");
>
> final org.bitcoinj.core.Address addressT =
> scriptPubKey.getToAddress(TestNet3Params.get());
> System.out.println(String.format("TestNetAddress=%s", addressT));
>
> *Program output:*
> Private Key
> c3accc350d70d1981c4366fd6fd86d9cc311048ae8620dac0b3dc9d18ce415fa
> Public Key
> 0320ce424c6d61f352ccfea60d209651672cfb03b2dc77d1d64d3ba519aec756ae
> --------------------------------------------------------
> Private Key
> 1093e97f3c01bd766473cc51441d443e9325a59387421a9e2fb69b7f9587d915
> Public Key
> 020b020e27e49f049eac10010506499a84e1d59a500cd3680e9ded580df9a107b0
> --------------------------------------------------------
>
> Witness program=2
> PUSHDATA(33)[020b020e27e49f049eac10010506499a84e1d59a500cd3680e9ded580df9a107b0]
>
> PUSHDATA(33)[0320ce424c6d61f352ccfea60d209651672cfb03b2dc77d1d64d3ba519aec756ae]
>
> 2 CHECKMULTISIG
> Witness
> hex=5221020b020e27e49f049eac10010506499a84e1d59a500cd3680e9ded580df9a107b0210320ce424c6d61f352ccfea60d209651672cfb03b2dc77d1d64d3ba519aec756ae52ae
>
> redeemScript program=0
> PUSHDATA(32)[16a91e58e02069f95ea6defba7436199658573c34d384c69779779f4500d7cac]
> redeemScript
> hex=002016a91e58e02069f95ea6defba7436199658573c34d384c69779779f4500d7cac
>
> scriptPubKey program=HASH160
> PUSHDATA(20)[035e0a0739eec3c195f9dc0d8b85e6e3f6ae1ece] EQUAL
> scriptPubKey hex=a914035e0a0739eec3c195f9dc0d8b85e6e3f6ae1ece87
>
> TestNetAddress=2MsZ2fpGKUydzY62v6trPHR8eCx5JTy1Dpa
>
--
You received this message because you are subscribed to the Google Groups
"bitcoinj" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.