Hive Developer Portal
Converting VESTS to HIVE
How to convert VESTS to HIVE or HIVE POWER
Intro
Hive’s has base unit is VESTS and usually user doesn’t know about this unit because everything is dynamically calucated and presented in HIVE form for convenience of the user. In this recipe we will talk about how converting is working behind the scenes on all Hive apps. Dynamic Global Properties are used in this recipe to fetch the current values of global blockchain properties.
Steps
- Get Dynamic Global Properties Fetch current values of global blockchain properties
- Formulate VESTS_TO_HIVE Formulate function that will convert given VESTS to HIVE.
1. Get Dynamic Global Properties
Following method can be used to fetch global values
curl -s --data '{"jsonrpc":"2.0", "method":"condenser_api.get_dynamic_global_properties", "params":[], "id":1}' https://api.hive.blog
Example Output
{
"id":1,
"jsonrpc":"2.0",
"result":{
"head_block_number":24238248,
"head_block_id":"0171d8a833dc369abd034b0c67d8725f96df9e5b",
"time":"2018-07-16T22:41:24",
"current_witness":"xeldal",
"total_pow":514415,
"num_pow_witnesses":172,
"virtual_supply":"283434761.199 HIVE",
"current_supply":"271729171.190 HIVE",
"confidential_supply":"0.000 HIVE",
"current_hbd_supply":"15498201.173 HBD",
"confidential_hbd_supply":"0.000 HBD",
"total_vesting_fund_hive":"192913644.627 HIVE",
"total_vesting_shares":"391296886352.617261 VESTS",
"total_reward_fund_hive":"0.000 HIVE",
"total_reward_shares2":"0",
"pending_rewarded_vesting_shares":"379159224.860656 VESTS",
"pending_rewarded_vesting_hive":"185294.019 HIVE",
"hbd_interest_rate":0,
"hbd_print_rate":2933,
"maximum_block_size":65536,
"current_aslot":24315228,
"recent_slots_filled":"340282366920938463463374607431768211400",
"participation_count":128,
"last_irreversible_block_num":24238230,
"vote_power_reserve_rate":10,
"average_block_size":10950,
"current_reserve_ratio":200000000,
"max_virtual_bandwidth":"264241152000000000000"
}
}
2. Formulate VESTS_TO_HIVE
From above results we have everything we need to calculate HIVE from given VESTS value.
Let’s say we have been given availableVESTS
variable, value in VESTS and we want to convert that to HIVE. By using values from above returned object our formula would be as follows:
vestHive = ( result.total_vesting_fund_hive x availableVESTS ) / result.total_vesting_shares
That’s it!