Skip to content

Commit

Permalink
refactor minor
Browse files Browse the repository at this point in the history
  • Loading branch information
boscohyun committed May 21, 2024
1 parent fbae722 commit 61917df
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 20 deletions.
12 changes: 11 additions & 1 deletion Mimir/Services/HeadlessStateService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using HeadlessGQL;
using Libplanet.Crypto;
using Libplanet.Action.State;
using Libplanet.Types.Assets;
using Libplanet.Types.Blocks;
using StrawberryShake;

Expand Down Expand Up @@ -44,8 +45,17 @@ public class HeadlessStateService(IHeadlessGQLClient client) : IStateService
return Codec.Decode(Convert.FromHexString(result.Data.State));
}

public async Task<string> GetBalance(Address address, CurrencyInput currencyInput)
public async Task<string> GetBalance(Address address, Currency currency)
{
var currencyInput = new CurrencyInput
{
Ticker = currency.Ticker,
DecimalPlaces = currency.DecimalPlaces,
Minters = currency.Minters?.Select(minter => minter.ToString()).ToList() ?? null,
MaximumSupplyMajorUnit = currency.MaximumSupply?.MajorUnit.ToString() ?? null,
MaximumSupplyMinorUnit = currency.MaximumSupply?.MinorUnit.ToString() ?? null,
TotalSupplyTrackable = currency.TotalSupplyTrackable,
};
var result = await client.GetBalance.ExecuteAsync(
address.ToString(),
currencyInput);
Expand Down
4 changes: 2 additions & 2 deletions Mimir/Services/IStateService.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Bencodex.Types;
using HeadlessGQL;
using Libplanet.Crypto;
using Libplanet.Types.Assets;

namespace Mimir.Services;

Expand All @@ -10,5 +10,5 @@ public interface IStateService
Task<IValue?> GetState(Address address, Address accountAddress);
Task<IValue?[]> GetStates(Address[] addresses);
Task<IValue?[]> GetStates(Address[] addresses, Address accountAddress);
Task<string> GetBalance(Address address, CurrencyInput currencyInput);
Task<string> GetBalance(Address address, Currency currency);
}
19 changes: 2 additions & 17 deletions Mimir/Util/StateGetter.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using Libplanet.Crypto;
using Bencodex.Types;
using HeadlessGQL;
using Libplanet.Action.State;
using Libplanet.Types.Assets;
using Nekoyume.TableData;
Expand All @@ -16,22 +15,8 @@ namespace Mimir.Util;

public class StateGetter(IStateService stateService)
{
public async Task<string> GetBalanceAsync(Address address, Currency currency)
{
var currencyInput = new CurrencyInput
{
Ticker = currency.Ticker,
DecimalPlaces = currency.DecimalPlaces,
Minters = currency.Minters?.Select(minter => minter.ToString()).ToList() ?? null,
MaximumSupplyMajorUnit = currency.MaximumSupply?.MajorUnit.ToString() ?? null,
MaximumSupplyMinorUnit = currency.MaximumSupply?.MinorUnit.ToString() ?? null,
TotalSupplyTrackable = currency.TotalSupplyTrackable,
};
return await stateService.GetBalance(address, currencyInput);
}

public async Task<string> GetBalanceAsync(Address address, CurrencyInput currencyInput) =>
await stateService.GetBalance(address, currencyInput);
public async Task<string> GetBalanceAsync(Address address, Currency currency) =>
await stateService.GetBalance(address, currency);

public async Task<IValue?> GetStateAsync(Address address, Address accountAddress) =>
await stateService.GetState(address, accountAddress) ??
Expand Down

0 comments on commit 61917df

Please sign in to comment.