mirror of
https://github.com/monero-project/monero.git
synced 2024-12-25 23:49:42 -05:00
Blockchain: get height of RingCT fork programmatically
Get height of the RingCT fork to start the output distributuon programmatically, instead of using a hardcoded index. If using a hardcoded index, when the hardfork tables are modified, this can cause segmentation faults or horrific privacy issues: https://codeberg.org/wownero/wownero/issues/488#issuecomment-2514880.
This commit is contained in:
parent
58a1d54a4f
commit
41c4bc4557
@ -2363,17 +2363,8 @@ void Blockchain::get_output_key_mask_unlocked(const uint64_t& amount, const uint
|
|||||||
bool Blockchain::get_output_distribution(uint64_t amount, uint64_t from_height, uint64_t to_height, uint64_t &start_height, std::vector<uint64_t> &distribution, uint64_t &base) const
|
bool Blockchain::get_output_distribution(uint64_t amount, uint64_t from_height, uint64_t to_height, uint64_t &start_height, std::vector<uint64_t> &distribution, uint64_t &base) const
|
||||||
{
|
{
|
||||||
// rct outputs don't exist before v4
|
// rct outputs don't exist before v4
|
||||||
if (amount == 0)
|
if (amount == 0 && m_nettype != network_type::FAKECHAIN)
|
||||||
{
|
start_height = m_hardfork->get_earliest_ideal_height_for_version(HF_VERSION_DYNAMIC_FEE);
|
||||||
switch (m_nettype)
|
|
||||||
{
|
|
||||||
case STAGENET: start_height = stagenet_hard_forks[3].height; break;
|
|
||||||
case TESTNET: start_height = testnet_hard_forks[3].height; break;
|
|
||||||
case MAINNET: start_height = mainnet_hard_forks[3].height; break;
|
|
||||||
case FAKECHAIN: start_height = 0; break;
|
|
||||||
default: return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
start_height = 0;
|
start_height = 0;
|
||||||
base = 0;
|
base = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user