change fork settings to allow pre-rct txes for one more fork cycle
This commit is contained in:
parent
cc85cc6a3f
commit
37bdf6ebe3
|
@ -2285,7 +2285,7 @@ bool Blockchain::check_tx_inputs(const transaction& tx, tx_verification_context
|
||||||
}
|
}
|
||||||
|
|
||||||
// for v3, we force txes with all mixable inputs to be rct
|
// for v3, we force txes with all mixable inputs to be rct
|
||||||
if (m_hardfork->get_current_version() >= 3)
|
if (m_hardfork->get_current_version() >= 4)
|
||||||
{
|
{
|
||||||
if (n_unmixable == 0 && tx.version == 1)
|
if (n_unmixable == 0 && tx.version == 1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -85,10 +85,15 @@ namespace cryptonote
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const size_t max_tx_version = version == 1 ? 1 : 2;
|
const size_t max_tx_version = (version <= 3) ? 1 : 2;
|
||||||
if (tx.version > max_tx_version)
|
if (tx.version > max_tx_version)
|
||||||
{
|
{
|
||||||
// v2 is the latest one we know
|
tvc.m_verifivation_failed = true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const size_t min_tx_version = (version >= 5) ? 2 : 1;
|
||||||
|
if (tx.version < min_tx_version)
|
||||||
|
{
|
||||||
tvc.m_verifivation_failed = true;
|
tvc.m_verifivation_failed = true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3254,7 +3254,7 @@ std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryp
|
||||||
bool adding_fee; // true if new outputs go towards fee, rather than destinations
|
bool adding_fee; // true if new outputs go towards fee, rather than destinations
|
||||||
uint64_t needed_fee, available_for_fee = 0;
|
uint64_t needed_fee, available_for_fee = 0;
|
||||||
uint64_t upper_transaction_size_limit = get_upper_tranaction_size_limit();
|
uint64_t upper_transaction_size_limit = get_upper_tranaction_size_limit();
|
||||||
const bool use_rct = use_fork_rules(3);
|
const bool use_rct = use_fork_rules(4);
|
||||||
|
|
||||||
fee_multiplier = sanitize_fee_multiplier(fee_multiplier);
|
fee_multiplier = sanitize_fee_multiplier(fee_multiplier);
|
||||||
|
|
||||||
|
@ -3503,7 +3503,7 @@ std::vector<wallet2::pending_tx> wallet2::create_transactions_all(const cryptono
|
||||||
std::vector<TX> txes;
|
std::vector<TX> txes;
|
||||||
uint64_t needed_fee, available_for_fee = 0;
|
uint64_t needed_fee, available_for_fee = 0;
|
||||||
uint64_t upper_transaction_size_limit = get_upper_tranaction_size_limit();
|
uint64_t upper_transaction_size_limit = get_upper_tranaction_size_limit();
|
||||||
const bool use_rct = use_fork_rules(3);
|
const bool use_rct = use_fork_rules(4);
|
||||||
|
|
||||||
// gather all our dust and non dust outputs
|
// gather all our dust and non dust outputs
|
||||||
for (size_t i = 0; i < m_transfers.size(); ++i)
|
for (size_t i = 0; i < m_transfers.size(); ++i)
|
||||||
|
|
|
@ -57,8 +57,8 @@ bool gen_rct_tx_validation_base::generate_with(std::vector<test_event_entry>& ev
|
||||||
miner_accounts[n].generate();
|
miner_accounts[n].generate();
|
||||||
CHECK_AND_ASSERT_MES(generator.construct_block_manually(blocks[n], *prev_block, miner_accounts[n],
|
CHECK_AND_ASSERT_MES(generator.construct_block_manually(blocks[n], *prev_block, miner_accounts[n],
|
||||||
test_generator::bf_major_ver | test_generator::bf_minor_ver | test_generator::bf_timestamp | test_generator::bf_hf_version,
|
test_generator::bf_major_ver | test_generator::bf_minor_ver | test_generator::bf_timestamp | test_generator::bf_hf_version,
|
||||||
3, 3, prev_block->timestamp + DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN * 2, // v2 has blocks twice as long
|
4, 4, prev_block->timestamp + DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN * 2, // v2 has blocks twice as long
|
||||||
crypto::hash(), 0, transaction(), std::vector<crypto::hash>(), 0, 0, 3),
|
crypto::hash(), 0, transaction(), std::vector<crypto::hash>(), 0, 0, 4),
|
||||||
false, "Failed to generate block");
|
false, "Failed to generate block");
|
||||||
events.push_back(blocks[n]);
|
events.push_back(blocks[n]);
|
||||||
prev_block = blocks + n;
|
prev_block = blocks + n;
|
||||||
|
@ -74,8 +74,8 @@ bool gen_rct_tx_validation_base::generate_with(std::vector<test_event_entry>& ev
|
||||||
cryptonote::block blk;
|
cryptonote::block blk;
|
||||||
CHECK_AND_ASSERT_MES(generator.construct_block_manually(blk, blk_last, miner_account,
|
CHECK_AND_ASSERT_MES(generator.construct_block_manually(blk, blk_last, miner_account,
|
||||||
test_generator::bf_major_ver | test_generator::bf_minor_ver | test_generator::bf_timestamp | test_generator::bf_hf_version,
|
test_generator::bf_major_ver | test_generator::bf_minor_ver | test_generator::bf_timestamp | test_generator::bf_hf_version,
|
||||||
3, 3, blk_last.timestamp + DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN * 2, // v2 has blocks twice as long
|
4, 4, blk_last.timestamp + DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN * 2, // v2 has blocks twice as long
|
||||||
crypto::hash(), 0, transaction(), std::vector<crypto::hash>(), 0, 0, 3),
|
crypto::hash(), 0, transaction(), std::vector<crypto::hash>(), 0, 0, 4),
|
||||||
false, "Failed to generate block");
|
false, "Failed to generate block");
|
||||||
events.push_back(blk);
|
events.push_back(blk);
|
||||||
blk_last = blk;
|
blk_last = blk;
|
||||||
|
@ -134,8 +134,8 @@ bool gen_rct_tx_validation_base::generate_with(std::vector<test_event_entry>& ev
|
||||||
|
|
||||||
CHECK_AND_ASSERT_MES(generator.construct_block_manually(blk_txes[n], blk_last, miner_account,
|
CHECK_AND_ASSERT_MES(generator.construct_block_manually(blk_txes[n], blk_last, miner_account,
|
||||||
test_generator::bf_major_ver | test_generator::bf_minor_ver | test_generator::bf_timestamp | test_generator::bf_tx_hashes | test_generator::bf_hf_version,
|
test_generator::bf_major_ver | test_generator::bf_minor_ver | test_generator::bf_timestamp | test_generator::bf_tx_hashes | test_generator::bf_hf_version,
|
||||||
3, 3, blk_last.timestamp + DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN * 2, // v2 has blocks twice as long
|
4, 4, blk_last.timestamp + DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN * 2, // v2 has blocks twice as long
|
||||||
crypto::hash(), 0, transaction(), starting_rct_tx_hashes, 0, 0, 3),
|
crypto::hash(), 0, transaction(), starting_rct_tx_hashes, 0, 0, 4),
|
||||||
false, "Failed to generate block");
|
false, "Failed to generate block");
|
||||||
events.push_back(blk_txes[n]);
|
events.push_back(blk_txes[n]);
|
||||||
blk_last = blk_txes[n];
|
blk_last = blk_txes[n];
|
||||||
|
@ -148,8 +148,8 @@ bool gen_rct_tx_validation_base::generate_with(std::vector<test_event_entry>& ev
|
||||||
cryptonote::block blk;
|
cryptonote::block blk;
|
||||||
CHECK_AND_ASSERT_MES(generator.construct_block_manually(blk, blk_last, miner_account,
|
CHECK_AND_ASSERT_MES(generator.construct_block_manually(blk, blk_last, miner_account,
|
||||||
test_generator::bf_major_ver | test_generator::bf_minor_ver | test_generator::bf_timestamp | test_generator::bf_hf_version,
|
test_generator::bf_major_ver | test_generator::bf_minor_ver | test_generator::bf_timestamp | test_generator::bf_hf_version,
|
||||||
3, 3, blk_last.timestamp + DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN * 2, // v2 has blocks twice as long
|
4, 4, blk_last.timestamp + DIFFICULTY_BLOCKS_ESTIMATE_TIMESPAN * 2, // v2 has blocks twice as long
|
||||||
crypto::hash(), 0, transaction(), std::vector<crypto::hash>(), 0, 0, 3),
|
crypto::hash(), 0, transaction(), std::vector<crypto::hash>(), 0, 0, 4),
|
||||||
false, "Failed to generate block");
|
false, "Failed to generate block");
|
||||||
events.push_back(blk);
|
events.push_back(blk);
|
||||||
blk_last = blk;
|
blk_last = blk;
|
||||||
|
|
|
@ -81,7 +81,7 @@ private:
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct get_test_options<gen_rct_tx_validation_base> {
|
struct get_test_options<gen_rct_tx_validation_base> {
|
||||||
const std::pair<uint8_t, uint64_t> hard_forks[2] = {std::make_pair(1, 0), std::make_pair(3, 1)};
|
const std::pair<uint8_t, uint64_t> hard_forks[2] = {std::make_pair(1, 0), std::make_pair(4, 1)};
|
||||||
const cryptonote::test_options test_options = {
|
const cryptonote::test_options test_options = {
|
||||||
hard_forks
|
hard_forks
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue