get network type with rpc call
This commit is contained in:
parent
31a9579d71
commit
52895f65bf
3 changed files with 69 additions and 8 deletions
|
|
@ -21,10 +21,12 @@ class bitcoin_rpc_client {
|
||||||
public:
|
public:
|
||||||
bitcoin_rpc_client(std::string _ip, uint32_t _rpc, std::string _user, std::string _password, std::string _wallet, std::string _wallet_password);
|
bitcoin_rpc_client(std::string _ip, uint32_t _rpc, std::string _user, std::string _password, std::string _wallet, std::string _wallet_password);
|
||||||
|
|
||||||
|
std::string getnetworktype();
|
||||||
std::string addmultisigaddress(const uint32_t nrequired, const std::vector<std::string> public_keys);
|
std::string addmultisigaddress(const uint32_t nrequired, const std::vector<std::string> public_keys);
|
||||||
std::string combinepsbt(const vector<std::string> &psbts);
|
std::string combinepsbt(const vector<std::string> &psbts);
|
||||||
std::string createmultisig(const uint32_t nrequired, const std::vector<std::string> public_keys);
|
std::string createmultisig(const uint32_t nrequired, const std::vector<std::string> public_keys);
|
||||||
std::string createpsbt(const std::vector<btc_txout> &ins, const fc::flat_map<std::string, double> outs);
|
std::string createpsbt(const std::vector<btc_txout> &ins, const fc::flat_map<std::string, double> outs);
|
||||||
|
std::string convertrawtopsbt(const std::string &hex);
|
||||||
std::string createrawtransaction(const std::vector<btc_txout> &ins, const fc::flat_map<std::string, double> outs);
|
std::string createrawtransaction(const std::vector<btc_txout> &ins, const fc::flat_map<std::string, double> outs);
|
||||||
std::string createwallet(const std::string &wallet_name);
|
std::string createwallet(const std::string &wallet_name);
|
||||||
std::string decodepsbt(std::string const &tx_psbt);
|
std::string decodepsbt(std::string const &tx_psbt);
|
||||||
|
|
|
||||||
|
|
@ -182,6 +182,34 @@ std::string bitcoin_rpc_client::createpsbt(const std::vector<btc_txout> &ins, co
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string bitcoin_rpc_client::convertrawtopsbt(const std::string &hex) {
|
||||||
|
std::string body = std::string("{\"jsonrpc\": \"1.0\", \"id\":\"converttopsbt\", \"method\": "
|
||||||
|
"\"converttopsbt\", \"params\": [\"" +
|
||||||
|
hex + "\"] }");
|
||||||
|
|
||||||
|
const auto reply = send_post_request(body);
|
||||||
|
|
||||||
|
if (reply.body.empty()) {
|
||||||
|
wlog("Bitcoin RPC call ${function} failed", ("function", __FUNCTION__));
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::stringstream ss(std::string(reply.body.begin(), reply.body.end()));
|
||||||
|
boost::property_tree::ptree json;
|
||||||
|
boost::property_tree::read_json(ss, json);
|
||||||
|
|
||||||
|
if (reply.status == 200) {
|
||||||
|
if (json.find("result") != json.not_found()) {
|
||||||
|
return json.get<std::string>("result");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (json.count("error") && !json.get_child("error").empty()) {
|
||||||
|
wlog("Bitcoin RPC call ${function} with body ${body} failed with reply '${msg}'", ("function", __FUNCTION__)("body", body)("msg", ss.str()));
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
std::string bitcoin_rpc_client::createrawtransaction(const std::vector<btc_txout> &ins, const fc::flat_map<std::string, double> outs) {
|
std::string bitcoin_rpc_client::createrawtransaction(const std::vector<btc_txout> &ins, const fc::flat_map<std::string, double> outs) {
|
||||||
std::string body("{\"jsonrpc\": \"1.0\", \"id\":\"createrawtransaction\", "
|
std::string body("{\"jsonrpc\": \"1.0\", \"id\":\"createrawtransaction\", "
|
||||||
"\"method\": \"createrawtransaction\", \"params\": [");
|
"\"method\": \"createrawtransaction\", \"params\": [");
|
||||||
|
|
@ -687,6 +715,35 @@ std::string bitcoin_rpc_client::unloadwallet(const std::string &filename) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string bitcoin_rpc_client::getnetworktype()
|
||||||
|
{
|
||||||
|
std::string body = std::string("{\"jsonrpc\": \"1.0\", \"id\":\"walletlock\", \"method\": "
|
||||||
|
"\"getblockchaininfo\", \"params\": [] }");
|
||||||
|
|
||||||
|
const auto reply = send_post_request(body);
|
||||||
|
|
||||||
|
if (reply.body.empty()) {
|
||||||
|
wlog("Bitcoin RPC call ${function} failed", ("function", __FUNCTION__));
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::stringstream ss(std::string(reply.body.begin(), reply.body.end()));
|
||||||
|
boost::property_tree::ptree json;
|
||||||
|
boost::property_tree::read_json(ss, json);
|
||||||
|
|
||||||
|
if (reply.status == 200) {
|
||||||
|
auto reply = json.get_child("result");
|
||||||
|
if (!reply.count("chain"))
|
||||||
|
return "";
|
||||||
|
return reply.get_child("chain").get_value<std::string>();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (json.count("error") && !json.get_child("error").empty()) {
|
||||||
|
wlog("Bitcoin RPC call ${function} with body ${body} failed with reply '${msg}'", ("function", __FUNCTION__)("body", body)("msg", ss.str()));
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
std::string bitcoin_rpc_client::walletlock() {
|
std::string bitcoin_rpc_client::walletlock() {
|
||||||
std::string body = std::string("{\"jsonrpc\": \"1.0\", \"id\":\"walletlock\", \"method\": "
|
std::string body = std::string("{\"jsonrpc\": \"1.0\", \"id\":\"walletlock\", \"method\": "
|
||||||
"\"walletlock\", \"params\": [] }");
|
"\"walletlock\", \"params\": [] }");
|
||||||
|
|
@ -1392,8 +1449,8 @@ std::string sidechain_net_handler_bitcoin::create_multisig_address(const std::ve
|
||||||
std::string sidechain_net_handler_bitcoin::create_transaction(const std::vector<btc_txout> &inputs, const fc::flat_map<std::string, double> outputs) {
|
std::string sidechain_net_handler_bitcoin::create_transaction(const std::vector<btc_txout> &inputs, const fc::flat_map<std::string, double> outputs) {
|
||||||
std::string new_tx = "";
|
std::string new_tx = "";
|
||||||
//new_tx = create_transaction_raw(inputs, outputs);
|
//new_tx = create_transaction_raw(inputs, outputs);
|
||||||
new_tx = create_transaction_psbt(inputs, outputs);
|
//new_tx = create_transaction_psbt(inputs, outputs);
|
||||||
//new_tx = create_transaction_standalone(inputs, outputs);
|
new_tx = create_transaction_standalone(inputs, outputs);
|
||||||
return new_tx;
|
return new_tx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1696,7 +1753,7 @@ std::string sidechain_net_handler_bitcoin::create_transaction_standalone(const s
|
||||||
}
|
}
|
||||||
|
|
||||||
libbitcoin::data_chunk dc = tx.to_data();
|
libbitcoin::data_chunk dc = tx.to_data();
|
||||||
return fc::to_hex((char*)&dc[0], dc.size());
|
return bitcoin_client->convertrawtopsbt(fc::to_hex((char*)&dc[0], dc.size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string sidechain_net_handler_bitcoin::sign_transaction_raw(const sidechain_transaction_object &sto) {
|
std::string sidechain_net_handler_bitcoin::sign_transaction_raw(const sidechain_transaction_object &sto) {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"initial_timestamp": "2020-01-13T06:03:15",
|
"initial_timestamp": "2020-03-03T03:03:03",
|
||||||
"max_core_supply": "1000000000000000",
|
"max_core_supply": "1000000000000000",
|
||||||
"initial_parameters": {
|
"initial_parameters": {
|
||||||
"current_fees": {
|
"current_fees": {
|
||||||
|
|
@ -333,9 +333,9 @@
|
||||||
"scale": 10000
|
"scale": 10000
|
||||||
},
|
},
|
||||||
"block_interval": 3,
|
"block_interval": 3,
|
||||||
"maintenance_interval": 86400,
|
"maintenance_interval": 120,
|
||||||
"maintenance_skip_slots": 3,
|
"maintenance_skip_slots": 3,
|
||||||
"committee_proposal_review_period": 1209600,
|
"committee_proposal_review_period": 600,
|
||||||
"maximum_transaction_size": 2048,
|
"maximum_transaction_size": 2048,
|
||||||
"maximum_block_size": 1228800000,
|
"maximum_block_size": 1228800000,
|
||||||
"maximum_time_until_expiration": 86400,
|
"maximum_time_until_expiration": 86400,
|
||||||
|
|
@ -388,7 +388,8 @@
|
||||||
"son_pay_time": 86400,
|
"son_pay_time": 86400,
|
||||||
"son_deregister_time": 43200,
|
"son_deregister_time": 43200,
|
||||||
"son_heartbeat_frequency": 180,
|
"son_heartbeat_frequency": 180,
|
||||||
"son_down_time": 360
|
"son_down_time": 360,
|
||||||
|
"son_bitcoin_min_tx_confirmations": 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"initial_bts_accounts": [],
|
"initial_bts_accounts": [],
|
||||||
|
|
@ -527,6 +528,7 @@
|
||||||
"immutable_parameters": {
|
"immutable_parameters": {
|
||||||
"min_committee_member_count": 11,
|
"min_committee_member_count": 11,
|
||||||
"min_witness_count": 11,
|
"min_witness_count": 11,
|
||||||
|
"min_son_count": 5,
|
||||||
"num_special_accounts": 0,
|
"num_special_accounts": 0,
|
||||||
"num_special_assets": 0
|
"num_special_assets": 0
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue