-
Notifications
You must be signed in to change notification settings - Fork 18
cli_wallet commands for SON
feature/SONs-base branch built properly
CLI wallet commands are tested by ./cli_test executable, located in
buid_dir/tests/cli_tests
Execute this file to run unit tests
Create prepare_testnet.sh file in a project root, with following content.
#!/bin/bash
PP_TOP=`pwd`cd $PP_TOP/build/debug/programs/cli_wallet
rm ./wallet.jsoncd $PP_TOP/build/debug/programs/witness_node/
rm -rf ./object_database
rm -rf ./witness_node_data_dir
rm ./genesis.json
./witness_node --create-genesis-json genesis.jsonsed -i 's/.*p2p-endpoint.*/p2p-endpoint = 0.0.0.0:9777/' ./witness_node_data_dir/config.ini
sed -i 's/.*rpc-endpoint.*/rpc-endpoint = 127.0.0.1:8090/' ./witness_node_data_dir/config.ini
sed -i 's/.*enesis-json.*/genesis-json = genesis.json/' ./witness_node_data_dir/config.ini
sed -i 's/.*enable-stale-production.*/enable-stale-production = true/' ./witness_node_data_dir/config.ini
sed -i 's/.*required-participation.*/required-participation = false/' ./witness_node_data_dir/config.ini
sed -i 's/.*witness-ids.*/witness-ids = \["1.6.1", "1.6.2", "1.6.3", "1.6.4", "1.6.5", "1.6.6", "1.6.7", "1.6.8", "1.6.9", "1.6.10", "1.6.11"\]/' ./witness_node_data_dir/config.ini
cat ./witness_node_data_dir/config.ini
Make the script executable with chmod 755 prepare_testnet.sh
Execute the script ./prepare_testnet.sh
In first terminal, start the witness
cd build/debug/programs/witness_node
./witness_node
You should see output similar to this:
********************************
* *
* ------- NEW CHAIN ------ *
* - Welcome to Graphene! - *
* ------------------------ *
* *
********************************
2454214ms th_a witness.cpp:143 plugin_startup ] witness plugin: plugin_startup() end
2454214ms th_a main.cpp:174 main ] Started witness node on a chain with 0 blocks.
2454214ms th_a main.cpp:175 main ] Chain ID is 84ae6d0f6f5ccdc9e03772288e369e3b7fbfc739c15207fa217b6718f8485b1b
Copy Chain ID value
In second terminal, run cli_wallet
cd build/debug/programs/cli_wallet
./cli_wallet --wallet-file wallet.json --chain-id <Chain ID value> --server-rpc-endpoint ws://127.0.0.1:8090 -u '' -p ''
Follow the instructions on screen, in order to setup your wallet (set password, and once set, unlock the wallet with the same password)
Logging RPC to file: logs/rpc/rpc.log
633601ms th_a main.cpp:123 main ] key_to_wif( committee_private_key ): 5KCBDTcyDqzsqehcb52tW5nU6pXife6V2rX9Yf7c3saYSzbDZ5W
633612ms th_a main.cpp:127 main ] nathan_pub_key: TEST6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
633613ms th_a main.cpp:128 main ] key_to_wif( nathan_private_key ): 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
Starting a new wallet with chain ID 84ae6d0f6f5ccdc9e03772288e369e3b7fbfc739c15207fa217b6718f8485b1b (from CLI)
633634ms th_a main.cpp:175 main ] wdata.ws_server: ws://127.0.0.1:8090
633682ms th_a main.cpp:180 main ] wdata.ws_user: wdata.ws_password:
Please use the set_password method to initialize a new wallet before continuing
# Set password
new >>> set_password password
set_password password
null
# unlock wallet
locked >>> unlock password
unlock password
648326ms th_a wallet.cpp:995 resync_active_tourna ] Checking my accounts for active tournaments
null
unlocked >>>
Prepare default account you will use for testing. We need to import account nathan, import its balance, and upgrade it to a lifetime member:
# import nathan account
unlocked >>> import_key nathan 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3 true
import_key nathan 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3 true
741266ms th_a wallet.cpp:1105 save_wallet_file ] saving wallet to file wallet.json
741272ms th_a wallet.cpp:651 copy_wallet_file ] backing up wallet wallet.json to after-import-key-9407629b.wallet
true
#import nathan's balance
unlocked >>> import_balance nathan [5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3] true
import_balance nathan [5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3] true
757629ms th_a wallet.cpp:4695 import_balance ] balances: [{"id":"1.15.0","owner":"TESTFAbAx7yuxt725qSZvfwWqkdCwp9ZnUama","balance":{"amount":"1000000000000000","asset_id":"1.3.0"},"last_claim_date":"1970-01-01T00:00:00"}]
[{
"ref_block_num": 222,
"ref_block_prefix": 82654770,
"expiration": "2019-10-10T19:13:06",
"operations": [[
37,{
"fee": {
"amount": 0,
"asset_id": "1.3.0"
},
"deposit_to_account": "1.2.18",
"balance_to_claim": "1.15.0",
"balance_owner_key": "TEST6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"total_claimed": {
"amount": "1000000000000000",
"asset_id": "1.3.0"
}
}
]
],
"extensions": [],
"signatures": [
"1f33dc79754b730cf488da1fa69ed5d083a61c3770878558bbcfbe82c4927675c51c48cbfd57e064584d0821f084991b7badebcdeb61382c9b70f14143e0b60e41"
]
}
]
#list nathans balance
unlocked >>> list_account_balances nathan
list_account_balances nathan
10000000000 TEST
# upgrade nathans account so he can create other accounts
unlocked >>> upgrade_account nathan true
upgrade_account nathan true
{
"ref_block_num": 399,
"ref_block_prefix": 146819673,
"expiration": "2019-10-10T19:21:57",
"operations": [[
8,{
"fee": {
"amount": 1000000000,
"asset_id": "1.3.0"
},
"account_to_upgrade": "1.2.18",
"upgrade_to_lifetime_member": true,
"extensions": []
}
]
],
"extensions": [],
"signatures": [
"20717c8649d2e0d0450466099e727797521996050749c63f82afe87de6692d6d4c4cef1c6be2b51ade1af12e3a2b519a85fef42ec78461d1a0112b213a6b61fab8"
]
}
Now, we are ready to issue test commands.
# create first account used for son
unlocked >>> create_account_with_brain_key "1 2 3 4 5 6 7 8 9 0" son1account nathan nathan true
create_account_with_brain_key "1 2 3 4 5 6 7 8 9 0" son1account nathan nathan true
1294977ms th_a wallet.cpp:1105 save_wallet_file ] saving wallet to file wallet.json
{
"ref_block_num": 401,
"ref_block_prefix": 3330259174,
"expiration": "2019-10-10T19:22:03",
"operations": [[
5,{
"fee": {
"amount": 514648,
"asset_id": "1.3.0"
},
"registrar": "1.2.18",
"referrer": "1.2.18",
"referrer_percent": 0,
"name": "son1account",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"TEST7afZ9RMnXBUHRgfNaRRRHgWProVzUmRwk1z3Eb7rVdEXv71Azn",
1
]
],
"address_auths": []
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"TEST7jjMDZwnhDtSsoqH6Md33JwJyL6tqJNic4FtgiWsw5547CYQyi",
1
]
],
"address_auths": []
},
"options": {
"memo_key": "TEST4zz69skfA4ADQERZiiL3yjfsEFnpN2ojE1RdVwDxwxqdXqJ5pn",
"voting_account": "1.2.5",
"num_witness": 0,
"num_committee": 0,
"votes": [],
"extensions": []
},
"extensions": {}
}
]
],
"extensions": [],
"signatures": [
"1f0325b0fa95fef21196caa329414f4f3c9df1704553108479b56a497f07ff041d3dbb57dc1100238d95e1f69e69890c74197775bfa1e9094635743692bdbc9c2a"
]
}
# add some balance to new account
unlocked >>> transfer nathan son1account 15000 TEST "" true
transfer nathan son1account 15000 TEST "" true
{
"ref_block_num": 460,
"ref_block_prefix": 316527953,
"expiration": "2019-10-10T19:25:00",
"operations": [[
0,{
"fee": {
"amount": 2000000,
"asset_id": "1.3.0"
},
"from": "1.2.18",
"to": "1.2.19",
"amount": {
"amount": 1500000000,
"asset_id": "1.3.0"
},
"extensions": []
}
]
],
"extensions": [],
"signatures": [
"1f23218a35f7a7313ee62c4212f8d4648b051f03423455dfa3bc3483043391b9bf1e0fb1d1f12c35484e371e3475daf2c268addead1b8d9d8a69f686f715fcc20f"
]
}
# check balance
unlocked >>> list_account_balances son1account
list_account_balances son1account
15000 TEST
# upgrade account to a lifetime member so account can create SON
unlocked >>> upgrade_account son1account true
upgrade_account son1account true
{
"ref_block_num": 525,
"ref_block_prefix": 4155757325,
"expiration": "2019-10-10T19:28:15",
"operations": [[
8,{
"fee": {
"amount": 1000000000,
"asset_id": "1.3.0"
},
"account_to_upgrade": "1.2.19",
"upgrade_to_lifetime_member": true,
"extensions": []
}
]
],
"extensions": [],
"signatures": [
"1f5fff0530831f991de90826eba60f47ea0f0d02e3f8ce53552847ea312c171e661eb355865cef538693d76e5832b9f2cb1809c957adedd66f1c0ba93eda6eabdc"
]
}
# create second account used for son
unlocked >>> create_account_with_brain_key "0 9 8 7 6 5 4 3 2 1" son2account nathan nathan true
create_account_with_brain_key "0 9 8 7 6 5 4 3 2 1" son2account nathan nathan true
1385831ms th_a wallet.cpp:1105 save_wallet_file ] saving wallet to file wallet.json
{
"ref_block_num": 431,
"ref_block_prefix": 2457704635,
"expiration": "2019-10-10T19:23:33",
"operations": [[
5,{
"fee": {
"amount": 514648,
"asset_id": "1.3.0"
},
"registrar": "1.2.18",
"referrer": "1.2.18",
"referrer_percent": 0,
"name": "son2account",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"TEST7sD36E4SNPtbRtJ52ELJpwZBHWqLstWHeRkVwUuSRphgzmXxUF",
1
]
],
"address_auths": []
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"TEST6NTxh4Gp9iZXTsujyovhGdHizc4XhN9LfXoaUxFtqoe6gU75w4",
1
]
],
"address_auths": []
},
"options": {
"memo_key": "TEST6ZjiEnSK3k9ostxkdM9HTve8oXpWEkpcUCytg3Wx79BruF3iPK",
"voting_account": "1.2.5",
"num_witness": 0,
"num_committee": 0,
"votes": [],
"extensions": []
},
"extensions": {}
}
]
],
"extensions": [],
"signatures": [
"1f50dc305ff39e3a7497e425c3d7a487ce26f848ee4703a2ac65052629fd329eff5443b66f863233dd0e6e7f66be3fe0719d33185bdbd84631a53d928b8147a3d5"
]
}
# add some balance to new account
unlocked >>> transfer nathan son2account 15000 TEST "" true
transfer nathan son2account 15000 TEST "" true
{
"ref_block_num": 462,
"ref_block_prefix": 3652583723,
"expiration": "2019-10-10T19:25:06",
"operations": [[
0,{
"fee": {
"amount": 2000000,
"asset_id": "1.3.0"
},
"from": "1.2.18",
"to": "1.2.20",
"amount": {
"amount": 1500000000,
"asset_id": "1.3.0"
},
"extensions": []
}
]
],
"extensions": [],
"signatures": [
"20780d62339acf254406cb848b853a4884327005b428019c866210a65f2bba76e36d4bfe05b4e70af8428f6746df7443280437b9b063237e0d808dd272e7872354"
]
}
# check balance
unlocked >>> list_account_balances son2account
list_account_balances son2account
15000 TEST
# upgrade account to a lifetime member so account can create SON
unlocked >>> upgrade_account son2account true
upgrade_account son2account true
{
"ref_block_num": 526,
"ref_block_prefix": 781888259,
"expiration": "2019-10-10T19:28:18",
"operations": [[
8,{
"fee": {
"amount": 1000000000,
"asset_id": "1.3.0"
},
"account_to_upgrade": "1.2.20",
"upgrade_to_lifetime_member": true,
"extensions": []
}
]
],
"extensions": [],
"signatures": [
"1f794ff368fe598396d8046913b39316065d1dc5d9b6a2802b15a2ffcb99cf7cc942d04da8be85cd43b06ae1e0f102da82c6df5d859edd79dbce6f9cef55339698"
]
}
We will use these two accounts to create SONs.
# create first SON
unlocked >>> create_son son1account "http://son1address.com" true
create_son son1account "http://son1address.com" true
{
"ref_block_num": 556,
"ref_block_prefix": 2850526455,
"expiration": "2019-10-10T19:29:48",
"operations": [[
82,{
"fee": {
"amount": 0,
"asset_id": "1.3.0"
},
"owner_account": "1.2.19",
"url": "http://son1address.com",
"deposit": "1.13.0",
"signing_key": "TEST6Yaq5ZNTTkMM2kBBzV5jktr8ETsniCC3bnVD7eFmegRrLXfGGG",
"pay_vb": "1.13.0"
}
]
],
"extensions": [],
"signatures": [
"2024a0ba49bfcbe28ddf917f930e68eb1851779fe424449b3683d5c95e7db5647638dc2656ce569564cd626b925e898109ebb0a50864e3745bf33502f354920501"
]
}
# get info about new SON
unlocked >>> get_son son1account
get_son son1account
{
"id": "1.27.0",
"son_account": "1.2.19",
"vote_id": "3:22",
"total_votes": 0,
"url": "http://son1address.com",
"deposit": "1.13.0",
"signing_key": "TEST6Yaq5ZNTTkMM2kBBzV5jktr8ETsniCC3bnVD7eFmegRrLXfGGG",
"pay_vb": "1.13.0"
}
# create second SON
unlocked >>> create_son son2account "http://son2address.com" true
create_son son2account "http://son2address.com" true
{
"ref_block_num": 558,
"ref_block_prefix": 2758516665,
"expiration": "2019-10-10T19:29:54",
"operations": [[
82,{
"fee": {
"amount": 0,
"asset_id": "1.3.0"
},
"owner_account": "1.2.20",
"url": "http://son2address.com",
"deposit": "1.13.0",
"signing_key": "TEST5xYCvWGokcGWQCWwyaPY1jqRHFzNkvDCoE7YavtWEMVRKM5hKX",
"pay_vb": "1.13.0"
}
]
],
"extensions": [],
"signatures": [
"20509393adaf1a37d2082d9c1954b310c96af2839ca38720d4fa1a536e240eedba17f949a043cd31b661148ef09a6c5a8f10da07eb99d350f2bc822d41f7c38fb4"
]
}
# get info about new SON
unlocked >>> get_son son2account
get_son son2account
{
"id": "1.27.1",
"son_account": "1.2.20",
"vote_id": "3:23",
"total_votes": 0,
"url": "http://son2address.com",
"deposit": "1.13.0",
"signing_key": "TEST5xYCvWGokcGWQCWwyaPY1jqRHFzNkvDCoE7YavtWEMVRKM5hKX",
"pay_vb": "1.13.0"
}
# update first SON info
unlocked >>> update_son son1account "http://son1address.org" "" true
update_son son1account "http://son1address.org" "" true
{
"ref_block_num": 610,
"ref_block_prefix": 439531359,
"expiration": "2019-10-10T19:32:30",
"operations": [[
83,{
"fee": {
"amount": 0,
"asset_id": "1.3.0"
},
"son_id": "1.27.0",
"owner_account": "1.2.19",
"new_url": "http://son1address.org"
}
]
],
"extensions": [],
"signatures": [
"200b8b78d5f17d4c8c9b91b1778cdc8ca7fb99ac9abb6fc823c00cdbfb3dd6ecaf3479b06ff9ccebcf6e2c33f86dd7a95aa1ca3ae1274f1e3308a2edfc725adc2e"
]
}
# get info about SON
unlocked >>> get_son son1account
get_son son1account
{
"id": "1.27.0",
"son_account": "1.2.19",
"vote_id": "3:22",
"total_votes": 0,
"url": "http://son1address.org",
"deposit": "1.13.0",
"signing_key": "TEST6Yaq5ZNTTkMM2kBBzV5jktr8ETsniCC3bnVD7eFmegRrLXfGGG",
"pay_vb": "1.13.0"
}
# update first SON info
unlocked >>> update_son son2account "http://son2address.org" "" true
update_son son2account "http://son2address.org" "" true
{
"ref_block_num": 629,
"ref_block_prefix": 978213837,
"expiration": "2019-10-10T19:33:27",
"operations": [[
83,{
"fee": {
"amount": 0,
"asset_id": "1.3.0"
},
"son_id": "1.27.1",
"owner_account": "1.2.20",
"new_url": "http://son2address.org"
}
]
],
"extensions": [],
"signatures": [
"1f0458e3a40f72e8b74999da3a8687504f3af7876a54cf234de9962d62f1e7fe58281308a3c2414641065bf026fb8c6a733094cb3f8ef4270ccde6831db85b1600"
]
}
# get info about SON
unlocked >>> get_son son2account
get_son son2account
{
"id": "1.27.1",
"son_account": "1.2.20",
"vote_id": "3:23",
"total_votes": 0,
"url": "http://son2address.org",
"deposit": "1.13.0",
"signing_key": "TEST5xYCvWGokcGWQCWwyaPY1jqRHFzNkvDCoE7YavtWEMVRKM5hKX",
"pay_vb": "1.13.0"
}
# nathan will try to vote for himself, but nathan is not registered as SON
unlocked >>> vote_for_son nathan nathan true true
vote_for_son nathan nathan true true
0 exception: unspecified
Account nathan is not registered as a son
{"son":"nathan"}
th_a wallet.cpp:2214 vote_for_son
{"voting_account":"nathan","son":"nathan","approve":true,"broadcast":true}
th_a wallet.cpp:2237 vote_for_son
# Shows that account nathan has no votes
unlocked >>> get_account nathan
get_account nathan
{
"id": "1.2.18",
"membership_expiration_date": "2106-02-07T06:28:15",
"registrar": "1.2.18",
"referrer": "1.2.18",
"lifetime_referrer": "1.2.18",
"network_fee_percentage": 2000,
"lifetime_referrer_fee_percentage": 8000,
"referrer_rewards_percentage": 0,
"name": "nathan",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"TEST6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
1
]
],
"address_auths": []
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"TEST6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
1
]
],
"address_auths": []
},
"options": {
"memo_key": "TEST6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"voting_account": "1.2.5",
"num_witness": 0,
"num_committee": 0,
"votes": [],
"extensions": []
},
"statistics": "2.6.18",
"whitelisting_accounts": [],
"blacklisting_accounts": [],
"whitelisted_accounts": [],
"blacklisted_accounts": [],
"cashback_vb": "1.13.0",
"owner_special_authority": [
0,{}
],
"active_special_authority": [
0,{}
],
"top_n_control_flags": 0
}
# nathan votes for son1account
unlocked >>> vote_for_son nathan son1account true true
vote_for_son nathan son1account true true
{
"ref_block_num": 1374,
"ref_block_prefix": 1030173052,
"expiration": "2019-10-10T20:10:42",
"operations": [[
6,{
"fee": {
"amount": 2005664,
"asset_id": "1.3.0"
},
"account": "1.2.18",
"new_options": {
"memo_key": "TEST6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"voting_account": "1.2.5",
"num_witness": 0,
"num_committee": 0,
"votes": [
"3:22"
],
"extensions": []
},
"extensions": {}
}
]
],
"extensions": [],
"signatures": [
"1f254568924b3af60d9a7d6666ef141d85a7718ff52936485ba068392865af5d463eaf9f599d78c7e248d31310990df69589d4fc0bf39c6371c7dc28991b47c699"
]
}
# Shows that account nathan has one vote
unlocked >>> get_account nathan
get_account nathan
{
"id": "1.2.18",
"membership_expiration_date": "2106-02-07T06:28:15",
"registrar": "1.2.18",
"referrer": "1.2.18",
"lifetime_referrer": "1.2.18",
"network_fee_percentage": 2000,
"lifetime_referrer_fee_percentage": 8000,
"referrer_rewards_percentage": 0,
"name": "nathan",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"TEST6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
1
]
],
"address_auths": []
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"TEST6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
1
]
],
"address_auths": []
},
"options": {
"memo_key": "TEST6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"voting_account": "1.2.5",
"num_witness": 0,
"num_committee": 0,
"votes": [
"3:22"
],
"extensions": []
},
"statistics": "2.6.18",
"whitelisting_accounts": [],
"blacklisting_accounts": [],
"whitelisted_accounts": [],
"blacklisted_accounts": [],
"cashback_vb": "1.13.0",
"owner_special_authority": [
0,{}
],
"active_special_authority": [
0,{}
],
"top_n_control_flags": 0
}
# nathan withdraws vote for son1account
unlocked >>> vote_for_son nathan son1account false true
vote_for_son nathan son1account false true
{
"ref_block_num": 1380,
"ref_block_prefix": 1532291545,
"expiration": "2019-10-10T20:11:00",
"operations": [[
6,{
"fee": {
"amount": 2005273,
"asset_id": "1.3.0"
},
"account": "1.2.18",
"new_options": {
"memo_key": "TEST6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"voting_account": "1.2.5",
"num_witness": 0,
"num_committee": 0,
"votes": [],
"extensions": []
},
"extensions": {}
}
]
],
"extensions": [],
"signatures": [
"1f1f47213bee65dc1495792dfa4fdcb871a35cc0f99ec6358fa57691b3dc54fcba68c1d03d5e9401bad238f9e266cc825c9c325e09aa131059c5ed9dc4c45f698e"
]
}
# Shows that account nathan has no votes
unlocked >>> get_account nathan
get_account nathan
{
"id": "1.2.18",
"membership_expiration_date": "2106-02-07T06:28:15",
"registrar": "1.2.18",
"referrer": "1.2.18",
"lifetime_referrer": "1.2.18",
"network_fee_percentage": 2000,
"lifetime_referrer_fee_percentage": 8000,
"referrer_rewards_percentage": 0,
"name": "nathan",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"TEST6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
1
]
],
"address_auths": []
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [[
"TEST6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
1
]
],
"address_auths": []
},
"options": {
"memo_key": "TEST6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"voting_account": "1.2.5",
"num_witness": 0,
"num_committee": 0,
"votes": [],
"extensions": []
},
"statistics": "2.6.18",
"whitelisting_accounts": [],
"blacklisting_accounts": [],
"whitelisted_accounts": [],
"blacklisted_accounts": [],
"cashback_vb": "1.13.0",
"owner_special_authority": [
0,{}
],
"active_special_authority": [
0,{}
],
"top_n_control_flags": 0
}