kaistshadow / blockchain-sim

Scalable blockchain simulator/emulator running on shadow simulator
MIT License
9 stars 1 forks source link

rpc library #288

Closed tkdlqm2 closed 3 years ago

tkdlqm2 commented 3 years ago

이전 소스코드와 비교를 해보면 중복된 함수들의 제거와, 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);
}