From 119b6910ee4fd380c767921fe503f17070061d7e Mon Sep 17 00:00:00 2001 From: Chanhyuck Ko Date: Thu, 4 Apr 2024 13:53:15 +0900 Subject: [PATCH] refator: refactor dpos actions --- .../Action/DPoS/Control/RedelegateCtrlTest.cs | 1 + .../DPoS/{Sys => }/CancelUndelegation.cs | 3 ++- Lib9c/Action/DPoS/Control/Bond.cs | 1 + Lib9c/Action/DPoS/Control/DelegateCtrl.cs | 1 + Lib9c/Action/DPoS/Control/RedelegateCtrl.cs | 1 + Lib9c/Action/DPoS/Control/UnbondingSetCtrl.cs | 1 + Lib9c/Action/DPoS/Control/UndelegateCtrl.cs | 1 + Lib9c/Action/DPoS/Control/ValidatorCtrl.cs | 1 + .../DPoS/Control/ValidatorDelegationSetCtrl.cs | 2 ++ .../DPoS/Control/ValidatorPowerIndexCtrl.cs | 1 + .../DPoS/Control/ValidatorRewardsCtrl.cs | 2 ++ Lib9c/Action/DPoS/Control/ValidatorSetCtrl.cs | 1 + Lib9c/Action/DPoS/{Sys => }/Delegate.cs | 2 +- .../Action/DPoS/{Sys => }/PromoteValidator.cs | 2 +- Lib9c/Action/DPoS/{Sys => }/Redelegate.cs | 2 +- .../AllocateReward.cs} | 18 +++++++----------- .../UpdateValidators.cs} | 15 ++++++--------- Lib9c/Action/DPoS/{Sys => }/Undelegate.cs | 2 +- Lib9c/Action/DPoS/{ => Util}/DPoSModule.cs | 2 +- .../Action/DPoS/{Sys => }/WithdrawDelegator.cs | 2 +- .../Action/DPoS/{Sys => }/WithdrawValidator.cs | 2 +- 21 files changed, 35 insertions(+), 28 deletions(-) rename Lib9c/Action/DPoS/{Sys => }/CancelUndelegation.cs (97%) rename Lib9c/Action/DPoS/{Sys => }/Delegate.cs (98%) rename Lib9c/Action/DPoS/{Sys => }/PromoteValidator.cs (98%) rename Lib9c/Action/DPoS/{Sys => }/Redelegate.cs (98%) rename Lib9c/Action/DPoS/{DPoSBeginBlockAction.cs => Sys/AllocateReward.cs} (71%) rename Lib9c/Action/DPoS/{DPoSEndBlockAction.cs => Sys/UpdateValidators.cs} (77%) rename Lib9c/Action/DPoS/{Sys => }/Undelegate.cs (98%) rename Lib9c/Action/DPoS/{ => Util}/DPoSModule.cs (95%) rename Lib9c/Action/DPoS/{Sys => }/WithdrawDelegator.cs (98%) rename Lib9c/Action/DPoS/{Sys => }/WithdrawValidator.cs (98%) diff --git a/.Lib9c.Tests/Action/DPoS/Control/RedelegateCtrlTest.cs b/.Lib9c.Tests/Action/DPoS/Control/RedelegateCtrlTest.cs index a8c5fa2aa1..82f8e33fa5 100644 --- a/.Lib9c.Tests/Action/DPoS/Control/RedelegateCtrlTest.cs +++ b/.Lib9c.Tests/Action/DPoS/Control/RedelegateCtrlTest.cs @@ -9,6 +9,7 @@ namespace Lib9c.Tests.Action.DPoS.Control using Nekoyume.Action.DPoS.Exception; using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Model; + using Nekoyume.Action.DPoS.Util; using Nekoyume.Module; using Xunit; diff --git a/Lib9c/Action/DPoS/Sys/CancelUndelegation.cs b/Lib9c/Action/DPoS/CancelUndelegation.cs similarity index 97% rename from Lib9c/Action/DPoS/Sys/CancelUndelegation.cs rename to Lib9c/Action/DPoS/CancelUndelegation.cs index b174a8f8d8..b50a380097 100644 --- a/Lib9c/Action/DPoS/Sys/CancelUndelegation.cs +++ b/Lib9c/Action/DPoS/CancelUndelegation.cs @@ -7,9 +7,10 @@ using Nekoyume.Action.DPoS.Control; using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Model; +using Nekoyume.Action.DPoS.Sys; using Nekoyume.Action.DPoS.Util; -namespace Nekoyume.Action.DPoS.Sys +namespace Nekoyume.Action.DPoS { /// /// A system action for DPoS that cancel specified diff --git a/Lib9c/Action/DPoS/Control/Bond.cs b/Lib9c/Action/DPoS/Control/Bond.cs index 896094ac3f..e1e535ad52 100644 --- a/Lib9c/Action/DPoS/Control/Bond.cs +++ b/Lib9c/Action/DPoS/Control/Bond.cs @@ -6,6 +6,7 @@ using Nekoyume.Action.DPoS.Exception; using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Model; +using Nekoyume.Action.DPoS.Util; using Nekoyume.Module; namespace Nekoyume.Action.DPoS.Control diff --git a/Lib9c/Action/DPoS/Control/DelegateCtrl.cs b/Lib9c/Action/DPoS/Control/DelegateCtrl.cs index 7f118f4bc5..10ece08084 100644 --- a/Lib9c/Action/DPoS/Control/DelegateCtrl.cs +++ b/Lib9c/Action/DPoS/Control/DelegateCtrl.cs @@ -7,6 +7,7 @@ using Nekoyume.Action.DPoS.Exception; using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Model; +using Nekoyume.Action.DPoS.Util; using Nekoyume.Module; namespace Nekoyume.Action.DPoS.Control diff --git a/Lib9c/Action/DPoS/Control/RedelegateCtrl.cs b/Lib9c/Action/DPoS/Control/RedelegateCtrl.cs index e52a91791b..44a5ae58e2 100644 --- a/Lib9c/Action/DPoS/Control/RedelegateCtrl.cs +++ b/Lib9c/Action/DPoS/Control/RedelegateCtrl.cs @@ -9,6 +9,7 @@ using Nekoyume.Action.DPoS.Exception; using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Model; +using Nekoyume.Action.DPoS.Util; using Nekoyume.Module; namespace Nekoyume.Action.DPoS.Control diff --git a/Lib9c/Action/DPoS/Control/UnbondingSetCtrl.cs b/Lib9c/Action/DPoS/Control/UnbondingSetCtrl.cs index e372052f74..37b01f1c0a 100644 --- a/Lib9c/Action/DPoS/Control/UnbondingSetCtrl.cs +++ b/Lib9c/Action/DPoS/Control/UnbondingSetCtrl.cs @@ -4,6 +4,7 @@ using Libplanet.Crypto; using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Model; +using Nekoyume.Action.DPoS.Util; namespace Nekoyume.Action.DPoS.Control { diff --git a/Lib9c/Action/DPoS/Control/UndelegateCtrl.cs b/Lib9c/Action/DPoS/Control/UndelegateCtrl.cs index 553f2d492e..bc0a68979f 100644 --- a/Lib9c/Action/DPoS/Control/UndelegateCtrl.cs +++ b/Lib9c/Action/DPoS/Control/UndelegateCtrl.cs @@ -9,6 +9,7 @@ using Nekoyume.Action.DPoS.Exception; using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Model; +using Nekoyume.Action.DPoS.Util; using Nekoyume.Module; namespace Nekoyume.Action.DPoS.Control diff --git a/Lib9c/Action/DPoS/Control/ValidatorCtrl.cs b/Lib9c/Action/DPoS/Control/ValidatorCtrl.cs index 1c418c17db..be6dd22733 100644 --- a/Lib9c/Action/DPoS/Control/ValidatorCtrl.cs +++ b/Lib9c/Action/DPoS/Control/ValidatorCtrl.cs @@ -7,6 +7,7 @@ using Nekoyume.Action.DPoS.Exception; using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Model; +using Nekoyume.Action.DPoS.Util; using Nekoyume.Module; namespace Nekoyume.Action.DPoS.Control diff --git a/Lib9c/Action/DPoS/Control/ValidatorDelegationSetCtrl.cs b/Lib9c/Action/DPoS/Control/ValidatorDelegationSetCtrl.cs index 888b999dd3..412a83574f 100644 --- a/Lib9c/Action/DPoS/Control/ValidatorDelegationSetCtrl.cs +++ b/Lib9c/Action/DPoS/Control/ValidatorDelegationSetCtrl.cs @@ -1,7 +1,9 @@ #nullable enable using Libplanet.Action.State; using Libplanet.Crypto; +using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Model; +using Nekoyume.Action.DPoS.Util; namespace Nekoyume.Action.DPoS.Control { diff --git a/Lib9c/Action/DPoS/Control/ValidatorPowerIndexCtrl.cs b/Lib9c/Action/DPoS/Control/ValidatorPowerIndexCtrl.cs index 5788736bc0..d78e669309 100644 --- a/Lib9c/Action/DPoS/Control/ValidatorPowerIndexCtrl.cs +++ b/Lib9c/Action/DPoS/Control/ValidatorPowerIndexCtrl.cs @@ -6,6 +6,7 @@ using Nekoyume.Action.DPoS.Exception; using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Model; +using Nekoyume.Action.DPoS.Util; using Nekoyume.Module; namespace Nekoyume.Action.DPoS.Control diff --git a/Lib9c/Action/DPoS/Control/ValidatorRewardsCtrl.cs b/Lib9c/Action/DPoS/Control/ValidatorRewardsCtrl.cs index a9bc7c14ab..e85187f8e9 100644 --- a/Lib9c/Action/DPoS/Control/ValidatorRewardsCtrl.cs +++ b/Lib9c/Action/DPoS/Control/ValidatorRewardsCtrl.cs @@ -4,7 +4,9 @@ using Libplanet.Action.State; using Libplanet.Crypto; using Libplanet.Types.Assets; +using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Model; +using Nekoyume.Action.DPoS.Util; namespace Nekoyume.Action.DPoS.Control { diff --git a/Lib9c/Action/DPoS/Control/ValidatorSetCtrl.cs b/Lib9c/Action/DPoS/Control/ValidatorSetCtrl.cs index 3440bf5f6d..1a7f3f63f3 100644 --- a/Lib9c/Action/DPoS/Control/ValidatorSetCtrl.cs +++ b/Lib9c/Action/DPoS/Control/ValidatorSetCtrl.cs @@ -6,6 +6,7 @@ using Nekoyume.Action.DPoS.Exception; using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Model; +using Nekoyume.Action.DPoS.Util; using Nekoyume.Module; namespace Nekoyume.Action.DPoS.Control diff --git a/Lib9c/Action/DPoS/Sys/Delegate.cs b/Lib9c/Action/DPoS/Delegate.cs similarity index 98% rename from Lib9c/Action/DPoS/Sys/Delegate.cs rename to Lib9c/Action/DPoS/Delegate.cs index 2cffc1a716..743e18b048 100644 --- a/Lib9c/Action/DPoS/Sys/Delegate.cs +++ b/Lib9c/Action/DPoS/Delegate.cs @@ -8,7 +8,7 @@ using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Util; -namespace Nekoyume.Action.DPoS.Sys +namespace Nekoyume.Action.DPoS { /// /// A system action for DPoS that specified diff --git a/Lib9c/Action/DPoS/Sys/PromoteValidator.cs b/Lib9c/Action/DPoS/PromoteValidator.cs similarity index 98% rename from Lib9c/Action/DPoS/Sys/PromoteValidator.cs rename to Lib9c/Action/DPoS/PromoteValidator.cs index 90e00121ca..b49a315add 100644 --- a/Lib9c/Action/DPoS/Sys/PromoteValidator.cs +++ b/Lib9c/Action/DPoS/PromoteValidator.cs @@ -9,7 +9,7 @@ using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Util; -namespace Nekoyume.Action.DPoS.Sys +namespace Nekoyume.Action.DPoS { /// /// A system action for DPoS that promotes non-validator node to a validator. diff --git a/Lib9c/Action/DPoS/Sys/Redelegate.cs b/Lib9c/Action/DPoS/Redelegate.cs similarity index 98% rename from Lib9c/Action/DPoS/Sys/Redelegate.cs rename to Lib9c/Action/DPoS/Redelegate.cs index b05fa65bb3..2973d13844 100644 --- a/Lib9c/Action/DPoS/Sys/Redelegate.cs +++ b/Lib9c/Action/DPoS/Redelegate.cs @@ -8,7 +8,7 @@ using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Util; -namespace Nekoyume.Action.DPoS.Sys +namespace Nekoyume.Action.DPoS { /// /// A system action for DPoS that specified diff --git a/Lib9c/Action/DPoS/DPoSBeginBlockAction.cs b/Lib9c/Action/DPoS/Sys/AllocateReward.cs similarity index 71% rename from Lib9c/Action/DPoS/DPoSBeginBlockAction.cs rename to Lib9c/Action/DPoS/Sys/AllocateReward.cs index f353c4436e..ea9cd189f9 100644 --- a/Lib9c/Action/DPoS/DPoSBeginBlockAction.cs +++ b/Lib9c/Action/DPoS/Sys/AllocateReward.cs @@ -2,22 +2,20 @@ using Bencodex.Types; using Libplanet.Action; using Libplanet.Action.State; -using Nekoyume.Action.DPoS.Control; using Nekoyume.Action.DPoS.Misc; -using Nekoyume.Action.DPoS.Model; -using Nekoyume.Module; -namespace Nekoyume.Action.DPoS +namespace Nekoyume.Action.DPoS.Sys { /// - /// A BeginBlock action for DPoS that updates . + /// An action for allocate reward to validators and delegators in previous block. + /// Should be executed at the beginning of the block. /// - public sealed class DPoSBeginBlockAction : ActionBase + public sealed class AllocateReward : ActionBase { /// - /// Creates a new instance of . + /// Creates a new instance of . /// - public DPoSBeginBlockAction() + public AllocateReward() { } @@ -34,11 +32,9 @@ public override void LoadPlainValue(IValue plainValue) public override IWorld Execute(IActionContext context) { var states = context.PreviousState; - - // Allocate reward var nativeTokens = ImmutableHashSet.Create( Asset.GovernanceToken, Asset.ConsensusToken, Asset.Share); - states = AllocateReward.Execute( + states = Control.AllocateReward.Execute( states, context, nativeTokens, diff --git a/Lib9c/Action/DPoS/DPoSEndBlockAction.cs b/Lib9c/Action/DPoS/Sys/UpdateValidators.cs similarity index 77% rename from Lib9c/Action/DPoS/DPoSEndBlockAction.cs rename to Lib9c/Action/DPoS/Sys/UpdateValidators.cs index a0179f7e5f..353088c360 100644 --- a/Lib9c/Action/DPoS/DPoSEndBlockAction.cs +++ b/Lib9c/Action/DPoS/Sys/UpdateValidators.cs @@ -1,23 +1,22 @@ -using System.Collections.Immutable; using Bencodex.Types; using Libplanet.Action; using Libplanet.Action.State; using Nekoyume.Action.DPoS.Control; -using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Model; using Nekoyume.Module; -namespace Nekoyume.Action.DPoS +namespace Nekoyume.Action.DPoS.Sys { /// - /// A EndBlock action for DPoS that updates . + /// An action for update validators. + /// Should be executed at the end of the block. /// - public sealed class DPoSEndBlockAction : ActionBase + public sealed class UpdateValidators : ActionBase { /// - /// Creates a new instance of . + /// Creates a new instance of . /// - public DPoSEndBlockAction() + public UpdateValidators() { } @@ -34,8 +33,6 @@ public override void LoadPlainValue(IValue plainValue) public override IWorld Execute(IActionContext context) { var states = context.PreviousState; - - // Update ValidatorSet states = ValidatorSetCtrl.Update(states, context); ValidatorSet bondedSet; (states, bondedSet) = ValidatorSetCtrl.FetchBondedValidatorSet(states); diff --git a/Lib9c/Action/DPoS/Sys/Undelegate.cs b/Lib9c/Action/DPoS/Undelegate.cs similarity index 98% rename from Lib9c/Action/DPoS/Sys/Undelegate.cs rename to Lib9c/Action/DPoS/Undelegate.cs index 1fca561795..27882dd450 100644 --- a/Lib9c/Action/DPoS/Sys/Undelegate.cs +++ b/Lib9c/Action/DPoS/Undelegate.cs @@ -8,7 +8,7 @@ using Nekoyume.Action.DPoS.Misc; using Nekoyume.Action.DPoS.Util; -namespace Nekoyume.Action.DPoS.Sys +namespace Nekoyume.Action.DPoS { /// /// A system action for DPoS that cancels specified diff --git a/Lib9c/Action/DPoS/DPoSModule.cs b/Lib9c/Action/DPoS/Util/DPoSModule.cs similarity index 95% rename from Lib9c/Action/DPoS/DPoSModule.cs rename to Lib9c/Action/DPoS/Util/DPoSModule.cs index 0cdbb214e1..37b1574720 100644 --- a/Lib9c/Action/DPoS/DPoSModule.cs +++ b/Lib9c/Action/DPoS/Util/DPoSModule.cs @@ -4,7 +4,7 @@ using Libplanet.Crypto; using Nekoyume.Action.DPoS.Misc; -namespace Nekoyume.Action.DPoS +namespace Nekoyume.Action.DPoS.Util { public static class DPoSModule { diff --git a/Lib9c/Action/DPoS/Sys/WithdrawDelegator.cs b/Lib9c/Action/DPoS/WithdrawDelegator.cs similarity index 98% rename from Lib9c/Action/DPoS/Sys/WithdrawDelegator.cs rename to Lib9c/Action/DPoS/WithdrawDelegator.cs index e1cd9b6feb..1aab095ec7 100644 --- a/Lib9c/Action/DPoS/Sys/WithdrawDelegator.cs +++ b/Lib9c/Action/DPoS/WithdrawDelegator.cs @@ -10,7 +10,7 @@ using Nekoyume.Action.DPoS.Util; using Nekoyume.Module; -namespace Nekoyume.Action.DPoS.Sys +namespace Nekoyume.Action.DPoS { /// /// A system action for DPoS that withdraws reward tokens from given . diff --git a/Lib9c/Action/DPoS/Sys/WithdrawValidator.cs b/Lib9c/Action/DPoS/WithdrawValidator.cs similarity index 98% rename from Lib9c/Action/DPoS/Sys/WithdrawValidator.cs rename to Lib9c/Action/DPoS/WithdrawValidator.cs index 3014dae67f..b797e3abfb 100644 --- a/Lib9c/Action/DPoS/Sys/WithdrawValidator.cs +++ b/Lib9c/Action/DPoS/WithdrawValidator.cs @@ -8,7 +8,7 @@ using Nekoyume.Action.DPoS.Model; using Nekoyume.Module; -namespace Nekoyume.Action.DPoS.Sys +namespace Nekoyume.Action.DPoS { /// /// A system action for DPoS that withdraws commission tokens from .