提交 11e374d4 编写于 作者: A arhag

fix cleos get account bugs #4171 and #4198

上级 a6c3e9c9
......@@ -1408,16 +1408,19 @@ void get_account( const string& accountName, bool json_format ) {
std::cout << "net bandwidth: " << std::endl;
if ( res.total_resources.is_object() ) {
auto net_total = to_asset(res.total_resources.get_object()["net_weight"].as_string());
if( net_total.get_symbol() != unstaking.get_symbol() ) {
// Core symbol of nodeos responding to the request is different than core symbol built into cleos
unstaking = asset( 0, net_total.get_symbol() ); // Correct core symbol for unstaking asset.
staked = asset( 0, net_total.get_symbol() ); // Correct core symbol for staked asset.
}
if( res.self_delegated_bandwidth.is_object() ) {
asset net_own = asset::from_string( res.self_delegated_bandwidth.get_object()["net_weight"].as_string() );
staked = net_own;
if( staked.get_symbol() != unstaking.get_symbol() ) {
// Core symbol of nodeos responding to the request is different than core symbol built into cleos
unstaking = asset( 0, staked.get_symbol() ); // Correct core symbol for unstaking asset.
}
auto net_others = to_asset(res.total_resources.get_object()["net_weight"].as_string()) - net_own;
auto net_others = net_total - net_own;
std::cout << indent << "staked:" << std::setw(20) << net_own
<< std::string(11, ' ') << "(total stake delegated from account to self)" << std::endl
......@@ -1425,7 +1428,7 @@ void get_account( const string& accountName, bool json_format ) {
<< std::string(11, ' ') << "(total staked delegated to account from others)" << std::endl;
}
else {
auto net_others = to_asset(res.total_resources.get_object()["net_weight"].as_string());
auto net_others = net_total;
std::cout << indent << "delegated:" << std::setw(17) << net_others
<< std::string(11, ' ') << "(total staked delegated to account from others)" << std::endl;
}
......@@ -1475,18 +1478,20 @@ void get_account( const string& accountName, bool json_format ) {
std::cout << "cpu bandwidth:" << std::endl;
if ( res.total_resources.is_object() ) {
auto cpu_total = to_asset(res.total_resources.get_object()["cpu_weight"].as_string());
if( res.self_delegated_bandwidth.is_object() ) {
asset cpu_own = asset::from_string( res.self_delegated_bandwidth.get_object()["cpu_weight"].as_string() );
staked += cpu_own;
auto cpu_others = to_asset(res.total_resources.get_object()["cpu_weight"].as_string()) - cpu_own;
auto cpu_others = cpu_total - cpu_own;
std::cout << indent << "staked:" << std::setw(20) << cpu_own
<< std::string(11, ' ') << "(total stake delegated from account to self)" << std::endl
<< indent << "delegated:" << std::setw(17) << cpu_others
<< std::string(11, ' ') << "(total staked delegated to account from others)" << std::endl;
} else {
auto cpu_others = to_asset(res.total_resources.get_object()["cpu_weight"].as_string());
auto cpu_others = cpu_total;
std::cout << indent << "delegated:" << std::setw(17) << cpu_others
<< std::string(11, ' ') << "(total staked delegated to account from others)" << std::endl;
}
......@@ -1504,23 +1509,24 @@ void get_account( const string& accountName, bool json_format ) {
auto request_time = fc::time_point_sec::from_iso_string( obj["request_time"].as_string() );
fc::time_point refund_time = request_time + fc::days(3);
auto now = res.head_block_time;
std::cout << std::fixed << setprecision(3);
std::cout << "unstaking tokens:" << std::endl;
std::cout << indent << std::left << std::setw(25) << "time of unstake request:" << std::right << std::setw(20) << string(request_time);
if( now >= refund_time ) {
std::cout << " (available to claim now with 'eosio::refund' action)\n";
} else {
std::cout << " (funds will be available in " << to_pretty_time( (refund_time - now).count(), 0 ) << ")\n";
asset net = asset::from_string( obj["net_amount"].as_string() );
asset cpu = asset::from_string( obj["cpu_amount"].as_string() );
unstaking = net + cpu;
asset net = asset::from_string( obj["net_amount"].as_string() );
asset cpu = asset::from_string( obj["cpu_amount"].as_string() );
unstaking = net + cpu;
if( unstaking > asset( 0, unstaking.get_symbol() ) ) {
std::cout << std::fixed << setprecision(3);
std::cout << "unstaking tokens:" << std::endl;
std::cout << indent << std::left << std::setw(25) << "time of unstake request:" << std::right << std::setw(20) << string(request_time);
if( now >= refund_time ) {
std::cout << " (available to claim now with 'eosio::refund' action)\n";
} else {
std::cout << " (funds will be available in " << to_pretty_time( (refund_time - now).count(), 0 ) << ")\n";
}
std::cout << indent << std::left << std::setw(25) << "from net bandwidth:" << std::right << std::setw(18) << net << std::endl;
std::cout << indent << std::left << std::setw(25) << "from cpu bandwidth:" << std::right << std::setw(18) << cpu << std::endl;
std::cout << indent << std::left << std::setw(25) << "total:" << std::right << std::setw(18) << unstaking << std::endl;
std::cout << std::endl;
}
std::cout << std::endl;
}
if( res.core_liquid_balance.valid() ) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册