diff --git a/NineChronicles.DataProvider.Executable/Commands/MySqlMigration.cs b/NineChronicles.DataProvider.Executable/Commands/MySqlMigration.cs index dd9b660f..92dca5d8 100644 --- a/NineChronicles.DataProvider.Executable/Commands/MySqlMigration.cs +++ b/NineChronicles.DataProvider.Executable/Commands/MySqlMigration.cs @@ -395,7 +395,7 @@ private void ProcessTasks(Task>[] taskArray, IB // check if address is already in _avatarCheck if (!_avatarCheck.Contains(avatarAddress.ToString())) { - _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ae.InputContext.Signer, hasAction.AvatarAddress, hasAction.RuneInfos, _blockTimeOffset, BattleType.Adventure)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ae.InputContext.Signer, hasAction.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); _avatarCheck.Add(avatarAddress.ToString()); } @@ -473,7 +473,7 @@ private void ProcessTasks(Task>[] taskArray, IB if (action is HackAndSlashSweep hasSweep) { var start = DateTimeOffset.UtcNow; - _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ae.InputContext.Signer, hasSweep.avatarAddress, hasSweep.runeInfos, _blockTimeOffset, BattleType.Adventure)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ae.InputContext.Signer, hasSweep.avatarAddress, _blockTimeOffset, BattleType.Adventure)); _hackAndSlashSweepList.Add(HackAndSlashSweepData.GetHackAndSlashSweepInfo( inputState, outputState, @@ -821,7 +821,7 @@ private void ProcessTasks(Task>[] taskArray, IB if (action is BattleArena battleArena) { var start = DateTimeOffset.UtcNow; - _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ae.InputContext.Signer, battleArena.myAvatarAddress, battleArena.runeInfos, _blockTimeOffset, BattleType.Adventure)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ae.InputContext.Signer, battleArena.myAvatarAddress, _blockTimeOffset, BattleType.Adventure)); _battleArenaList.Add(BattleArenaData.GetBattleArenaInfo( inputState, outputState, @@ -1054,7 +1054,7 @@ private void ProcessTasks(Task>[] taskArray, IB } } - _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ae.InputContext.Signer, raid.AvatarAddress, raid.RuneInfos, _blockTimeOffset, BattleType.Adventure)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ae.InputContext.Signer, raid.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); var worldBossListSheet = sheets.GetSheet(); int raidId = worldBossListSheet.FindRaidIdByBlockIndex(ae.InputContext.BlockIndex); diff --git a/NineChronicles.DataProvider/DataRendering/AvatarData.cs b/NineChronicles.DataProvider/DataRendering/AvatarData.cs index ed3fbf34..882eed38 100644 --- a/NineChronicles.DataProvider/DataRendering/AvatarData.cs +++ b/NineChronicles.DataProvider/DataRendering/AvatarData.cs @@ -26,10 +26,10 @@ public static AvatarModel GetAvatarInfo( IWorld outputStates, Address signer, Address avatarAddress, - List runeInfos, DateTimeOffset blockTime, BattleType battleType) { + var start = DateTimeOffset.UtcNow; AvatarState avatarState = outputStates.GetAvatarState(avatarAddress); var collectionExist = outputStates.TryGetCollectionState(avatarAddress, out var collectionState); var sheetTypes = new List @@ -151,14 +151,6 @@ public static AvatarModel GetAvatarInfo( string avatarName = avatarState.name; - Log.Debug( - "AvatarName: {0}, AvatarLevel: {1}, ArmorId: {2}, TitleId: {3}, CP: {4}", - avatarName, - avatarLevel, - avatarArmorId, - avatarTitleId, - avatarCp); - var avatarModel = new AvatarModel() { Address = avatarAddress.ToString(), @@ -171,6 +163,15 @@ public static AvatarModel GetAvatarInfo( Timestamp = blockTime, }; + var end = DateTimeOffset.UtcNow; + Log.Debug( + "[DataProvider] AvatarName: {0}, AvatarLevel: {1}, ArmorId: {2}, TitleId: {3}, CP: {4}, Time Taken: {5} ms.", + avatarName, + avatarLevel, + avatarArmorId, + avatarTitleId, + avatarCp, + (end - start).Milliseconds); return avatarModel; } diff --git a/NineChronicles.DataProvider/RenderSubscriber.cs b/NineChronicles.DataProvider/RenderSubscriber.cs index 062b01bb..28e18674 100644 --- a/NineChronicles.DataProvider/RenderSubscriber.cs +++ b/NineChronicles.DataProvider/RenderSubscriber.cs @@ -281,6 +281,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) runeCurrency); var acquiredRune = outputRuneBalance - prevRuneBalance; var actionType = claimStakeReward.ToString()!.Split('.').LastOrDefault()?.Replace(">", string.Empty); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, avatarAddress, _blockTimeOffset, BattleType.Adventure)); _runesAcquiredList.Add(RunesAcquiredData.GetRunesAcquiredInfo( id, ev.Signer, @@ -313,6 +314,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) ?.Replace(">", string.Empty); var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, eventDungeonBattle.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); _eventDungeonBattleList.Add(EventDungeonBattleData.GetEventDungeonBattleInfo( inputState, outputState, @@ -348,6 +350,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, eventConsumableItemCrafts.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); _eventConsumableItemCraftsList.Add(EventConsumableItemCraftsData.GetEventConsumableItemCraftsInfo(eventConsumableItemCrafts, inputState, outputState, ev.Signer, ev.BlockIndex, _blockTimeOffset)); var end = DateTimeOffset.UtcNow; Log.Debug("[DataProvider] Stored EventConsumableItemCrafts action in block #{index}. Time Taken: {time} ms.", ev.BlockIndex, (end - start).Milliseconds); @@ -409,7 +412,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); - _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, has.AvatarAddress, has.RuneInfos, _blockTimeOffset, BattleType.Adventure)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, has.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); _hasList.Add(HackAndSlashData.GetHackAndSlashInfo(inputState, outputState, ev.Signer, has.AvatarAddress, has.StageId, has.Id, ev.BlockIndex, _blockTimeOffset)); if (has.StageBuffId.HasValue) { @@ -436,7 +439,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); - _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, hasSweep.avatarAddress, hasSweep.runeInfos, _blockTimeOffset, BattleType.Adventure)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, hasSweep.avatarAddress, _blockTimeOffset, BattleType.Adventure)); _hasSweepList.Add(HackAndSlashSweepData.GetHackAndSlashSweepInfo( inputState, outputState, @@ -471,6 +474,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, combinationConsumable.avatarAddress, _blockTimeOffset, BattleType.Adventure)); _ccList.Add(CombinationConsumableData.GetCombinationConsumableInfo( inputState, outputState, @@ -501,6 +505,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, combinationEquipment.avatarAddress, _blockTimeOffset, BattleType.Adventure)); if (combinationEquipment.payByCrystal) { var replaceCombinationEquipmentMaterialList = ReplaceCombinationEquipmentMaterialData @@ -584,6 +589,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, itemEnhancement.avatarAddress, _blockTimeOffset, BattleType.Adventure)); if (ItemEnhancementFailData.GetItemEnhancementFailInfo( inputState, outputState, @@ -652,6 +658,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); AvatarState avatarState = outputState.GetAvatarState(buy.buyerAvatarAddress); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, buy.buyerAvatarAddress, _blockTimeOffset, BattleType.Adventure)); var buyerInventory = avatarState.inventory; foreach (var purchaseInfo in buy.purchaseInfos) { @@ -721,6 +728,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, buy.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); foreach (var productInfo in buy.ProductInfos) { switch (productInfo) @@ -850,6 +858,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, mc.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); _mmcList.Add(MigrateMonsterCollectionData.GetMigrateMonsterCollectionInfo(inputState, outputState, ev.Signer, ev.BlockIndex, _blockTimeOffset)); var end = DateTimeOffset.UtcNow; Log.Debug("[DataProvider] Stored MigrateMonsterCollection action in block #{index}. Time Taken: {time} ms.", ev.BlockIndex, (end - start).Milliseconds); @@ -871,7 +880,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); - + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, grinding.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); var grindList = GrindingData.GetGrindingInfo(inputState, outputState, ev.Signer, grinding.AvatarAddress, grinding.EquipmentIds, grinding.Id, ev.BlockIndex, _blockTimeOffset); foreach (var grind in grindList) @@ -899,6 +908,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, unlockEquipmentRecipe.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); var unlockEquipmentRecipeList = UnlockEquipmentRecipeData.GetUnlockEquipmentRecipeInfo(inputState, outputState, ev.Signer, unlockEquipmentRecipe.AvatarAddress, unlockEquipmentRecipe.RecipeIds, unlockEquipmentRecipe.Id, ev.BlockIndex, _blockTimeOffset); foreach (var unlockEquipmentRecipeData in unlockEquipmentRecipeList) { @@ -925,6 +935,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, unlockWorld.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); var unlockWorldList = UnlockWorldData.GetUnlockWorldInfo(inputState, outputState, ev.Signer, unlockWorld.AvatarAddress, unlockWorld.WorldIds, unlockWorld.Id, ev.BlockIndex, _blockTimeOffset); foreach (var unlockWorldData in unlockWorldList) { @@ -951,6 +962,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, hasRandomBuff.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); _hasRandomBuffList.Add(HackAndSlashRandomBuffData.GetHasRandomBuffInfo(inputState, outputState, ev.Signer, hasRandomBuff.AvatarAddress, hasRandomBuff.AdvancedGacha, hasRandomBuff.Id, ev.BlockIndex, _blockTimeOffset)); var end = DateTimeOffset.UtcNow; Log.Debug("[DataProvider] Stored HasRandomBuff action in block #{index}. Time Taken: {time} ms.", ev.BlockIndex, (end - start).Milliseconds); @@ -972,6 +984,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, joinArena.avatarAddress, _blockTimeOffset, BattleType.Adventure)); _joinArenaList.Add(JoinArenaData.GetJoinArenaInfo(inputState, outputState, ev.Signer, joinArena.avatarAddress, joinArena.round, joinArena.championshipId, joinArena.Id, ev.BlockIndex, _blockTimeOffset)); var end = DateTimeOffset.UtcNow; Log.Debug("[DataProvider] Stored JoinArena action in block #{index}. Time Taken: {time} ms.", ev.BlockIndex, (end - start).Milliseconds); @@ -993,7 +1006,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); - _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, battleArena.myAvatarAddress, battleArena.runeInfos, _blockTimeOffset, BattleType.Adventure)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, battleArena.myAvatarAddress, _blockTimeOffset, BattleType.Adventure)); _battleArenaList.Add(BattleArenaData.GetBattleArenaInfo( inputState, outputState, @@ -1026,6 +1039,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, eventMaterialItemCrafts.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); _eventMaterialItemCraftsList.Add(EventMaterialItemCraftsData.GetEventMaterialItemCraftsInfo( inputState, outputState, @@ -1057,6 +1071,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, runeEnhancement.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); _runeEnhancementList.Add(RuneEnhancementData.GetRuneEnhancementInfo( inputState, outputState, @@ -1139,6 +1154,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) #pragma warning restore CS0618 var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, dailyReward.avatarAddress, _blockTimeOffset, BattleType.Adventure)); var prevRuneBalance = inputState.GetBalance( dailyReward.avatarAddress, runeCurrency); @@ -1177,6 +1193,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, claimRaidReward.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); var sheets = outputState.GetSheets( sheetTypes: new[] { @@ -1231,6 +1248,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, unlockRuneSlot.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); _unlockRuneSlotList.Add(UnlockRuneSlotData.GetUnlockRuneSlotInfo( inputState, outputState, @@ -1260,6 +1278,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, rapidCombination.avatarAddress, _blockTimeOffset, BattleType.Adventure)); _rapidCombinationList.Add(RapidCombinationData.GetRapidCombinationInfo( inputState, outputState, @@ -1329,7 +1348,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) } } - _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, ev.Action.AvatarAddress, ev.Action.RuneInfos, _blockTimeOffset, BattleType.Adventure)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, ev.Action.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); var worldBossListSheet = sheets.GetSheet(); int raidId = worldBossListSheet.FindRaidIdByBlockIndex(ev.BlockIndex); @@ -1366,6 +1385,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, petEnhancement.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); _petEnhancementList.Add(PetEnhancementData.GetPetEnhancementInfo( inputState, outputState, @@ -1378,7 +1398,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) _blockTimeOffset )); var end = DateTimeOffset.UtcNow; - Log.Debug("[DataProvider] Stored PetEnhancement action in block #{BlockIndex}. Time taken: {Time} ms", ev.BlockIndex, end - start); + Log.Debug("[DataProvider] Stored PetEnhancement action in block #{BlockIndex}. Time taken: {Time} ms", ev.BlockIndex, (end - start).Milliseconds); } } catch (Exception ex) @@ -1396,6 +1416,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) var start = DateTimeOffset.UtcNow; var inputState = new World(_blockChainStates.GetWorldState(ev.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, auraSummon.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); if (ev.Exception is null) { _auraSummonList.Add(AuraSummonData.GetAuraSummonInfo( @@ -1427,7 +1448,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) } var end = DateTimeOffset.UtcNow; - Log.Debug("[DataProvider] Stored AuraSummon action in block #{BlockIndex}. Time taken: {Time} ms", ev.BlockIndex, end - start); + Log.Debug("[DataProvider] Stored AuraSummon action in block #{BlockIndex}. Time taken: {Time} ms", ev.BlockIndex, (end - start).Milliseconds); } } catch (Exception ex) @@ -1444,6 +1465,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) { var start = DateTimeOffset.UtcNow; var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, runeSummon.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); if (ev.Exception is null) { var sheets = outputState.GetSheets( @@ -1482,7 +1504,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) } var end = DateTimeOffset.UtcNow; - Log.Debug("[DataProvider] Stored RuneSummon action in block #{BlockIndex}. Time taken: {Time} ms", ev.BlockIndex, end - start); + Log.Debug("[DataProvider] Stored RuneSummon action in block #{BlockIndex}. Time taken: {Time} ms", ev.BlockIndex, (end - start).Milliseconds); } } catch (Exception ex) @@ -1499,6 +1521,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) { var start = DateTimeOffset.UtcNow; var outputState = new World(_blockChainStates.GetWorldState(ev.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, activateCollection.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); var collectionSheet = outputState.GetSheet(); var avatar = MySqlStore.GetAvatar(activateCollection.AvatarAddress, true); var collectionState = outputState.GetCollectionState(activateCollection.AvatarAddress); @@ -1512,7 +1535,7 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) ); var end = DateTimeOffset.UtcNow; - Log.Debug("[DataProvider] Stored MigrateActivateCollections action in block #{BlockIndex}. Time taken: {Time} ms", ev.BlockIndex, end - start); + Log.Debug("[DataProvider] Stored MigrateActivateCollections action in block #{BlockIndex}. Time taken: {Time} ms", ev.BlockIndex, (end - start).Milliseconds); } } catch (Exception ex) @@ -1616,27 +1639,6 @@ private void ProcessAgentData(ActionEvaluation ev) } } - private void ProcessAvatarData(ActionEvaluation ev, World outputState, Address avatarAddress) - { - try - { - var start = DateTimeOffset.UtcNow; - var runeSlotStateAddress = RuneSlotState.DeriveAddress(avatarAddress, BattleType.Adventure); - var runeSlotState = outputState.TryGetLegacyState(runeSlotStateAddress, out List rawRuneSlotState) - ? new RuneSlotState(rawRuneSlotState) - : new RuneSlotState(BattleType.Adventure); - var runeSlotInfos = runeSlotState.GetEquippedRuneSlotInfos(); - - _avatarList.Add(AvatarData.GetAvatarInfo(outputState, ev.Signer, avatarAddress, runeSlotInfos, _blockTimeOffset, BattleType.Adventure)); - var end = DateTimeOffset.UtcNow; - Log.Debug("[DataProvider] Stored Avatar Information in block #{index}. Time Taken: {time} ms.", ev.BlockIndex, (end - start).Milliseconds); - } - catch (Exception ex) - { - Log.Error(ex, "[DataProvider] RenderSubscriber Error: {ErrorMessage}, StackTrace: {StackTrace}", ex.Message, ex.StackTrace); - } - } - private void StoreRenderedData((Block OldTip, Block NewTip) b) { var start = DateTimeOffset.Now; diff --git a/NineChronicles.DataProvider/Subscriber/AdventureBossRenderSubscriber.cs b/NineChronicles.DataProvider/Subscriber/AdventureBossRenderSubscriber.cs index a6d45371..3caef7e3 100644 --- a/NineChronicles.DataProvider/Subscriber/AdventureBossRenderSubscriber.cs +++ b/NineChronicles.DataProvider/Subscriber/AdventureBossRenderSubscriber.cs @@ -9,7 +9,9 @@ namespace NineChronicles.DataProvider using Lib9c.Renderers; using Libplanet.Action.State; using Nekoyume.Action.AdventureBoss; + using Nekoyume.Model.EnumType; using Nekoyume.Module; + using NineChronicles.DataProvider.DataRendering; using NineChronicles.DataProvider.DataRendering.AdventureBoss; using NineChronicles.DataProvider.Store.Models.AdventureBoss; using Serilog; @@ -100,6 +102,7 @@ partial void SubscribeAdventureBossWanted(ActionEvaluation evt) { var start = DateTimeOffset.UtcNow; var outputState = new World(_blockChainStates.GetWorldState(evt.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, evt.Signer, wanted.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); _adventureBossWantedList.Add(AdventureBossWantedData.GetWantedInfo( outputState, evt.BlockIndex, _blockTimeOffset, wanted )); @@ -135,6 +138,7 @@ partial void SubscribeAdventureBossChallenge(ActionEvaluation evt var start = DateTimeOffset.UtcNow; var prevState = new World(_blockChainStates.GetWorldState(evt.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(evt.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, evt.Signer, rush.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); _adventureBossRushList.Add(AdventureBossRushData.GetRushInfo( prevState, outputState, evt.BlockIndex, _blockTimeOffset, rush )); @@ -193,6 +198,7 @@ partial void SubscribeAdventureBossUnlockFloor(ActionEvaluation evt var start = DateTimeOffset.UtcNow; var prevState = new World(_blockChainStates.GetWorldState(evt.PreviousState)); var outputState = new World(_blockChainStates.GetWorldState(evt.OutputState)); + _avatarList.Add(AvatarData.GetAvatarInfo(outputState, evt.Signer, unlock.AvatarAddress, _blockTimeOffset, BattleType.Adventure)); _adventureBossUnlockFloorList.Add(AdventureBossUnlockFloorData.GetUnlockInfo( prevState, outputState, evt.BlockIndex, _blockTimeOffset, unlock )); @@ -222,6 +228,7 @@ partial void SubscribeAdventureBossClaim(ActionEvaluation