From 3792ee08ad035417d9efa31f72b2fff52f376373 Mon Sep 17 00:00:00 2001 From: Michael Tinker Date: Fri, 15 Dec 2023 22:44:32 -0600 Subject: [PATCH] Put EOP memo on record not synth txn Signed-off-by: Michael Tinker --- .../staking/EndOfStakingPeriodUpdater.java | 27 ++++++++++--------- .../FakeNodeStakeUpdateRecordBuilder.java | 8 ++++++ .../records/NodeStakeUpdateRecordBuilder.java | 9 +++++++ 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/staking/EndOfStakingPeriodUpdater.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/staking/EndOfStakingPeriodUpdater.java index 8ef5257e5016..dac248226317 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/staking/EndOfStakingPeriodUpdater.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/staking/EndOfStakingPeriodUpdater.java @@ -225,25 +225,26 @@ public void updateNodes(@NonNull final TokenContext context) { final long reservedStakingRewards = stakingRewardsStore.pendingRewards(); final long unreservedStakingRewardBalance = rewardAccountBalance - reservedStakingRewards; final var syntheticNodeStakeUpdateTxn = newNodeStakeUpdateBuilder( - lastInstantOfPreviousPeriodFor(consensusTime), - finalNodeStakes, - stakingConfig, - totalStakedRewardStart, - perHbarRate, - reservedStakingRewards, - unreservedStakingRewardBalance, - stakingConfig.rewardBalanceThreshold(), - stakingConfig.maxStakeRewarded()) - .memo("End of staking period calculation record"); + lastInstantOfPreviousPeriodFor(consensusTime), + finalNodeStakes, + stakingConfig, + totalStakedRewardStart, + perHbarRate, + reservedStakingRewards, + unreservedStakingRewardBalance, + stakingConfig.rewardBalanceThreshold(), + stakingConfig.maxStakeRewarded()); log.info("Exporting:\n{}", finalNodeStakes); // We don't want to fail adding the preceding child record for the node stake update that happens every // midnight. So, we add the preceding child record builder as unchecked, that doesn't fail with // MAX_CHILD_RECORDS_EXCEEDED final var nodeStakeUpdateBuilder = context.addUncheckedPrecedingChildRecordBuilder(NodeStakeUpdateRecordBuilder.class); - nodeStakeUpdateBuilder.transaction(Transaction.newBuilder() - .body(syntheticNodeStakeUpdateTxn.build()) - .build()); + nodeStakeUpdateBuilder + .transaction(Transaction.newBuilder() + .body(syntheticNodeStakeUpdateTxn.build()) + .build()) + .memo("End of staking period calculation record"); } /** diff --git a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/fixtures/FakeNodeStakeUpdateRecordBuilder.java b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/fixtures/FakeNodeStakeUpdateRecordBuilder.java index b955c895d3ae..2a3d78f1d067 100644 --- a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/fixtures/FakeNodeStakeUpdateRecordBuilder.java +++ b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/fixtures/FakeNodeStakeUpdateRecordBuilder.java @@ -24,6 +24,7 @@ public class FakeNodeStakeUpdateRecordBuilder { public NodeStakeUpdateRecordBuilder create() { return new NodeStakeUpdateRecordBuilder() { + private String memo; private Transaction txn; @NotNull @@ -32,6 +33,13 @@ public NodeStakeUpdateRecordBuilder transaction(@NotNull final Transaction txn) this.txn = txn; return this; } + + @NotNull + @Override + public NodeStakeUpdateRecordBuilder memo(@NotNull String memo) { + this.memo = memo; + return this; + } }; } } diff --git a/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/NodeStakeUpdateRecordBuilder.java b/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/NodeStakeUpdateRecordBuilder.java index f2731cb45868..15f1dfdeafd6 100644 --- a/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/NodeStakeUpdateRecordBuilder.java +++ b/hedera-node/hedera-token-service/src/main/java/com/hedera/node/app/service/token/records/NodeStakeUpdateRecordBuilder.java @@ -31,4 +31,13 @@ public interface NodeStakeUpdateRecordBuilder { */ @NonNull NodeStakeUpdateRecordBuilder transaction(@NonNull final Transaction transaction); + + /** + * Sets the record's memo. + * + * @param memo the memo + * @return the builder + */ + @NonNull + NodeStakeUpdateRecordBuilder memo(@NonNull final String memo); }