Added is_max_vouts check for PW before bitcoin transaction creatation
This commit is contained in:
parent
a229d0acc4
commit
b27656d2c9
6 changed files with 9 additions and 9 deletions
|
|
@ -232,10 +232,10 @@
|
||||||
#define SIDECHAIN_SYMBOL "pBTC"
|
#define SIDECHAIN_SYMBOL "pBTC"
|
||||||
#define SIDECHAIN_PRECISION_DIGITS 8
|
#define SIDECHAIN_PRECISION_DIGITS 8
|
||||||
#define SIDECHAIN_MAX_SHARE_SUPPLY int64_t(21000000ll * 100000000ll)
|
#define SIDECHAIN_MAX_SHARE_SUPPLY int64_t(21000000ll * 100000000ll)
|
||||||
#define SIDECHAIN_NUMBER_INVALID_KEYS 5
|
#define SIDECHAIN_NUMBER_INVALID_KEYS 5
|
||||||
#define SIDECHAIN_DEFAULT_NUMBER_SIG_MULTISIG 5
|
#define SIDECHAIN_DEFAULT_NUMBER_SIG_MULTISIG 5
|
||||||
#define SIDECHAIN_DEFAULT_NUMBER_OF_CONFIRMATIONS 6
|
#define SIDECHAIN_DEFAULT_NUMBER_OF_CONFIRMATIONS 6
|
||||||
#define SIDECHAIN_DEFAULT_MAX_UNCONFIRMED_VINS 25
|
#define SIDECHAIN_DEFAULT_MAX_UNCONFIRMED_VOUTS 25
|
||||||
#define SIDECHAIN_DEFAULT_MAX_CONDENSING_TX_VINS 5
|
#define SIDECHAIN_DEFAULT_MAX_CONDENSING_TX_VINS 5
|
||||||
#define SIDECHAIN_DEFAULT_MAX_CONDENSING_TX_VOUTS 5
|
#define SIDECHAIN_DEFAULT_MAX_CONDENSING_TX_VOUTS 5
|
||||||
#define SIDECHAIN_DEFAULT_PERCENT_PAYMENT_TO_WITNESSES (GRAPHENE_1_PERCENT/10)
|
#define SIDECHAIN_DEFAULT_PERCENT_PAYMENT_TO_WITNESSES (GRAPHENE_1_PERCENT/10)
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ class primary_wallet_vout_manager
|
||||||
public:
|
public:
|
||||||
primary_wallet_vout_manager( graphene::chain::database& _db ) : db( _db ) {}
|
primary_wallet_vout_manager( graphene::chain::database& _db ) : db( _db ) {}
|
||||||
|
|
||||||
bool is_reach_max_unconfirmaed_vout() const;
|
bool is_max_vouts() const;
|
||||||
|
|
||||||
fc::optional< primary_wallet_vout_object > get_latest_unused_vout() const;
|
fc::optional< primary_wallet_vout_object > get_latest_unused_vout() const;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ namespace sidechain {
|
||||||
struct sidechain_parameters_extension {
|
struct sidechain_parameters_extension {
|
||||||
uint8_t maximum_condensing_tx_vins = SIDECHAIN_DEFAULT_MAX_CONDENSING_TX_VINS;
|
uint8_t maximum_condensing_tx_vins = SIDECHAIN_DEFAULT_MAX_CONDENSING_TX_VINS;
|
||||||
uint8_t maximum_condensing_tx_vouts = SIDECHAIN_DEFAULT_MAX_CONDENSING_TX_VOUTS;
|
uint8_t maximum_condensing_tx_vouts = SIDECHAIN_DEFAULT_MAX_CONDENSING_TX_VOUTS;
|
||||||
uint8_t maxmum_unconfirmed_vins = SIDECHAIN_DEFAULT_MAX_UNCONFIRMED_VINS;
|
uint8_t maximum_unconfirmed_vouts = SIDECHAIN_DEFAULT_MAX_UNCONFIRMED_VOUTS;
|
||||||
uint16_t percent_payment_to_witnesses = SIDECHAIN_DEFAULT_PERCENT_PAYMENT_TO_WITNESSES;
|
uint16_t percent_payment_to_witnesses = SIDECHAIN_DEFAULT_PERCENT_PAYMENT_TO_WITNESSES;
|
||||||
uint8_t multisig_sigs_num = SIDECHAIN_DEFAULT_NUMBER_SIG_MULTISIG;
|
uint8_t multisig_sigs_num = SIDECHAIN_DEFAULT_NUMBER_SIG_MULTISIG;
|
||||||
uint8_t confirmations_num = SIDECHAIN_DEFAULT_NUMBER_OF_CONFIRMATIONS;
|
uint8_t confirmations_num = SIDECHAIN_DEFAULT_NUMBER_OF_CONFIRMATIONS;
|
||||||
|
|
@ -21,7 +21,7 @@ namespace sidechain {
|
||||||
FC_REFLECT( sidechain::sidechain_parameters_extension,
|
FC_REFLECT( sidechain::sidechain_parameters_extension,
|
||||||
(maximum_condensing_tx_vins)
|
(maximum_condensing_tx_vins)
|
||||||
(maximum_condensing_tx_vouts)
|
(maximum_condensing_tx_vouts)
|
||||||
(maxmum_unconfirmed_vins)
|
(maximum_unconfirmed_vouts)
|
||||||
(percent_payment_to_witnesses)
|
(percent_payment_to_witnesses)
|
||||||
(multisig_sigs_num)
|
(multisig_sigs_num)
|
||||||
(confirmations_num)
|
(confirmations_num)
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ std::vector<uint64_t> input_withdrawal_info::get_amounts( const std::vector<info
|
||||||
fc::optional<info_for_vin> input_withdrawal_info::get_info_for_pw_vin()
|
fc::optional<info_for_vin> input_withdrawal_info::get_info_for_pw_vin()
|
||||||
{
|
{
|
||||||
fc::optional< primary_wallet_vout_object > vout = db.pw_vout_manager.get_latest_unused_vout();
|
fc::optional< primary_wallet_vout_object > vout = db.pw_vout_manager.get_latest_unused_vout();
|
||||||
if( !vout.valid() ) {
|
if( !vout.valid() || db.pw_vout_manager.is_max_vouts() ) {
|
||||||
return fc::optional<info_for_vin>();
|
return fc::optional<info_for_vin>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,10 @@
|
||||||
|
|
||||||
namespace sidechain {
|
namespace sidechain {
|
||||||
|
|
||||||
bool primary_wallet_vout_manager::is_reach_max_unconfirmaed_vout() const
|
bool primary_wallet_vout_manager::is_max_vouts() const
|
||||||
{
|
{
|
||||||
const auto& PW_vout_idx = db.get_index_type<graphene::chain::primary_wallet_vout_index>().indices().get< graphene::chain::by_id >();
|
const auto& PW_vout_idx = db.get_index_type<graphene::chain::primary_wallet_vout_index>().indices().get< graphene::chain::by_id >();
|
||||||
return !( PW_vout_idx.size() < db.get_sidechain_params().maxmum_unconfirmed_vins );
|
return !( ( PW_vout_idx.size() - 1 ) <= db.get_sidechain_params().maximum_unconfirmed_vouts );
|
||||||
}
|
}
|
||||||
|
|
||||||
fc::optional< primary_wallet_vout_object > primary_wallet_vout_manager::get_latest_unused_vout() const
|
fc::optional< primary_wallet_vout_object > primary_wallet_vout_manager::get_latest_unused_vout() const
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ BOOST_AUTO_TEST_CASE( check_max_pw_vout_objects )
|
||||||
|
|
||||||
create_primary_wallet_vouts( pw_vout_manager, db, 24 );
|
create_primary_wallet_vouts( pw_vout_manager, db, 24 );
|
||||||
BOOST_CHECK( idx.size() == 25 );
|
BOOST_CHECK( idx.size() == 25 );
|
||||||
BOOST_CHECK( pw_vout_manager.is_reach_max_unconfirmaed_vout() == true );
|
BOOST_CHECK( pw_vout_manager.is_max_vouts() == true );
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( check_pw_vout_objects_chain )
|
BOOST_AUTO_TEST_CASE( check_pw_vout_objects_chain )
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue