Skip to content

Commit be545f6

Browse files
committed
refactor bugfixes
1 parent 661af1c commit be545f6

File tree

9 files changed

+47
-35
lines changed

9 files changed

+47
-35
lines changed

src/aoWebWallet/Models/ActionParam.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@ public class AoAction
3838
return AllWithoutTarget.Select(x => new ArweaveBlazor.Models.Tag { Name = x.Key, Value = x.Value ?? string.Empty }).ToList();
3939
}
4040

41+
public List<ArweaveAO.Models.Tag> ToDryRunTags()
42+
{
43+
return AllWithoutTarget.Select(x => new ArweaveAO.Models.Tag { Name = x.Key, Value = x.Value ?? string.Empty }).ToList();
44+
}
45+
4146

4247
public string ToQueryString()
4348
{

src/aoWebWallet/Pages/ActionPage.razor

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@
133133
Wallet? ownerWallet = BindingContext.WalletList.Data.Where(x => x.Address == wallet.OwnerAddress).FirstOrDefault();
134134

135135
started = true;
136+
await transactionService.DryRunAction(wallet, ownerWallet, AoAction);
136137
await transactionService.SendAction(wallet, ownerWallet, AoAction);
137138
}
138139

src/aoWebWallet/Pages/Tokens.razor.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public partial class Tokens : MvvmComponentBase<MainViewModel>
77
protected override void OnInitialized()
88
{
99
WatchCollection(dataService.TokenList);
10+
WatchObject(dataService.TokenDataLoader);
1011

1112
base.OnInitialized();
1213
}

src/aoWebWallet/Pages/WalletDetail.razor.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ protected override void OnInitialized()
1111
{
1212
//WatchObject(dataService.TokenList);
1313
WatchObject(BindingContext.BalanceDataList);
14+
WatchObject(dataService.TokenDataLoader);
1415
WatchCollection(dataService.TokenList);
1516
WatchCollection(BindingContext.BalanceDataList);
1617
WatchDataLoaderVM(MainViewModel.WalletList);

src/aoWebWallet/Services/StorageService.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ private void AddSystemToken(List<Token> list, string tokenId)
3636
{
3737
var existing = list.Where(x => x.TokenId == tokenId).FirstOrDefault();
3838
if (existing != null)
39-
return;
39+
existing.IsSystemToken = true;
4040
else
4141
list.Add(new Token { TokenId = tokenId, IsSystemToken = true });
4242
}
@@ -59,21 +59,22 @@ public async Task AddTokenId(string tokenId, bool isUserAdded = true, bool isVis
5959
await SaveTokenList(list);
6060
}
6161

62-
public async ValueTask<Token> AddToken(string tokenId, TokenData data, bool isUserAdded, bool isVisible = true)
62+
public async ValueTask<Token> AddToken(string tokenId, TokenData data, bool isUserAdded, bool? isVisible)
6363
{
6464
var list = await GetTokenIds();
6565

6666
var existing = list.Where(x => x.TokenId == tokenId).FirstOrDefault();
6767
if (existing != null)
6868
{
69-
existing.IsVisible = true;
69+
if(isVisible.HasValue)
70+
existing.IsVisible = isVisible.Value;
7071

7172
if(!existing.IsSystemToken)
7273
existing.IsUserAdded = true;
7374
}
7475
else
7576
{
76-
existing = new Token { TokenId = tokenId, TokenData = data, IsUserAdded = isUserAdded, IsVisible = isVisible };
77+
existing = new Token { TokenId = tokenId, TokenData = data, IsUserAdded = isUserAdded, IsVisible = isVisible ?? true };
7778
list.Add(existing);
7879
}
7980

src/aoWebWallet/Services/TokenDataService.cs

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -38,30 +38,29 @@ public async Task TryAddTokenIds(List<string?> allTokenIds)
3838
{
3939
var data = await tokenClient.GetTokenMetaData(tokenId);
4040
return data;
41+
}, async data =>
42+
{
43+
if (data != null)
44+
{
45+
await storageService.AddToken(tokenId, data, isUserAdded: false, null);
46+
47+
await LoadTokenList();
48+
}
4149
});
4250

43-
if (data != null)
44-
{
45-
await storageService.AddToken(tokenId, data, isUserAdded: false);
46-
}
51+
4752
}
48-
49-
await LoadTokenList();
5053
}
5154

