Do not add expiring soon threshold to expiry height of txs near NU activation

This commit is contained in:
Eirik Ogilvie-Wigley 2019-08-05 11:50:05 -06:00
parent 82c291b6df
commit 9f70b74692
2 changed files with 13 additions and 13 deletions

View File

@ -694,7 +694,7 @@ TEST(checktransaction_tests, OverwinterExpiryHeight) {
TEST(checktransaction_tests, BlossomExpiryHeight) { TEST(checktransaction_tests, BlossomExpiryHeight) {
const Consensus::Params& params = RegtestActivateBlossom(false, 100); const Consensus::Params& params = RegtestActivateBlossom(false, 100);
CMutableTransaction preBlossomMtx = CreateNewContextualCMutableTransaction(params, 99); CMutableTransaction preBlossomMtx = CreateNewContextualCMutableTransaction(params, 99);
EXPECT_EQ(preBlossomMtx.nExpiryHeight, 100 - 1 + TX_EXPIRING_SOON_THRESHOLD); EXPECT_EQ(preBlossomMtx.nExpiryHeight, 100 - 1);
CMutableTransaction blossomMtx = CreateNewContextualCMutableTransaction(params, 100); CMutableTransaction blossomMtx = CreateNewContextualCMutableTransaction(params, 100);
EXPECT_EQ(blossomMtx.nExpiryHeight, 100 + 40); EXPECT_EQ(blossomMtx.nExpiryHeight, 100 + 40);
RegtestDeactivateBlossom(); RegtestDeactivateBlossom();
@ -915,29 +915,29 @@ TEST(checktransaction_tests, OverwinteredContextualCreateTx) {
1, false, 0, 0); 1, false, 0, 0);
// Overwinter activates // Overwinter activates
ContextualCreateTxCheck(params, overwinterActivationHeight, ContextualCreateTxCheck(params, overwinterActivationHeight,
3, true, OVERWINTER_VERSION_GROUP_ID, overwinterActivationHeight + DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA); OVERWINTER_TX_VERSION, true, OVERWINTER_VERSION_GROUP_ID, overwinterActivationHeight + DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA);
// Close to Sapling activation // Close to Sapling activation
ContextualCreateTxCheck(params, saplingActivationHeight - DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA - 2, ContextualCreateTxCheck(params, saplingActivationHeight - DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA - 2,
3, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 2); OVERWINTER_TX_VERSION, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 2);
ContextualCreateTxCheck(params, saplingActivationHeight - DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA - 1, ContextualCreateTxCheck(params, saplingActivationHeight - DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA - 1,
3, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1); OVERWINTER_TX_VERSION, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1);
ContextualCreateTxCheck(params, saplingActivationHeight - DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA, ContextualCreateTxCheck(params, saplingActivationHeight - DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA,
3, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight); OVERWINTER_TX_VERSION, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1);
ContextualCreateTxCheck(params, saplingActivationHeight - DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA + 1, ContextualCreateTxCheck(params, saplingActivationHeight - DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA + 1,
3, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight + 1); OVERWINTER_TX_VERSION, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1);
ContextualCreateTxCheck(params, saplingActivationHeight - DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA + 2, ContextualCreateTxCheck(params, saplingActivationHeight - DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA + 2,
3, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight + 2); OVERWINTER_TX_VERSION, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1);
ContextualCreateTxCheck(params, saplingActivationHeight - DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA + 3, ContextualCreateTxCheck(params, saplingActivationHeight - DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA + 3,
3, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1 + TX_EXPIRING_SOON_THRESHOLD); OVERWINTER_TX_VERSION, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1);
// Just before Sapling activation // Just before Sapling activation
ContextualCreateTxCheck(params, saplingActivationHeight - 4, ContextualCreateTxCheck(params, saplingActivationHeight - 4,
3, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1 + TX_EXPIRING_SOON_THRESHOLD); OVERWINTER_TX_VERSION, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1);
ContextualCreateTxCheck(params, saplingActivationHeight - 3, ContextualCreateTxCheck(params, saplingActivationHeight - 3,
3, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1 + TX_EXPIRING_SOON_THRESHOLD); OVERWINTER_TX_VERSION, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1);
ContextualCreateTxCheck(params, saplingActivationHeight - 2, ContextualCreateTxCheck(params, saplingActivationHeight - 2,
3, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1 + TX_EXPIRING_SOON_THRESHOLD); OVERWINTER_TX_VERSION, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1);
ContextualCreateTxCheck(params, saplingActivationHeight - 1, ContextualCreateTxCheck(params, saplingActivationHeight - 1,
3, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1 + TX_EXPIRING_SOON_THRESHOLD); OVERWINTER_TX_VERSION, true, OVERWINTER_VERSION_GROUP_ID, saplingActivationHeight - 1);
// Sapling activates // Sapling activates
ContextualCreateTxCheck(params, saplingActivationHeight, ContextualCreateTxCheck(params, saplingActivationHeight,
SAPLING_TX_VERSION, true, SAPLING_VERSION_GROUP_ID, saplingActivationHeight + DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA); SAPLING_TX_VERSION, true, SAPLING_VERSION_GROUP_ID, saplingActivationHeight + DEFAULT_PRE_BLOSSOM_TX_EXPIRY_DELTA);

View File

@ -6669,7 +6669,7 @@ CMutableTransaction CreateNewContextualCMutableTransaction(const Consensus::Para
// We need to add TX_EXPIRING_SOON_THRESHOLD otherwise we cannot send transactions just prior to the next epoch // We need to add TX_EXPIRING_SOON_THRESHOLD otherwise we cannot send transactions just prior to the next epoch
// The idea is that the transaction will not be rejected as expiring soon until the same block that it is // The idea is that the transaction will not be rejected as expiring soon until the same block that it is
// The rejected for being created during the last epoch. // The rejected for being created during the last epoch.
mtx.nExpiryHeight = std::min(mtx.nExpiryHeight, static_cast<uint32_t>(nextActivationHeight.get()) - 1 + TX_EXPIRING_SOON_THRESHOLD); mtx.nExpiryHeight = std::min(mtx.nExpiryHeight, static_cast<uint32_t>(nextActivationHeight.get()) - 1);
} }
} }
return mtx; return mtx;