merge get_account_lotteries branch. fix create_witness test

This commit is contained in:
kstdl 2018-01-09 11:45:19 +03:00 committed by gladcow
parent 62dd8482d9
commit 830700aa35
8 changed files with 565 additions and 11 deletions

View file

@ -63,6 +63,7 @@ namespace graphene { namespace chain {
/// The number of shares currently in existence
share_type current_supply;
optional<share_type> sweeps_tickets_sold;
share_type confidential_supply; ///< total asset held in confidential balances
share_type accumulated_fees; ///< fees accumulate to be paid out over time
share_type fee_pool; ///< in core asset
@ -455,7 +456,7 @@ namespace graphene { namespace chain {
} } // graphene::chain
FC_REFLECT_DERIVED( graphene::chain::asset_dynamic_data_object, (graphene::db::object),
(current_supply)(confidential_supply)(accumulated_fees)(fee_pool) )
(current_supply)(sweeps_tickets_sold)(confidential_supply)(accumulated_fees)(fee_pool) )
FC_REFLECT_DERIVED( graphene::chain::asset_bitasset_data_object, (graphene::db::object),
(feeds)

View file

@ -48,7 +48,7 @@ namespace graphene { namespace chain {
time_point_sec end_date;
bool ending_on_soldout;
bool is_active;
void validate()const;
};

View file

@ -99,6 +99,7 @@ void_result lottery_end_evaluator::do_evaluate( const lottery_end_operation& op
void_result lottery_end_evaluator::do_apply( const lottery_end_operation& op )
{ try {
db().modify( *asset_dynamic_data, [&]( asset_dynamic_data_object& data ) {
data.sweeps_tickets_sold = data.current_supply;
data.current_supply = 0;
});
for( auto account_info : op.participants )

View file

@ -46,7 +46,7 @@ object_id_type witness_create_evaluator::do_apply( const witness_create_operatio
const auto& new_witness_object = db().create<witness_object>( [&]( witness_object& obj ) {
obj.witness_account = op.witness_account;
obj.signing_key = op.block_signing_key;
obj.previous_secret = op.initial_secret;
obj.previous_secret = secret_hash_type();
obj.next_secret_hash = secret_hash_type::hash( op.initial_secret );
obj.vote_id = vote_id;
obj.url = op.url;

View file

@ -1816,10 +1816,10 @@ public:
witness_create_op.block_signing_key = witness_public_key;
witness_create_op.url = url;
// secret_hash_type::encoder enc;
// fc::raw::pack(enc, witness_private_key);
// fc::raw::pack(enc, secret_hash_type());
witness_create_op.initial_secret = secret_hash_type();
secret_hash_type::encoder enc;
fc::raw::pack(enc, witness_private_key);
fc::raw::pack(enc, secret_hash_type());
witness_create_op.initial_secret = enc.result();
if (_remote_db->get_witness_by_account(witness_create_op.witness_account))

View file

@ -712,8 +712,8 @@ const witness_object& database_fixture::create_witness( const account_object& ow
secret_hash_type::encoder enc;
fc::raw::pack(enc, signing_private_key);
fc::raw::pack(enc, owner.name);
op.initial_secret = secret_hash_type::hash(enc.result());
fc::raw::pack(enc, secret_hash_type());
op.initial_secret = enc.result();
trx.operations.push_back(op);
trx.validate();

View file

@ -425,7 +425,7 @@ BOOST_AUTO_TEST_CASE( witness_create )
ACTOR(nathan);
upgrade_to_lifetime_member(nathan_id);
trx.clear();
witness_id_type nathan_witness_id = create_witness(nathan_id, nathan_private_key).id;
witness_id_type nathan_witness_id = create_witness(nathan_id, generate_private_key("null_key")).id;
// Give nathan some voting stake
transfer(committee_account, nathan_id, asset(10000000));
generate_block();
@ -463,6 +463,10 @@ BOOST_AUTO_TEST_CASE( witness_create )
// make sure we're scheduled to produce
vector<witness_id_type> near_witnesses = db.get_near_witness_schedule();
while( std::find( near_witnesses.begin(), near_witnesses.end(), nathan_witness_id ) == near_witnesses.end() ) {
generate_block();
near_witnesses = db.get_near_witness_schedule();
}
BOOST_CHECK( std::find( near_witnesses.begin(), near_witnesses.end(), nathan_witness_id )
!= near_witnesses.end() );
@ -476,7 +480,7 @@ BOOST_AUTO_TEST_CASE( witness_create )
if( id == nathan_id )
{
nathan_generated_block = true;
f.generate_block(0, nathan_key);
f.generate_block(0);
} else
f.generate_block(0);
BOOST_CHECK_EQUAL(f.db.get_dynamic_global_properties().current_witness.instance.value, id.instance.value);

548
tgenesis.json Normal file
View file

@ -0,0 +1,548 @@
{
"initial_timestamp": "2017-12-4T06:54:00",
"max_core_supply": "1000000000000000",
"initial_parameters": {
"current_fees": {
"parameters": [[
0,{
"fee": 2000000,
"price_per_kbyte": 1000000
}
],[
1,{
"fee": 500000
}
],[
2,{
"fee": 0
}
],[
3,{
"fee": 2000000
}
],[
4,{}
],[
5,{
"basic_fee": 500000,
"premium_fee": 200000000,
"price_per_kbyte": 100000
}
],[
6,{
"fee": 2000000,
"price_per_kbyte": 100000
}
],[
7,{
"fee": 300000
}
],[
8,{
"membership_annual_fee": 200000000,
"membership_lifetime_fee": 1000000000
}
],[
9,{
"fee": 50000000
}
],[
10,{
"symbol3": "50000000000",
"symbol4": "30000000000",
"long_symbol": 500000000,
"price_per_kbyte": 10
}
],[
11,{
"fee": 50000000,
"price_per_kbyte": 10
}
],[
12,{
"fee": 50000000
}
],[
13,{
"fee": 50000000
}
],[
14,{
"fee": 2000000,
"price_per_kbyte": 100000
}
],[
15,{
"fee": 2000000
}
],[
16,{
"fee": 100000
}
],[
17,{
"fee": 10000000
}
],[
18,{
"fee": 50000000
}
],[
19,{
"fee": 100000
}
],[
20,{
"fee": 500000000
}
],[
21,{
"fee": 2000000
}
],[
22,{
"fee": 2000000,
"price_per_kbyte": 10
}
],[
23,{
"fee": 2000000,
"price_per_kbyte": 10
}
],[
24,{
"fee": 100000
}
],[
25,{
"fee": 100000
}
],[
26,{
"fee": 100000
}
],[
27,{
"fee": 2000000,
"price_per_kbyte": 10
}
],[
28,{
"fee": 0
}
],[
29,{
"fee": 500000000
}
],[
30,{
"fee": 2000000
}
],[
31,{
"fee": 100000
}
],[
32,{
"fee": 100000
}
],[
33,{
"fee": 2000000
}
],[
34,{
"fee": 500000000
}
],[
35,{
"fee": 100000,
"price_per_kbyte": 10
}
],[
36,{
"fee": 100000
}
],[
37,{}
],[
38,{
"fee": 2000000,
"price_per_kbyte": 10
}
],[
39,{
"fee": 500000,
"price_per_output": 500000
}
],[
40,{
"fee": 500000,
"price_per_output": 500000
}
],[
41,{
"fee": 500000
}
],[
42,{}
],[
43,{
"fee": 2000000
}
],[
44,{}
],[
45,{
"fee": 100000
}
],[
46,{
"fee": 100000
}
],[
47,{
"fee": 100000
}
],[
48,{
"fee": 50000000
}
],[
49,{
"distribution_base_fee": 0,
"distribution_fee_per_holder": 0
}
],[
50,{}
],[
51,{
"fee": 100000
}
]
],
"scale": 10000
},
"block_interval": 5,
"maintenance_interval": 600,
"maintenance_skip_slots": 3,
"committee_proposal_review_period": 360,
"maximum_transaction_size": 2048,
"maximum_block_size": 2048000000,
"maximum_time_until_expiration": 86400,
"maximum_proposal_lifetime": 2419200,
"maximum_asset_whitelist_authorities": 10,
"maximum_asset_feed_publishers": 10,
"maximum_witness_count": 1001,
"maximum_committee_count": 1001,
"maximum_authority_membership": 10,
"reserve_percent_of_fee": 2000,
"network_percent_of_fee": 2000,
"lifetime_referrer_percent_of_fee": 3000,
"cashback_vesting_period_seconds": 31536000,
"cashback_vesting_threshold": 10000000,
"count_non_member_votes": true,
"allow_non_member_whitelists": false,
"witness_pay_per_block": 1000000,
"worker_budget_per_day": "50000000000",
"max_predicate_opcode": 1,
"fee_liquidation_threshold": 10000000,
"accounts_per_fee_scale": 1000,
"account_fee_scale_bitshifts": 4,
"max_authority_depth": 2,
"witness_schedule_algorithm": 1,
"min_round_delay": 0,
"max_round_delay": 600,
"min_time_per_commit_move": 0,
"max_time_per_commit_move": 600,
"min_time_per_reveal_move": 0,
"max_time_per_reveal_move": 600,
"rake_fee_percentage": 300,
"maximum_registration_deadline": 2592000,
"maximum_players_in_tournament": 256,
"maximum_tournament_whitelist_length": 1000,
"maximum_tournament_start_time_in_future": 2419200,
"maximum_tournament_start_delay": 604800,
"maximum_tournament_number_of_wins": 100,
"extensions": []
},
"initial_bts_accounts": [],
"initial_accounts": [{
"name": "init0",
"owner_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"active_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"is_lifetime_member": true
},{
"name": "init1",
"owner_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"active_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"is_lifetime_member": true
},{
"name": "init2",
"owner_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"active_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"is_lifetime_member": true
},{
"name": "init3",
"owner_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"active_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"is_lifetime_member": true
},{
"name": "init4",
"owner_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"active_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"is_lifetime_member": true
},{
"name": "init5",
"owner_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"active_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"is_lifetime_member": true
},{
"name": "init6",
"owner_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"active_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"is_lifetime_member": true
},{
"name": "init7",
"owner_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"active_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"is_lifetime_member": true
},{
"name": "init8",
"owner_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"active_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"is_lifetime_member": true
},{
"name": "init9",
"owner_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"active_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"is_lifetime_member": true
},{
"name": "init10",
"owner_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"active_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"is_lifetime_member": true
},{
"name": "nathan",
"owner_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"active_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"is_lifetime_member": false
},{
"name": "test1",
"owner_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"active_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"is_lifetime_member": false
},{
"name": "test1",
"owner_key": "PPY6L4qPkBNes1UuQZN6aZzywo9Wm66NmjVsCdzTex31Qk5RVBauG",
"active_key": "PPY6L4qPkBNes1UuQZN6aZzywo9Wm66NmjVsCdzTex31Qk5RVBauG",
"is_lifetime_member": false
},{
"name": "test2",
"owner_key": "5Jw6mcka5HZy44n88LQrGBFsxyi7MM98kzrCKNfZAVDGkEtooAJ",
"active_key": "5Jw6mcka5HZy44n88LQrGBFsxyi7MM98kzrCKNfZAVDGkEtooAJ",
"is_lifetime_member": false
},{
"name": "test3",
"owner_key": "5JuJZYYzB9GgyVqENjRg3SU3vcXMgZ7Wo8WLUw4U6J2xq4VMEcj",
"active_key": "5JuJZYYzB9GgyVqENjRg3SU3vcXMgZ7Wo8WLUw4U6J2xq4VMEcj",
"is_lifetime_member": false
},{
"name": "test4",
"owner_key": "5JDZtMPCUtRgTSfBWu7xwacA6rr5ivd4gT5jUYF7RhJ3E1n7F9K",
"active_key": "5JDZtMPCUtRgTSfBWu7xwacA6rr5ivd4gT5jUYF7RhJ3E1n7F9K",
"is_lifetime_member": false
},{
"name": "test5",
"owner_key": "5JGkULBdaLaAnCcxokW23SBwzoejHQT4ozFeekGViaWQFKkF6SL",
"active_key": "5JGkULBdaLaAnCcxokW23SBwzoejHQT4ozFeekGViaWQFKkF6SL",
"is_lifetime_member": false
},{
"name": "test6",
"owner_key": "5JtFaTL3GAajvhmRdwcqQoDMVwkPt8oQ79bcDRaLGUUnHRq2mgt",
"active_key": "5JtFaTL3GAajvhmRdwcqQoDMVwkPt8oQ79bcDRaLGUUnHRq2mgt",
"is_lifetime_member": false
},{
"name": "test7",
"owner_key": "5KbFz9mYHSUEc9khcP186N42R21wETij3BtwhLXR5hBRYSy2kAY",
"active_key": "5KbFz9mYHSUEc9khcP186N42R21wETij3BtwhLXR5hBRYSy2kAY",
"is_lifetime_member": false
},{
"name": "test8",
"owner_key": "5HqchQdjxWKGBPmtmoKemJP91SiGKjejDEXMQTDUmm6XnbyTifM",
"active_key": "5HqchQdjxWKGBPmtmoKemJP91SiGKjejDEXMQTDUmm6XnbyTifM",
"is_lifetime_member": false
},{
"name": "test9",
"owner_key": "5JYjU5CEFaEZekdc7w8kqpiXoyUV2XJjPuHd6RA9vEvRDrjLAb3",
"active_key": "5JYjU5CEFaEZekdc7w8kqpiXoyUV2XJjPuHd6RA9vEvRDrjLAb3",
"is_lifetime_member": false
},{
"name": "test10",
"owner_key": "5K1G8cgzkq8nv4wxqs5AiVgT4WFf2XJoyH843PVS9zMUTj7fKqX",
"active_key": "5K1G8cgzkq8nv4wxqs5AiVgT4WFf2XJoyH843PVS9zMUTj7fKqX",
"is_lifetime_member": false
},{
"name": "test11",
"owner_key": "5KHckeB8WMCX7hpQsMck3AdpJ6JSD8ZV5V4S9CotBh5eTVNsn1Y",
"active_key": "5KHckeB8WMCX7hpQsMck3AdpJ6JSD8ZV5V4S9CotBh5eTVNsn1Y",
"is_lifetime_member": false
},{
"name": "test12",
"owner_key": "5KB9Cp78jWuCxV7bcW6WsznWkGtKnLcXdfTVKabF3bt3FwL4cnu",
"active_key": "5KB9Cp78jWuCxV7bcW6WsznWkGtKnLcXdfTVKabF3bt3FwL4cnu",
"is_lifetime_member": false
},{
"name": "test13",
"owner_key": "5JR91cxXY3Qp7VBWuYNPLByp8GM6fisXvdvHckFHtGc1ShLsE3v",
"active_key": "5JR91cxXY3Qp7VBWuYNPLByp8GM6fisXvdvHckFHtGc1ShLsE3v",
"is_lifetime_member": false
},{
"name": "test14",
"owner_key": "5JdkbnfwBQduk3Cbb9fdoL18odea5qaXbbac8dowrjsmy6yXNx9",
"active_key": "5JdkbnfwBQduk3Cbb9fdoL18odea5qaXbbac8dowrjsmy6yXNx9",
"is_lifetime_member": false
},{
"name": "test15",
"owner_key": "5JnTr82SkQTPiKMyAbUoPKcGAbKdD5RMLB4YVLmBuocA6x81XKA",
"active_key": "5JnTr82SkQTPiKMyAbUoPKcGAbKdD5RMLB4YVLmBuocA6x81XKA",
"is_lifetime_member": false
}
],
"initial_assets": [],
"initial_balances": [{
"owner": "PPYFAbAx7yuxt725qSZvfwWqkdCwp9ZnUama",
"asset_symbol": "PPY",
"amount": "850000000000000"
},{
"owner": "PPYCBsargaMZiJv2NA4XHVNdhq9TprM5ks8T",
"asset_symbol": "PPY",
"amount": "10000000000000"
},{
"owner": "PPYFqXL5StnqRewB1gp27w8kUdYerbCv8t9v",
"asset_symbol": "PPY",
"amount": "10000000000000"
},{
"owner": "PPYEZjmbeikyqouGw3Uy8TPwz8tYXuLWNRas",
"asset_symbol": "PPY",
"amount": "10000000000000"
},{
"owner": "PPYEbWu8vo2YLxEjkxR5QtJ1quotddXSEGF4",
"asset_symbol": "PPY",
"amount": "10000000000000"
},{
"owner": "PPYCLvjLEA2TGkWQKEZ2fTCmXsG52BxMkaXr",
"asset_symbol": "PPY",
"amount": "10000000000000"
},{
"owner": "PPYArrQfQVbQZZ4AoxaNPSknL4mKWmVRDqAn",
"asset_symbol": "PPY",
"amount": "10000000000000"
},{
"owner": "PPYPrHBUwjYHZuKHtgmzRaFQDWZBeh8Noadw",
"asset_symbol": "PPY",
"amount": "10000000000000"
},{
"owner": "PPYJWz2fiJesFStjacd5kwgRBfsvCBDNLauD",
"asset_symbol": "PPY",
"amount": "10000000000000"
},{
"owner": "PPYHsdnJNHSRAQpQvahoqxdn9kXvR7XphUDK",
"asset_symbol": "PPY",
"amount": "10000000000000"
},{
"owner": "PPYKFURMX2iJ4xwZkLbkGXhEeK6hWKRyF38c",
"asset_symbol": "PPY",
"amount": "10000000000000"
},{
"owner": "PPYCzbNHzxjMdjfGZ5XxPvb1GDieq9JqyrKv",
"asset_symbol": "PPY",
"amount": "10000000000000"
},{
"owner": "PPYCJwJEKJ9X89HCREQmgLJndN44ruozmDQB",
"asset_symbol": "PPY",
"amount": "10000000000000"
},{
"owner": "PPY7wNJoJ2ixGZr4e6AHqoD171kkP1aCYNDK",
"asset_symbol": "PPY",
"amount": "10000000000000"
},{
"owner": "PPY3KKfDjCkYraWeo4v9ikRxJDEAyVEpFWG4",
"asset_symbol": "PPY",
"amount": "10000000000000"
},{
"owner": "PPYHriQqZQCyP88EhQ2TQD2Auqxnej6h5fBW",
"asset_symbol": "PPY",
"amount": "10000000000000"
}
],
"initial_vesting_balances": [],
"initial_active_witnesses": 11,
"initial_witness_candidates": [{
"owner_name": "init0",
"block_signing_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
},{
"owner_name": "init1",
"block_signing_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
},{
"owner_name": "init2",
"block_signing_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
},{
"owner_name": "init3",
"block_signing_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
},{
"owner_name": "init4",
"block_signing_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
},{
"owner_name": "init5",
"block_signing_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
},{
"owner_name": "init6",
"block_signing_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
},{
"owner_name": "init7",
"block_signing_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
},{
"owner_name": "init8",
"block_signing_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
},{
"owner_name": "init9",
"block_signing_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
},{
"owner_name": "init10",
"block_signing_key": "PPY6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
}
],
"initial_committee_candidates": [{
"owner_name": "init0"
},{
"owner_name": "init1"
},{
"owner_name": "init2"
},{
"owner_name": "init3"
},{
"owner_name": "init4"
},{
"owner_name": "init5"
},{
"owner_name": "init6"
},{
"owner_name": "init7"
},{
"owner_name": "init8"
},{
"owner_name": "init9"
},{
"owner_name": "init10"
}
],
"initial_worker_candidates": [],
"initial_chain_id": "aa34045518f1469a28fa4578240d5f039afa9959c0b95ce3b39674efa691fb21",
"immutable_parameters": {
"min_committee_member_count": 11,
"min_witness_count": 11,
"num_special_accounts": 0,
"num_special_assets": 0
}
}