add reward time to BalanceRewards amendment

This commit is contained in:
Richard Holland
2022-12-17 15:09:50 +00:00
parent 4ab2e77d53
commit fef1f53c8b
4 changed files with 16 additions and 2 deletions

View File

@@ -95,6 +95,8 @@ ClaimReward::doApply()
sle->makeFieldAbsent(sfRewardLgrLast);
if (sle->isFieldPresent(sfRewardAccumulator))
sle->makeFieldAbsent(sfRewardAccumulator);
if (sle->isFieldPresent(sfRewardTime))
sle->makeFieldAbsent(sfRewardTime);
}
else
{
@@ -104,6 +106,15 @@ ClaimReward::doApply()
sle->setFieldU32(sfRewardLgrFirst, lgrCur);
sle->setFieldU32(sfRewardLgrLast, lgrCur);
sle->setFieldU64(sfRewardAccumulator, 0ULL);
sle->setFieldU32(sfRewardTime,
std::chrono::duration_cast<std::chrono::seconds>
(
ctx_.app.getLedgerMaster()
.getValidatedLedger()->info()
.parentCloseTime
.time_since_epoch()
).count());
}
view().update(sle);

View File

@@ -401,6 +401,7 @@ extern SF_UINT32 const sfBurnedNFTokens;
extern SF_UINT32 const sfHookStateCount;
extern SF_UINT32 const sfEmitGeneration;
extern SF_UINT32 const sfLockCount;
extern SF_UINT32 const sfRewardTime;
extern SF_UINT32 const sfRewardLgrFirst;
extern SF_UINT32 const sfRewardLgrLast;

View File

@@ -59,6 +59,7 @@ LedgerFormats::LedgerFormats()
{sfHookNamespaces, soeOPTIONAL},
{sfRewardLgrFirst, soeOPTIONAL},
{sfRewardLgrLast, soeOPTIONAL},
{sfRewardTime, soeOPTIONAL},
{sfRewardAccumulator, soeOPTIONAL}
},
commonFields);

View File

@@ -152,8 +152,9 @@ CONSTRUCT_TYPED_SFIELD(sfHookStateCount, "HookStateCount", UINT32,
CONSTRUCT_TYPED_SFIELD(sfEmitGeneration, "EmitGeneration", UINT32, 46);
CONSTRUCT_TYPED_SFIELD(sfLockCount, "LockCount", UINT32, 47);
CONSTRUCT_TYPED_SFIELD(sfRewardLgrFirst, "RewardLgrFirst", UINT32, 99);
CONSTRUCT_TYPED_SFIELD(sfRewardLgrLast, "RewardLgrLast", UINT32, 100);
CONSTRUCT_TYPED_SFIELD(sfRewardTime, "RewardTime", UINT32, 98);
CONSTRUCT_TYPED_SFIELD(sfRewardLgrFirst, "RewardLgrFirst", UINT32, 99);
CONSTRUCT_TYPED_SFIELD(sfRewardLgrLast, "RewardLgrLast", UINT32, 100);
// 64-bit integers (common)
CONSTRUCT_TYPED_SFIELD(sfIndexNext, "IndexNext", UINT64, 1);