Skip to content

Commit

Permalink
Replace magic numbers with named constants
Browse files Browse the repository at this point in the history
  • Loading branch information
abitmore committed Jun 30, 2021
1 parent 6484653 commit e8a33cc
Showing 1 changed file with 69 additions and 28 deletions.
97 changes: 69 additions & 28 deletions libraries/protocol/custom_authorities/sliced_lists.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -30,46 +30,87 @@ namespace graphene { namespace protocol {
namespace typelist = fc::typelist;

// To make the build gentler on RAM, break the operation list into several pieces to build over several files
using operation_list_1 = static_variant<typelist::slice<operation::list, 0, 4>>;
using operation_list_2 = static_variant<typelist::slice<operation::list, 5, 7>>;
using operation_list_3 = static_variant<typelist::slice<operation::list, 10, 11>>;
using operation_list_5 = static_variant<typelist::slice<operation::list, 13, 16>>;
using operation_list_6 = static_variant<typelist::slice<operation::list, 19, 22>>;
using operation_list_9 = static_variant<typelist::slice<operation::list, 32, 34>>;
using operation_list_10 = static_variant<typelist::slice<operation::list, 38, 39>>;
using operation_list_1 = static_variant<typelist::builder<>
::add<transfer_operation> // 0
::add<limit_order_create_operation> // 1
::add<limit_order_cancel_operation> // 2
::add<call_order_update_operation> // 3
::finalize>;
using operation_list_2 = static_variant<typelist::builder<>
::add<account_create_operation> // 5
::add<account_update_operation> // 6
::finalize>;
using operation_list_3 = static_variant<typelist::builder<>
::add<asset_create_operation> // 10
::finalize>;
using operation_list_5 = static_variant<typelist::builder<>
::add<asset_update_feed_producers_operation> // 13
::add<asset_issue_operation> // 14
::add<asset_reserve_operation> // 15
::finalize>;
using operation_list_6 = static_variant<typelist::builder<>
::add<asset_publish_feed_operation> // 19
::add<witness_update_operation> // 21
::finalize>;
using operation_list_9 = static_variant<typelist::builder<>
::add<vesting_balance_create_operation> // 32
::add<vesting_balance_withdraw_operation> // 33
::finalize>;
using operation_list_10 = static_variant<typelist::builder<>
::add<override_transfer_operation> // 38
::finalize>;
using operation_list_11 = static_variant<typelist::builder<>
::add_list<typelist::slice<operation::list, 49, 51>>
::add<htlc_extend_operation> // 52
::add<htlc_create_operation> // 49
::add<htlc_redeem_operation> // 50
::add<htlc_extend_operation> // 52
::finalize>;
// Note: Since BSIP-40 is not to be enabled on the BitShares Mainnet any time soon,
// by now, the list of supported operations ends here.
// These operations are used in unit tests.
// As of writing, transfer_operation and limit_order_create_operation appeared on the public testnet
// between block #31808000 and #31811000.
// Other operations are added to the unsupported_operations_list with a comment "Unsupported".
// The operations in the unsupported_operations_list without the comment are virtual operations or
// The operations in the unsupported_operations_list with other comments are virtual operations or
// unimplemented, so should be kept there anyway.
// This is to reduce the compilation time and the size of binaries.
// TODO support more operations when we decide to continue BSIP-40 development.
using unsupported_operations_list = static_variant<typelist::builder<>
::add<fill_order_operation> // 4
::add_list<typelist::slice<operation::list, 7, 9>> // Unsupported
::add<account_transfer_operation> // 9
::add_list<typelist::slice<operation::list, 11, 13>> // Unsupported
::add_list<typelist::slice<operation::list, 16, 19>> // Unsupported
::add_list<typelist::slice<operation::list, 22, 32>> // Unsupported
::add_list<typelist::slice<operation::list, 34, 38>> // Unsupported
::add_list<typelist::slice<operation::list, 39, 42>> // Unsupported
::add<asset_settle_cancel_operation> // 42
::add_list<typelist::slice<operation::list, 43, 44>> // Unsupported
::add<fba_distribute_operation> // 44
::add_list<typelist::slice<operation::list, 45, 46>> // Unsupported
::add<execute_bid_operation> // 46
::add_list<typelist::slice<operation::list, 47, 49>> // Unsupported
::add<htlc_redeemed_operation> // 51
::add<htlc_refund_operation> // 53
// New operations are added here
::add_list<typelist::slice<operation::list, 54>> // Unsupported
::add<fill_order_operation> // 4 // VIRTUAL
::add<account_whitelist_operation> // 7 // Unsupported
::add<account_upgrade_operation> // 8 // Unsupported
::add<account_transfer_operation> // 9 // Unimplemented
::add<asset_update_operation> // 11 // Unsupported
::add<asset_update_bitasset_operation> // 12 // Unsupported
::add<asset_fund_fee_pool_operation> // 16 // Unsupported
::add<asset_settle_operation> // 17 // Unsupported
::add<asset_global_settle_operation> // 18 // Unsupported
::add<witness_create_operation> // 20 // Unsupported
// [22, 32) // Unsupported
::add_list<typelist::slice<operation::list,
typelist::index_of< operation::list,
proposal_create_operation>() >,
typelist::index_of< operation::list,
vesting_balance_create_operation>() >>>
::add<worker_create_operation> // 34 // Unsupported
::add<custom_operation> // 35 // Unsupported
::add<assert_operation> // 36 // Unsupported
::add<balance_claim_operation> // 37 // Unsupported
::add<transfer_to_blind_operation> // 39 // Unsupported
::add<blind_transfer_operation> // 40 // Unsupported
::add<transfer_from_blind_operation> // 41 // Unsupported
::add<asset_settle_cancel_operation> // 42 // VIRTUAL
::add<asset_claim_fees_operation> // 43 // Unsupported
::add<fba_distribute_operation> // 44 // VIRTUAL
::add<bid_collateral_operation> // 45 // Unsupported
::add<execute_bid_operation> // 46 // VIRTUAL
::add<asset_claim_pool_operation> // 47 // Unsupported
::add<asset_update_issuer_operation> // 48 // Unsupported
::add<htlc_redeemed_operation> // 51 // VIRTUAL
::add<htlc_refund_operation> // 53 // VIRTUAL
// New operations are added here // Unsupported
::add_list<typelist::slice<operation::list,
typelist::index_of< operation::list,
custom_authority_create_operation>() >>>
::finalize>;

object_restriction_predicate<operation> get_restriction_pred_list_1(size_t idx, vector<restriction> rs);
Expand Down

0 comments on commit e8a33cc

Please sign in to comment.