package com.neemre.btcdcli4j.examples.client;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Properties;
import org.apache.http.impl.client.CloseableHttpClient;
import com.neemre.btcdcli4j.core.client.BtcdClient;
import com.neemre.btcdcli4j.core.domain.Output;
import com.neemre.btcdcli4j.core.domain.OutputOverview;
import com.neemre.btcdcli4j.core.domain.enums.SigHashTypes;
import com.neemre.btcdcli4j.examples.util.ResourceUtils;
/**A list of examples demonstrating the use of <i>bitcoind</i>'s raw transaction RPCs (via the JSON-RPC
* API).*/
public class RawTransactionApi {
public static void main(String[] args) throws Exception {
CloseableHttpClient httpProvider = ResourceUtils.getHttpProvider();
Properties nodeConfig = ResourceUtils.getNodeConfig();
BtcdClient client = new VerboseBtcdClientImpl(httpProvider, nodeConfig);
client.createRawTransaction(Arrays.asList(new OutputOverview[]{new OutputOverview(
"c61706760cbae899d8ef130c6d6405ce67c163340c7f78a5388c1adb44e271a7", 0)}),
new HashMap<String, BigDecimal>() {{
put("mkedpaeZELrF36mjpNmEdmLznN7YKKHVSV", new BigDecimal("0.299"));
put("mh2GwDCi8rhm319vRLyLyDTPgmnFLprwb7", new BigDecimal("1.900"));}});
client.decodeRawTransaction("01000000019851e46f856eaa07c129e37d8ebfbc4e99f764e4623dd344dabf6718"
+ "e2d66f650000000000ffffffff02580f0200000000001976a914af7d3ceab273e95a623b45fa51134583"
+ "6ddccf8488acd8470300000000001976a9140ebec5470aec62ac2731ac536f4860768e31983288ac0000"
+ "0000");
client.decodeScript("5321021a971b74e19dbfa8d72fba6900bb49f6301cc8b7f86d1a5dd59397d3bdce88782103"
+ "85fdc5e1adec9636cb1930e653da92024d3d26834306b6785a0b206995ccb7c121028d60b26dfdb6c92d"
+ "ac52958106b0477a661f3eb562bde36448e37231e252e9a3410450fed2184797eef3ce649df3adccb19a"
+ "dc02916c3d565cb02c50b2aaabd9394eb2bd024692b57602c95a86a9c3dabbbaa163db340cbd58506c11"
+ "ec9bf757c88854ae");
client.getRawTransaction("c6332a3b5624bb0dea70ba47d89ad150df443bf65b725a1e91b52753b20f7ca1");
client.getRawTransaction("c6332a3b5624bb0dea70ba47d89ad150df443bf65b725a1e91b52753b20f7ca1", 1);
client.sendRawTransaction("0100000001a771e244db1a8c38a5787f0c3463c167ce05646d0c13efd899e8ba0c"
+ "760617c6000000006a473044022059dd8deaa2a448c2ad9e30a56f66d1f01c1faa4edc8e49dfd0351f62"
+ "110924870220174b0e6ce04a109b39b8a51f1265211bf9bea00d562537bfc217914f8b7208d601210264"
+ "d2aa10dbe5048d323ebc16bd42fe33dd6b91850fcf277aa9d0bf6d5fa7879bffffffff02802b530b0000"
+ "00001976a9141083bfc4f51e3556a7908dde8a7d32e827e1212d88ace03cc801000000001976a914384c"
+ "891aeb1caee8c44039031a2d874228e5b4cd88ac00000000");
client.sendRawTransaction("01000000019851e46f856eaa07c129e37d8ebfbc4e99f764e4623dd344dabf6718e2"
+ "d66f65000000006a473044022011fdc063358b8d85700a81b4b16077f88256706e4fa0740ea09756b950"
+ "d02dc802205166f7234f2cc1e395930944751513253dc4458d8b636bd4b96b510d5ff96fd201210264d2"
+ "aa10dbe5048d323ebc16bd42fe33dd6b91850fcf277aa9d0bf6d5fa7879bffffffff0300ef1c0d000000"
+ "001976a9141083bfc4f51e3556a7908dde8a7d32e827e1212d88ac580f0200000000001976a914af7d3c"
+ "eab273e95a623b45fa511345836ddccf8488acd8470300000000001976a9140ebec5470aec62ac2731ac"
+ "536f4860768e31983288ac00000000", true);
client.signRawTransaction("01000000019851e46f856eaa07c129e37d8ebfbc4e99f764e4623dd344dabf6718e2"
+ "d66f650000000000ffffffff0300ef1c0d000000001976a9141083bfc4f51e3556a7908dde8a7d32e827"
+ "e1212d88ac580f0200000000001976a914af7d3ceab273e95a623b45fa511345836ddccf8488acd84703"
+ "00000000001976a9140ebec5470aec62ac2731ac536f4860768e31983288ac00000000");
client.signRawTransaction("01000000019851e46f856eaa07c129e37d8ebfbc4e99f764e4623dd344dabf6718e2"
+ "d66f650000000000ffffffff0300ef1c0d000000001976a9141083bfc4f51e3556a7908dde8a7d32e827"
+ "e1212d88ac580f0200000000001976a914af7d3ceab273e95a623b45fa511345836ddccf8488acd84703"
+ "00000000001976a9140ebec5470aec62ac2731ac536f4860768e31983288ac00000000",
Arrays.asList(new Output[]{new Output("656fd6e21867bfda44d33d62e464f7994ebcbf8e7de329c1"
+ "07aa6e856fe45198", 0, "76a9141083bfc4f51e3556a7908dde8a7d32e827e1212d88ac",
null)}));
client.signRawTransaction("01000000019851e46f856eaa07c129e37d8ebfbc4e99f764e4623dd344dabf6718e2"
+ "d66f650000000000ffffffff0300ef1c0d000000001976a9141083bfc4f51e3556a7908dde8a7d32e827"
+ "e1212d88ac580f0200000000001976a914af7d3ceab273e95a623b45fa511345836ddccf8488acd84703"
+ "00000000001976a9140ebec5470aec62ac2731ac536f4860768e31983288ac00000000",
Arrays.asList(new Output[]{new Output("656fd6e21867bfda44d33d62e464f7994ebcbf8e7de329c1"
+ "07aa6e856fe45198", 0, "76a9141083bfc4f51e3556a7908dde8a7d32e827e1212d88ac",
null)}), Arrays.asList(new String[]{"cNbvKQrwsEtwriHYK9ji1k7BZqggD3ZezXfkWJZFNp"
+ "6PmSTfWEkT"}));
client.signRawTransaction("01000000019851e46f856eaa07c129e37d8ebfbc4e99f764e4623dd344dabf6718e2"
+ "d66f650000000000ffffffff0300ef1c0d000000001976a9141083bfc4f51e3556a7908dde8a7d32e827"
+ "e1212d88ac580f0200000000001976a914af7d3ceab273e95a623b45fa511345836ddccf8488acd84703"
+ "00000000001976a9140ebec5470aec62ac2731ac536f4860768e31983288ac00000000",
Arrays.asList(new Output[]{new Output("656fd6e21867bfda44d33d62e464f7994ebcbf8e7de329c1"
+ "07aa6e856fe45198", 0, "76a9141083bfc4f51e3556a7908dde8a7d32e827e1212d88ac",
null)}), Arrays.asList(new String[]{"cNbvKQrwsEtwriHYK9ji1k7BZqggD3ZezXfkWJZFNp"
+ "6PmSTfWEkT"}), SigHashTypes.NONE.getName());
}
}