이전 소스코드와 비교를 해보면 중복된 함수들의 제거와, rpc call의 양식에 따라 함수를 분리해둠.
// example : setgeneratetoaddress rpc function
// This function is used when calling rpc that requires parameters.
void rpc_reqeust_with_params(std::string rpc_function, std::list<std::string> params_list) {
Json::Value params;
params.clear();
params = Json::arrayValue;
for(auto const& i: params_list) {
params.append(i);
}
bitcoin_rpc_request(rpc_function, params);
}
// example : getnewaddress rpc function
// To get wallet address from "getnewaddress" rpc function call
// Like this, this function enable to get string data from rpc call
std::string rpc_request_with_no_params(std::string rpc_function) {
Json::Value params;
params.clear();
params = Json::arrayValue;
bitcoin_rpc_request(rpc_function, params);
std::string return_value = json_resp["result"].asString();
return return_value;
}
// example : getblockchaininfo rpc function
// This function is used when no params, no return values.
void rpc_request_no_return_no_params(std::string rpc_function) {
Json::Value params;
params.clear();
params = Json::arrayValue;
bitcoin_rpc_request(rpc_function, params);
}
이전 소스코드와 비교를 해보면 중복된 함수들의 제거와, rpc call의 양식에 따라 함수를 분리해둠.