Merge branch 'merge/master-to-beatrice-20201203' into beatrice
This commit is contained in:
commit
99a7d8453c
16 changed files with 213918 additions and 8196 deletions
|
|
@ -88,14 +88,14 @@ then proceed with:
|
||||||
cmake -DBOOST_ROOT="$BOOST_ROOT" -DCMAKE_BUILD_TYPE=Release .
|
cmake -DBOOST_ROOT="$BOOST_ROOT" -DCMAKE_BUILD_TYPE=Release .
|
||||||
make
|
make
|
||||||
./programs/witness_node/witness_node
|
./programs/witness_node/witness_node
|
||||||
|
|
||||||
Launching the witness creates required directories. Next, **stop the witness** and continue.
|
Launching the witness creates required directories. Next, **stop the witness** and continue.
|
||||||
|
|
||||||
$ vi witness_node_data_dir/config.ini
|
$ vi witness_node_data_dir/config.ini
|
||||||
p2p-endpoint = 0.0.0.0:9777
|
p2p-endpoint = 0.0.0.0:9777
|
||||||
rpc-endpoint = 127.0.0.1:8090
|
rpc-endpoint = 127.0.0.1:8090
|
||||||
seed-node = 213.184.225.234:59500
|
seed-node = 213.184.225.234:59500
|
||||||
|
|
||||||
Start the witness back up
|
Start the witness back up
|
||||||
|
|
||||||
./programs/witness_node/witness_node
|
./programs/witness_node/witness_node
|
||||||
|
|
@ -155,7 +155,7 @@ Create your witness (substitute the url for your witness information)
|
||||||
```
|
```
|
||||||
create_witness your_witness_username "url" true
|
create_witness your_witness_username "url" true
|
||||||
```
|
```
|
||||||
**Be sure to take note of the block_signing_key**
|
**Be sure to take note of the block_signing_key**
|
||||||
|
|
||||||
IMPORTANT (issue below command using block_signing_key just obtained)
|
IMPORTANT (issue below command using block_signing_key just obtained)
|
||||||
```
|
```
|
||||||
|
|
|
||||||
222008
genesis.json
222008
genesis.json
File diff suppressed because it is too large
Load diff
|
|
@ -160,10 +160,13 @@ namespace detail {
|
||||||
{
|
{
|
||||||
// t.me/peerplays #seednodes
|
// t.me/peerplays #seednodes
|
||||||
vector<string> seeds = {
|
vector<string> seeds = {
|
||||||
"ppy-beatrice-seed.blckchnd.com:6666",
|
"173.249.23.108:9777",
|
||||||
"159.69.223.206:7777",
|
"node.peerblock.trade:9777",
|
||||||
"51.38.237.243:9666",
|
"peerplays.blockoperations.com:9777",
|
||||||
"pbsa-beatrice.blockchainprojectsbv.com:9195"
|
"pms.blockveritas.co:7777",
|
||||||
|
"seed.ppy.alex-pu.info:8888",
|
||||||
|
"seed.ppy.blckchnd.com:6116",
|
||||||
|
"seed01.eifos.org:7777"
|
||||||
};
|
};
|
||||||
|
|
||||||
for( const string& endpoint_string : seeds )
|
for( const string& endpoint_string : seeds )
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ void_result asset_create_evaluator::do_evaluate( const asset_create_operation& o
|
||||||
{
|
{
|
||||||
auto dotpos = op.symbol.rfind( '.' );
|
auto dotpos = op.symbol.rfind( '.' );
|
||||||
if( dotpos != std::string::npos )
|
if( dotpos != std::string::npos )
|
||||||
|
|
||||||
{
|
{
|
||||||
auto prefix = op.symbol.substr( 0, dotpos );
|
auto prefix = op.symbol.substr( 0, dotpos );
|
||||||
auto asset_symbol_itr = asset_indx.find( prefix );
|
auto asset_symbol_itr = asset_indx.find( prefix );
|
||||||
|
|
@ -122,7 +122,7 @@ void_result asset_create_evaluator::do_evaluate( const asset_create_operation& o
|
||||||
FC_ASSERT( op.bitasset_opts );
|
FC_ASSERT( op.bitasset_opts );
|
||||||
FC_ASSERT( op.precision == op.bitasset_opts->short_backing_asset(d).precision );
|
FC_ASSERT( op.precision == op.bitasset_opts->short_backing_asset(d).precision );
|
||||||
}
|
}
|
||||||
|
|
||||||
return void_result();
|
return void_result();
|
||||||
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
||||||
|
|
||||||
|
|
@ -177,7 +177,7 @@ object_id_type asset_create_evaluator::do_apply( const asset_create_operation& o
|
||||||
a.options.core_exchange_rate.base.asset_id = next_asset_id;
|
a.options.core_exchange_rate.base.asset_id = next_asset_id;
|
||||||
|
|
||||||
a.dynamic_asset_data_id = dyn_asset.id;
|
a.dynamic_asset_data_id = dyn_asset.id;
|
||||||
|
|
||||||
if( op.bitasset_opts.valid() )
|
if( op.bitasset_opts.valid() )
|
||||||
a.bitasset_data_id = bit_asset_id;
|
a.bitasset_data_id = bit_asset_id;
|
||||||
});
|
});
|
||||||
|
|
@ -225,7 +225,7 @@ void_result lottery_asset_create_evaluator::do_evaluate( const lottery_asset_cre
|
||||||
{
|
{
|
||||||
auto dotpos = op.symbol.rfind( '.' );
|
auto dotpos = op.symbol.rfind( '.' );
|
||||||
if( dotpos != std::string::npos )
|
if( dotpos != std::string::npos )
|
||||||
|
|
||||||
{
|
{
|
||||||
auto prefix = op.symbol.substr( 0, dotpos );
|
auto prefix = op.symbol.substr( 0, dotpos );
|
||||||
auto asset_symbol_itr = asset_indx.find( prefix );
|
auto asset_symbol_itr = asset_indx.find( prefix );
|
||||||
|
|
@ -578,7 +578,7 @@ void_result asset_update_dividend_evaluator::do_evaluate(const asset_update_divi
|
||||||
auto& params = db().get_global_properties().parameters;
|
auto& params = db().get_global_properties().parameters;
|
||||||
if (o.new_options.payout_interval &&
|
if (o.new_options.payout_interval &&
|
||||||
*o.new_options.payout_interval < params.maintenance_interval)
|
*o.new_options.payout_interval < params.maintenance_interval)
|
||||||
FC_THROW("New payout interval may not be less than the maintenance interval",
|
FC_THROW("New payout interval may not be less than the maintenance interval",
|
||||||
("new_payout_interval", o.new_options.payout_interval)("maintenance_interval", params.maintenance_interval));
|
("new_payout_interval", o.new_options.payout_interval)("maintenance_interval", params.maintenance_interval));
|
||||||
return void_result();
|
return void_result();
|
||||||
} FC_CAPTURE_AND_RETHROW( (o) ) }
|
} FC_CAPTURE_AND_RETHROW( (o) ) }
|
||||||
|
|
|
||||||
|
|
@ -44,11 +44,11 @@
|
||||||
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
struct proposed_operations_digest_accumulator
|
struct proposed_operations_digest_accumulator
|
||||||
{
|
{
|
||||||
typedef void result_type;
|
typedef void result_type;
|
||||||
|
|
||||||
void operator()(const graphene::chain::proposal_create_operation& proposal)
|
void operator()(const graphene::chain::proposal_create_operation& proposal)
|
||||||
{
|
{
|
||||||
for (auto& operation: proposal.proposed_ops)
|
for (auto& operation: proposal.proposed_ops)
|
||||||
|
|
@ -56,20 +56,20 @@ namespace {
|
||||||
proposed_operations_digests.push_back(fc::digest(operation.op));
|
proposed_operations_digests.push_back(fc::digest(operation.op));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//empty template method is needed for all other operation types
|
//empty template method is needed for all other operation types
|
||||||
//we can ignore them, we are interested in only proposal_create_operation
|
//we can ignore them, we are interested in only proposal_create_operation
|
||||||
template<class T>
|
template<class T>
|
||||||
void operator()(const T&)
|
void operator()(const T&)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
std::vector<fc::sha256> proposed_operations_digests;
|
std::vector<fc::sha256> proposed_operations_digests;
|
||||||
};
|
};
|
||||||
|
|
||||||
std::vector<fc::sha256> gather_proposed_operations_digests(const graphene::chain::transaction& trx)
|
std::vector<fc::sha256> gather_proposed_operations_digests(const graphene::chain::transaction& trx)
|
||||||
{
|
{
|
||||||
proposed_operations_digest_accumulator digest_accumulator;
|
proposed_operations_digest_accumulator digest_accumulator;
|
||||||
|
|
||||||
for (auto& operation: trx.operations)
|
for (auto& operation: trx.operations)
|
||||||
{
|
{
|
||||||
if( operation.which() != graphene::chain::operation::tag<graphene::chain::betting_market_group_create_operation>::value
|
if( operation.which() != graphene::chain::operation::tag<graphene::chain::betting_market_group_create_operation>::value
|
||||||
|
|
@ -78,7 +78,7 @@ namespace {
|
||||||
else
|
else
|
||||||
edump( ("Found dup"));
|
edump( ("Found dup"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return digest_accumulator.proposed_operations_digests;
|
return digest_accumulator.proposed_operations_digests;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -148,24 +148,24 @@ std::vector<block_id_type> database::get_block_ids_on_fork(block_id_type head_of
|
||||||
result.emplace_back(branches.first.back()->previous_id());
|
result.emplace_back(branches.first.back()->previous_id());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void database::check_transaction_for_duplicated_operations(const signed_transaction& trx)
|
void database::check_transaction_for_duplicated_operations(const signed_transaction& trx)
|
||||||
{
|
{
|
||||||
const auto& proposal_index = get_index<proposal_object>();
|
const auto& proposal_index = get_index<proposal_object>();
|
||||||
std::set<fc::sha256> existed_operations_digests;
|
std::set<fc::sha256> existed_operations_digests;
|
||||||
|
|
||||||
proposal_index.inspect_all_objects( [&](const object& obj){
|
proposal_index.inspect_all_objects( [&](const object& obj){
|
||||||
const proposal_object& proposal = static_cast<const proposal_object&>(obj);
|
const proposal_object& proposal = static_cast<const proposal_object&>(obj);
|
||||||
auto proposed_operations_digests = gather_proposed_operations_digests( proposal.proposed_transaction );
|
auto proposed_operations_digests = gather_proposed_operations_digests( proposal.proposed_transaction );
|
||||||
existed_operations_digests.insert( proposed_operations_digests.begin(), proposed_operations_digests.end() );
|
existed_operations_digests.insert( proposed_operations_digests.begin(), proposed_operations_digests.end() );
|
||||||
});
|
});
|
||||||
|
|
||||||
for (auto& pending_transaction: _pending_tx)
|
for (auto& pending_transaction: _pending_tx)
|
||||||
{
|
{
|
||||||
auto proposed_operations_digests = gather_proposed_operations_digests(pending_transaction);
|
auto proposed_operations_digests = gather_proposed_operations_digests(pending_transaction);
|
||||||
existed_operations_digests.insert(proposed_operations_digests.begin(), proposed_operations_digests.end());
|
existed_operations_digests.insert(proposed_operations_digests.begin(), proposed_operations_digests.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
auto proposed_operations_digests = gather_proposed_operations_digests(trx);
|
auto proposed_operations_digests = gather_proposed_operations_digests(trx);
|
||||||
for (auto& digest: proposed_operations_digests)
|
for (auto& digest: proposed_operations_digests)
|
||||||
{
|
{
|
||||||
|
|
@ -337,7 +337,7 @@ void database::verify_signing_witness( const signed_block& new_block, const fork
|
||||||
FC_ASSERT( new_block.witness == wid, "Witness produced block at wrong time",
|
FC_ASSERT( new_block.witness == wid, "Witness produced block at wrong time",
|
||||||
("block witness",new_block.witness)("scheduled",wid)("slot_num",slot_num) );
|
("block witness",new_block.witness)("scheduled",wid)("slot_num",slot_num) );
|
||||||
FC_ASSERT( new_block.validate_signee( wid(*this).signing_key ) );
|
FC_ASSERT( new_block.validate_signee( wid(*this).signing_key ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void database::update_witnesses( fork_item& fork_entry )const
|
void database::update_witnesses( fork_item& fork_entry )const
|
||||||
|
|
@ -351,7 +351,7 @@ void database::update_witnesses( fork_item& fork_entry )const
|
||||||
const witness_schedule_object& wso = get_witness_schedule_object();
|
const witness_schedule_object& wso = get_witness_schedule_object();
|
||||||
fork_entry.scheduled_witnesses = std::make_shared< vector< pair< witness_id_type, public_key_type > > >();
|
fork_entry.scheduled_witnesses = std::make_shared< vector< pair< witness_id_type, public_key_type > > >();
|
||||||
fork_entry.scheduled_witnesses->reserve( wso.current_shuffled_witnesses.size() );
|
fork_entry.scheduled_witnesses->reserve( wso.current_shuffled_witnesses.size() );
|
||||||
|
|
||||||
for( size_t i = 0; i < wso.current_shuffled_witnesses.size(); ++i )
|
for( size_t i = 0; i < wso.current_shuffled_witnesses.size(); ++i )
|
||||||
{
|
{
|
||||||
const auto& witness = wso.current_shuffled_witnesses[i](*this);
|
const auto& witness = wso.current_shuffled_witnesses[i](*this);
|
||||||
|
|
@ -551,7 +551,7 @@ signed_block database::_generate_block(
|
||||||
pending_block.timestamp = when;
|
pending_block.timestamp = when;
|
||||||
pending_block.transaction_merkle_root = pending_block.calculate_merkle_root();
|
pending_block.transaction_merkle_root = pending_block.calculate_merkle_root();
|
||||||
pending_block.witness = witness_id;
|
pending_block.witness = witness_id;
|
||||||
|
|
||||||
// Genesis witnesses start with a default initial secret
|
// Genesis witnesses start with a default initial secret
|
||||||
if( witness_obj.next_secret_hash == secret_hash_type::hash( secret_hash_type() ) ) {
|
if( witness_obj.next_secret_hash == secret_hash_type::hash( secret_hash_type() ) ) {
|
||||||
pending_block.previous_secret = secret_hash_type();
|
pending_block.previous_secret = secret_hash_type();
|
||||||
|
|
@ -561,7 +561,7 @@ signed_block database::_generate_block(
|
||||||
fc::raw::pack( last_enc, witness_obj.previous_secret );
|
fc::raw::pack( last_enc, witness_obj.previous_secret );
|
||||||
pending_block.previous_secret = last_enc.result();
|
pending_block.previous_secret = last_enc.result();
|
||||||
}
|
}
|
||||||
|
|
||||||
secret_hash_type::encoder next_enc;
|
secret_hash_type::encoder next_enc;
|
||||||
fc::raw::pack( next_enc, block_signing_private_key );
|
fc::raw::pack( next_enc, block_signing_private_key );
|
||||||
fc::raw::pack( next_enc, pending_block.previous_secret );
|
fc::raw::pack( next_enc, pending_block.previous_secret );
|
||||||
|
|
@ -692,10 +692,10 @@ void database::_apply_block( const signed_block& next_block )
|
||||||
// For VOPs derived directly from a real op,
|
// For VOPs derived directly from a real op,
|
||||||
// use the real op's (block_num,trx_in_block,op_in_trx), virtual_op starts from 1.
|
// use the real op's (block_num,trx_in_block,op_in_trx), virtual_op starts from 1.
|
||||||
// For VOPs created after processed all transactions,
|
// For VOPs created after processed all transactions,
|
||||||
// trx_in_block = the_block.trsanctions.size(), virtual_op starts from 0.
|
// trx_in_block = the_block.trsanctions.size(), virtual_op starts from 0.
|
||||||
++_current_trx_in_block;
|
++_current_trx_in_block;
|
||||||
_current_op_in_trx = 0;
|
_current_op_in_trx = 0;
|
||||||
_current_virtual_op = 0;
|
_current_virtual_op = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (global_props.parameters.witness_schedule_algorithm == GRAPHENE_WITNESS_SCHEDULED_ALGORITHM) {
|
if (global_props.parameters.witness_schedule_algorithm == GRAPHENE_WITNESS_SCHEDULED_ALGORITHM) {
|
||||||
|
|
@ -713,9 +713,9 @@ void database::_apply_block( const signed_block& next_block )
|
||||||
// Are we at the maintenance interval?
|
// Are we at the maintenance interval?
|
||||||
if( maint_needed )
|
if( maint_needed )
|
||||||
perform_chain_maintenance(next_block, global_props);
|
perform_chain_maintenance(next_block, global_props);
|
||||||
|
|
||||||
check_ending_lotteries();
|
check_ending_lotteries();
|
||||||
|
|
||||||
create_block_summary(next_block);
|
create_block_summary(next_block);
|
||||||
place_delayed_bets(); // must happen after update_global_dynamic_data() updates the time
|
place_delayed_bets(); // must happen after update_global_dynamic_data() updates the time
|
||||||
clear_expired_transactions();
|
clear_expired_transactions();
|
||||||
|
|
@ -786,7 +786,7 @@ processed_transaction database::_apply_transaction(const signed_transaction& trx
|
||||||
auto& trx_idx = get_mutable_index_type<transaction_index>();
|
auto& trx_idx = get_mutable_index_type<transaction_index>();
|
||||||
const chain_id_type& chain_id = get_chain_id();
|
const chain_id_type& chain_id = get_chain_id();
|
||||||
transaction_id_type trx_id;
|
transaction_id_type trx_id;
|
||||||
|
|
||||||
if( !(skip & skip_transaction_dupe_check) )
|
if( !(skip & skip_transaction_dupe_check) )
|
||||||
{
|
{
|
||||||
trx_id = trx.id();
|
trx_id = trx.id();
|
||||||
|
|
@ -884,7 +884,7 @@ const witness_object& database::validate_block_header( uint32_t skip, const sign
|
||||||
FC_ASSERT( secret_hash_type::hash( next_block.previous_secret ) == witness.next_secret_hash, "",
|
FC_ASSERT( secret_hash_type::hash( next_block.previous_secret ) == witness.next_secret_hash, "",
|
||||||
( "previous_secret", next_block.previous_secret )( "next_secret_hash", witness.next_secret_hash ) );
|
( "previous_secret", next_block.previous_secret )( "next_secret_hash", witness.next_secret_hash ) );
|
||||||
|
|
||||||
if( !(skip&skip_witness_signature) )
|
if( !(skip&skip_witness_signature) )
|
||||||
FC_ASSERT( next_block.validate_signee( witness.signing_key ) );
|
FC_ASSERT( next_block.validate_signee( witness.signing_key ) );
|
||||||
|
|
||||||
if( !(skip&skip_witness_schedule_check) )
|
if( !(skip&skip_witness_schedule_check) )
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
#ifndef HARDFORK_1000_TIME
|
#ifndef HARDFORK_1000_TIME
|
||||||
#define HARDFORK_1000_TIME (fc::time_point_sec( 1540000000 ))
|
#define HARDFORK_1000_TIME (fc::time_point_sec( 1550491200 ))
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// added delete sport and delete event group operations
|
// added delete sport and delete event group operations
|
||||||
#ifndef HARDFORK_1001_TIME
|
#ifndef HARDFORK_1001_TIME
|
||||||
#define HARDFORK_1001_TIME (fc::time_point_sec( 1540000000 ))
|
#define HARDFORK_1001_TIME (fc::time_point_sec( 1550491200 ))
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// 5050_1 HARDFORK Wednesday, 15 April 2020 20:00:00 GMT
|
// 5050_1 HARDFORK Thursday, 22 April 2020 20:00:00 GMT
|
||||||
#ifndef HARDFORK_5050_1_TIME
|
#ifndef HARDFORK_5050_1_TIME
|
||||||
#define HARDFORK_5050_1_TIME (fc::time_point_sec( 1586980800 ))
|
#define HARDFORK_5050_1_TIME (fc::time_point_sec( 1587585600 ))
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Placeholder HF for affiliate reward system
|
// Placeholder HF for affiliate reward system
|
||||||
#ifndef HARDFORK_999_TIME
|
#ifndef HARDFORK_999_TIME
|
||||||
#define HARDFORK_999_TIME (fc::time_point_sec( 1540000000 ))
|
#define HARDFORK_999_TIME (fc::time_point_sec( 1550491200 ))
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// bitshares-core #429 rounding issue when creating assets
|
// bitshares-core #429 rounding issue when creating assets
|
||||||
#ifndef HARDFORK_CORE_429_TIME
|
#ifndef HARDFORK_CORE_429_TIME
|
||||||
#define HARDFORK_CORE_429_TIME (fc::time_point_sec( 1566784800 ))
|
#define HARDFORK_CORE_429_TIME (fc::time_point_sec( 1568340000 ))
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// GPOS HARDFORK Monday, 6 January 2020 01:00:00 GMT
|
// GPOS HARDFORK Monday, 17 February 2020 22:00:00 GMT
|
||||||
#ifndef HARDFORK_GPOS_TIME
|
#ifndef HARDFORK_GPOS_TIME
|
||||||
#define HARDFORK_GPOS_TIME (fc::time_point_sec( 1578272400 ))
|
#define HARDFORK_GPOS_TIME (fc::time_point_sec( 1581976800 ))
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
#ifndef HARDFORK_SWEEPS_TIME
|
#ifndef HARDFORK_SWEEPS_TIME
|
||||||
#define HARDFORK_SWEEPS_TIME (fc::time_point_sec( 1566784800 ))
|
#define HARDFORK_SWEEPS_TIME (fc::time_point_sec( 1568340000 ))
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -28,10 +28,10 @@ namespace graphene
|
||||||
using account_role_multi_index_type = multi_index_container<
|
using account_role_multi_index_type = multi_index_container<
|
||||||
account_role_object,
|
account_role_object,
|
||||||
indexed_by<
|
indexed_by<
|
||||||
ordered_unique< tag<by_id>,
|
ordered_unique< tag<by_id>,
|
||||||
member<object, object_id_type, &object::id>
|
member<object, object_id_type, &object::id>
|
||||||
>,
|
>,
|
||||||
ordered_non_unique< tag<by_owner>,
|
ordered_non_unique< tag<by_owner>,
|
||||||
member<account_role_object, account_id_type, &account_role_object::owner>
|
member<account_role_object, account_id_type, &account_role_object::owner>
|
||||||
>,
|
>,
|
||||||
ordered_unique< tag<by_expiration>,
|
ordered_unique< tag<by_expiration>,
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,8 @@
|
||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define GRAPHENE_SYMBOL "TEST"
|
#define GRAPHENE_SYMBOL "PPY"
|
||||||
#define GRAPHENE_ADDRESS_PREFIX "TEST"
|
#define GRAPHENE_ADDRESS_PREFIX "PPY"
|
||||||
|
|
||||||
#define GRAPHENE_MIN_ACCOUNT_NAME_LENGTH 1
|
#define GRAPHENE_MIN_ACCOUNT_NAME_LENGTH 1
|
||||||
#define GRAPHENE_MAX_ACCOUNT_NAME_LENGTH 63
|
#define GRAPHENE_MAX_ACCOUNT_NAME_LENGTH 63
|
||||||
|
|
@ -153,7 +153,7 @@
|
||||||
#define GRAPHENE_RECENTLY_MISSED_COUNT_INCREMENT 4
|
#define GRAPHENE_RECENTLY_MISSED_COUNT_INCREMENT 4
|
||||||
#define GRAPHENE_RECENTLY_MISSED_COUNT_DECREMENT 3
|
#define GRAPHENE_RECENTLY_MISSED_COUNT_DECREMENT 3
|
||||||
|
|
||||||
#define GRAPHENE_CURRENT_DB_VERSION "PPY2.3"
|
#define GRAPHENE_CURRENT_DB_VERSION "PPY2.4"
|
||||||
|
|
||||||
#define GRAPHENE_IRREVERSIBLE_THRESHOLD (70 * GRAPHENE_1_PERCENT)
|
#define GRAPHENE_IRREVERSIBLE_THRESHOLD (70 * GRAPHENE_1_PERCENT)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1877,9 +1877,8 @@ BOOST_AUTO_TEST_CASE(event_group_delete_test_not_existed_event_group)
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
CREATE_ICE_HOCKEY_BETTING_MARKET(false, 0);
|
CREATE_ICE_HOCKEY_BETTING_MARKET(false, 0);
|
||||||
event_group_id_type nhl_id = nhl.id;
|
event_group_id_type nhl_id = nhl.id;
|
||||||
delete_event_group(nhl_id);
|
delete_event_group(nhl_id);
|
||||||
|
|
||||||
|
|
||||||
BOOST_CHECK_THROW(delete_event_group(nhl_id), fc::exception);
|
BOOST_CHECK_THROW(delete_event_group(nhl_id), fc::exception);
|
||||||
} FC_LOG_AND_RETHROW()
|
} FC_LOG_AND_RETHROW()
|
||||||
|
|
|
||||||
|
|
@ -1005,7 +1005,7 @@ BOOST_AUTO_TEST_CASE( issue_429_test )
|
||||||
|
|
||||||
const auto& fees = *db.get_global_properties().parameters.current_fees;
|
const auto& fees = *db.get_global_properties().parameters.current_fees;
|
||||||
auto fees_to_pay = fees.get<asset_create_operation>();
|
auto fees_to_pay = fees.get<asset_create_operation>();
|
||||||
|
|
||||||
{
|
{
|
||||||
signed_transaction tx;
|
signed_transaction tx;
|
||||||
asset_create_operation op;
|
asset_create_operation op;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue