diff --git a/Lib9c/Action/Guild/Migration/GuildMigrationFailedException.cs b/Lib9c/Action/Guild/Migration/GuildMigrationFailedException.cs
index 322ce9213c..118fd7e7f9 100644
--- a/Lib9c/Action/Guild/Migration/GuildMigrationFailedException.cs
+++ b/Lib9c/Action/Guild/Migration/GuildMigrationFailedException.cs
@@ -2,6 +2,9 @@
namespace Nekoyume.Action.Guild.Migration
{
+ ///
+ /// An exception to be thrown when guild migration failed.
+ ///
public class GuildMigrationFailedException : InvalidOperationException
{
public GuildMigrationFailedException(string message) : base(message)
diff --git a/Lib9c/Action/Guild/Migration/LegacyModels/LegacyGuild.cs b/Lib9c/Action/Guild/Migration/LegacyModels/LegacyGuild.cs
index b494b3d33e..da7e83b982 100644
--- a/Lib9c/Action/Guild/Migration/LegacyModels/LegacyGuild.cs
+++ b/Lib9c/Action/Guild/Migration/LegacyModels/LegacyGuild.cs
@@ -6,6 +6,9 @@
namespace Nekoyume.Action.Guild.Migration.LegacyModels
{
// TODO: [GuildMigration] Remove this class when the migration is done.
+ ///
+ /// The legacy model for Guild.
+ ///
public class LegacyGuild : IEquatable, IBencodable
{
private const string StateTypeName = "guild";
diff --git a/Lib9c/Action/Guild/Migration/LegacyModels/LegacyGuildParticipant.cs b/Lib9c/Action/Guild/Migration/LegacyModels/LegacyGuildParticipant.cs
index e69b6297aa..f3724c86a6 100644
--- a/Lib9c/Action/Guild/Migration/LegacyModels/LegacyGuildParticipant.cs
+++ b/Lib9c/Action/Guild/Migration/LegacyModels/LegacyGuildParticipant.cs
@@ -6,6 +6,9 @@
namespace Nekoyume.Action.Guild.Migration.LegacyModels
{
// TODO: [GuildMigration] Remove this class when the migration is done.
+ ///
+ /// The legacy model for GuildParticipant.
+ ///
public class LegacyGuildParticipant : IBencodable, IEquatable
{
private const string StateTypeName = "guild_participant";
diff --git a/Lib9c/Action/Guild/Migration/LegacyModels/MigrationModule.cs b/Lib9c/Action/Guild/Migration/LegacyModels/MigrationModule.cs
index 493282e363..ce4d807185 100644
--- a/Lib9c/Action/Guild/Migration/LegacyModels/MigrationModule.cs
+++ b/Lib9c/Action/Guild/Migration/LegacyModels/MigrationModule.cs
@@ -5,6 +5,10 @@
namespace Nekoyume.Action.Guild.Migration.LegacyModels
{
+ // TODO: [GuildMigration] Remove this class when the migration is done.
+ ///
+ /// The module for delegation height for migration.
+ ///
public static class MigrationModule
{
///
diff --git a/Lib9c/Action/Guild/Migration/MigrateDelegation.cs b/Lib9c/Action/Guild/Migration/MigrateDelegation.cs
index 14e77621ac..1f383fd908 100644
--- a/Lib9c/Action/Guild/Migration/MigrateDelegation.cs
+++ b/Lib9c/Action/Guild/Migration/MigrateDelegation.cs
@@ -17,6 +17,8 @@ namespace Nekoyume.Action.Guild.Migration
// TODO: [GuildMigration] Remove this class when the migration is done.
///
/// An action to migrate guild delegation.
+ /// After migration is done, guild participant now have delegation with
+ /// validator.
///
[ActionType(TypeIdentifier)]
public class MigrateDelegation : ActionBase
diff --git a/Lib9c/Action/Guild/Migration/MigrateDelegationHeight.cs b/Lib9c/Action/Guild/Migration/MigrateDelegationHeight.cs
index dfd5aaa531..2574b9e2a4 100644
--- a/Lib9c/Action/Guild/Migration/MigrateDelegationHeight.cs
+++ b/Lib9c/Action/Guild/Migration/MigrateDelegationHeight.cs
@@ -10,6 +10,7 @@ namespace Nekoyume.Action.Guild.Migration
// TODO: [GuildMigration] Remove this class when the migration is done.
///
/// An action to migrate the delegation height.
+ /// This action triggers the migration of the delegation height.
///
[ActionType(TypeIdentifier)]
public class MigrateDelegationHeight : ActionBase
diff --git a/Lib9c/Action/Guild/Migration/MigratePlanetariumGuild.cs b/Lib9c/Action/Guild/Migration/MigratePlanetariumGuild.cs
index 216a39ded5..57e1b72de0 100644
--- a/Lib9c/Action/Guild/Migration/MigratePlanetariumGuild.cs
+++ b/Lib9c/Action/Guild/Migration/MigratePlanetariumGuild.cs
@@ -12,6 +12,7 @@ namespace Nekoyume.Action.Guild.Migration
// TODO: [GuildMigration] Remove this class when the migration is done.
///
/// An action to migrate the planetarium guild.
+ /// After migration, the planetarium guild now has a validator to delegate.
///
[ActionType(TypeIdentifier)]
public class MigratePlanetariumGuild : ActionBase
diff --git a/Lib9c/Action/Guild/Migration/MigratePlanetariumValidator.cs b/Lib9c/Action/Guild/Migration/MigratePlanetariumValidator.cs
index 0a91936bf2..98ef4ee0f4 100644
--- a/Lib9c/Action/Guild/Migration/MigratePlanetariumValidator.cs
+++ b/Lib9c/Action/Guild/Migration/MigratePlanetariumValidator.cs
@@ -10,7 +10,9 @@ namespace Nekoyume.Action.Guild.Migration
{
// TODO: [GuildMigration] Remove this class when the migration is done.
///
- /// An action to migrate the planetarium guild.
+ /// An action to migrate the planetarium validator.
+ /// With this migration, planetarium validator is now active,
+ /// and bonded FAVs are moved to active address.
///
[ActionType(TypeIdentifier)]
public class MigratePlanetariumValidator : ActionBase
diff --git a/Lib9c/ValidatorDelegation/AbstainHistory.cs b/Lib9c/ValidatorDelegation/AbstainHistory.cs
index c90a987361..430d2c78cd 100644
--- a/Lib9c/ValidatorDelegation/AbstainHistory.cs
+++ b/Lib9c/ValidatorDelegation/AbstainHistory.cs
@@ -78,7 +78,7 @@ public List FindToSlashAndAdd(IEnumerable abstainList, lon
}
}
- foreach (var history in History)
+ foreach (var history in History.ToArray())
{
history.Value.RemoveAll(abstainHeight => abstainHeight < lowerBound);
if (history.Value.Count == 0)