5255
public async Task<Token> LoadTokenAsync(string tokenId)
5356
{
54-
var tokens = await storageService.GetTokenIds();
55-
56-
var token = tokens.Where(x => x.TokenId.Equals(tokenId, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
57+
var token = TokenList.Where(x => x.TokenId.Equals(tokenId, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
5758
if(token == null)
5859
{
5960
token = new Token()
6061
{
6162
TokenId = tokenId,
6263
};
63-
64-
tokens.Add(token);
6564
}
6665

6766
if (token.TokenData == null)
@@ -77,7 +76,9 @@ public async Task<Token> LoadTokenAsync(string tokenId)
7776

7877
token.TokenData = data;
7978

80-
await storageService.SaveTokenList(tokens);
79+
TokenList.Add(token);
80+
81+
await storageService.AddToken(tokenId, data, false, null);
8182
}
8283

8384
}
@@ -92,12 +93,15 @@ public async Task LoadTokenList(bool force = false)
9293
TokenList.Clear();
9394
await foreach (var item in LoadTokenDataAsync())
9495
{
95-
TokenList.Add(item);
96+
var existing = TokenList.Where(x => x.TokenId == item.TokenId).Any();
97+
98+
if(!existing)
99+
TokenList.Add(item);
96100
}
97101
}
98102
}
99103

100-
public async IAsyncEnumerable<Token> LoadTokenDataAsync()
104+
private async IAsyncEnumerable<Token> LoadTokenDataAsync()
101105
{
102106
var tokens = await storageService.GetTokenIds();
103107
foreach (var token in tokens)
@@ -144,20 +148,6 @@ public async Task TokenToggleVisibility(string tokenId)
144148
}
145149
}
146150

147-
public async Task AddToken(string tokenId, TokenData data, bool isUserAdded)
148-
{
149-
var newToken = await storageService.AddToken(tokenId, data, isUserAdded);
150-
var existing = TokenList.Where(x => x.TokenId == newToken.TokenId).FirstOrDefault();
151-
if (existing == null)
152-
{
153-
TokenList.Add(newToken);
154-
}
155-
else
156-
{
157-
existing = newToken;
158-
}
159-
}
160-
161151
public async Task Clear()
162152
{
163153
await storageService.SaveTokenList(new());

src/aoWebWallet/Services/TransactionService.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
using aoWebWallet.Extensions;
22
using aoWebWallet.Models;
3+
using ArweaveAO.Requests;
34
using ArweaveBlazor;
45
using CommunityToolkit.Mvvm.ComponentModel;
56
using webvNext.DataLoader;
67

78
namespace aoWebWallet.Services
89
{
9-
public class TransactionService(ArweaveService arweaveService) : ObservableObject
10+
public class TransactionService(ArweaveService arweaveService, ArweaveAO.AODataClient aODataClient) : ObservableObject
1011
{
1112
public void Reset()
1213
{
@@ -29,6 +30,19 @@ public void Reset()
2930
return null;
3031
}
3132

33+
public async Task DryRunAction(Wallet wallet, Wallet? ownerWallet, AoAction action)
34+
{
35+
var target = action.Target?.Value ?? string.Empty;
36+
var druRunRequest = new DryRunRequest()
37+
{
38+
Target = target,
39+
Tags = action.ToDryRunTags()
40+
};
41+
42+
var result = aODataClient.DryRun(target, druRunRequest);
43+
44+
}
45+
3246
public async Task SendAction(Wallet wallet, Wallet? ownerWallet, AoAction action)
3347
{
3448
if (wallet.Source == WalletTypes.ArConnect)

src/aoWebWallet/Shared/AddTokenDialog.razor

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@
4040
var data = token.TokenData;
4141
if (data != null)
4242
{
43-
await dataService.AddToken(TokenId, data, isUserAdded: true);
44-
4543
Snackbar.Add($"Token added ({data.Name})", Severity.Info);
4644

4745
MudDialog.Close(DialogResult.Ok(true));

src/aoWebWallet/Shared/Components/ActionQuantityComponent.razor

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181

8282
protected override async Task OnParametersSetAsync()
8383
{
84+
BalanceData = null;
8485
var token = await tokenDataService.LoadTokenAsync(TokenId);
8586
if (token.TokenData?.Denomination != null)
8687
Token = token;

0 commit comments

Comments
 (0)