|
@@ -8,6 +8,8 @@
|
|
|
@using Microsoft.AspNetCore.Identity;
|
|
|
@inject AuthenticationStateProvider AuthenticationStateProvider
|
|
|
@inject UserManager<IdentityUser> UserManager
|
|
|
+@using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage;
|
|
|
+@inject ProtectedSessionStorage storage
|
|
|
|
|
|
@attribute [Authorize]
|
|
|
<div class="tabs__content">
|
|
@@ -94,11 +96,11 @@
|
|
|
|
|
|
@if (Blockchain.blockChainsInitialized)
|
|
|
{
|
|
|
- <select @bind="AccountModel.GetCurrent().blockchain_selected" style="color:green">
|
|
|
+ <select @bind="account.blockchain_selected" style="color:green">
|
|
|
<option value=0>Ethereum Dev Network</option>
|
|
|
<option value=1>Ethereum Test Network</option>
|
|
|
</select>
|
|
|
- <p><b>@Blockchain.GetMain().url:@Blockchain.GetMain().port </b><br /> <b>Address:</b> @Blockchain.GetMain().address<br /> <b>Balance:</b> @Blockchain.GetMain().balance</p>
|
|
|
+ <p><b>@bcMain.url:@bcMain.port </b><br /> <b>Address:</b> @bcMain.address<br /> <b>Balance:</b> @bcMain.balance</p>
|
|
|
|
|
|
@*@foreach(var bc in Blockchain.loaded.Values)
|
|
|
{
|
|
@@ -162,9 +164,9 @@
|
|
|
@if (Blockchain.loaded.Count > 0)
|
|
|
{
|
|
|
result = Blockchain.loaded.Count.ToString();
|
|
|
- if (Blockchain.GetMain().contracts.Count > 0)
|
|
|
+ if (bcMain.contracts.Count > 0)
|
|
|
{
|
|
|
- @foreach (var c in Blockchain.GetMain().contracts.Values)
|
|
|
+ @foreach (var c in bcMain.contracts.Values)
|
|
|
{
|
|
|
<option value="@c.ID">
|
|
|
[@c.ID] @c.Name [@c.Address]
|
|
@@ -180,7 +182,7 @@
|
|
|
</p>
|
|
|
@ctrSelected.Name
|
|
|
<br>
|
|
|
- @Blockchain.GetMain().id;
|
|
|
+ @bcMain.id;
|
|
|
<br />
|
|
|
</p>
|
|
|
|
|
@@ -219,6 +221,7 @@
|
|
|
}
|
|
|
@code
|
|
|
{
|
|
|
+ Blockchain bcMain;
|
|
|
AccountModel account;
|
|
|
private Random r = new Random();
|
|
|
private string bcURL = Blockchain.URLdefault;
|
|
@@ -271,7 +274,7 @@
|
|
|
var acc = AccountModel.Find(accountSelected);
|
|
|
if (acc != null)
|
|
|
{
|
|
|
- myWallet = await acc.GetOrCreateActualAddress(Blockchain.GetMain());
|
|
|
+ myWallet = await acc.GetOrCreateActualAddress(bcMain);
|
|
|
return myWallet;
|
|
|
}
|
|
|
}
|
|
@@ -285,7 +288,7 @@
|
|
|
|
|
|
async Task<string> Unlock()
|
|
|
{
|
|
|
- var bc = Blockchain.GetMain();
|
|
|
+ var bc = bcMain;
|
|
|
var ret = await bc.RunFunction("personal_unlockAccount", $"\"{bc.address}\",\"test_Password_212\",0");
|
|
|
//address, passphrase, duration
|
|
|
//{ "method": "personal_unlockAccount", "params": [string, string, number]}
|
|
@@ -294,23 +297,23 @@
|
|
|
|
|
|
async Task ImportERC20()
|
|
|
{
|
|
|
- await Blockchain.GetMain().ImportERC20(tokenContract, myWallet);
|
|
|
+ await bcMain.ImportERC20(tokenContract, myWallet);
|
|
|
//await Blockchain.GetMain().ImportERC20("0x413D9500A675d9b645034aC5f4325BF12ddeb7c1");
|
|
|
}
|
|
|
|
|
|
async Task TransferToken()
|
|
|
{
|
|
|
- await Blockchain.GetMain().TransferToken(Blockchain.GetMain().address, tokenContract, addressTo, tokenAmount);
|
|
|
+ await bcMain.TransferToken(bcMain.address, tokenContract, addressTo, tokenAmount);
|
|
|
}
|
|
|
|
|
|
async Task EstimateGas()
|
|
|
{
|
|
|
- gas = await Blockchain.GetMain().GetEstimatedGasContractAdd(ctrSelected.ByteCode);
|
|
|
+ gas = await bcMain.GetEstimatedGasContractAdd(ctrSelected.ByteCode);
|
|
|
}
|
|
|
|
|
|
async Task deleteContract()
|
|
|
{
|
|
|
- var main = Blockchain.GetMain();
|
|
|
+ var main = bcMain;
|
|
|
if (main != null)
|
|
|
{
|
|
|
main.contracts.Remove(ctrSelected.ID);
|
|
@@ -352,7 +355,7 @@
|
|
|
//function_processed = final + ")";
|
|
|
//sha3 = await GetSHA3(function_processed);
|
|
|
//getFiles();
|
|
|
- function_processed = await Blockchain.GetMain().compileFunction(function1, false);
|
|
|
+ function_processed = await bcMain.compileFunction(function1, false);
|
|
|
|
|
|
if (function1 != "()" && function1 != "")
|
|
|
contractAddDisabled = "";
|
|
@@ -362,7 +365,7 @@
|
|
|
|
|
|
async Task<string> GetSHA3(string code)
|
|
|
{
|
|
|
- var res = await Blockchain.GetMain().GetSHA3(code);
|
|
|
+ var res = await bcMain.GetSHA3(code);
|
|
|
Console.WriteLine($"GetSHA3 {code} {res}");
|
|
|
var ret = res.Substring(2, 8);
|
|
|
return ret;
|
|
@@ -370,7 +373,7 @@
|
|
|
|
|
|
async Task<string> GetSHA3_2()
|
|
|
{
|
|
|
- var res = await Blockchain.GetMain().GetSHA3(sha3);
|
|
|
+ var res = await bcMain.GetSHA3(sha3);
|
|
|
Console.WriteLine($"GetSHA3 {res}");
|
|
|
var ret = res.Substring(2, 8);
|
|
|
return ret;
|
|
@@ -424,9 +427,9 @@
|
|
|
private async Task Transfer50()
|
|
|
{
|
|
|
var acc = AccountModel.Find(accountSelected);
|
|
|
- var bc = Blockchain.GetMain();
|
|
|
+ var bc = bcMain;
|
|
|
var addr = await acc.GetOrCreateActualAddress(bc);
|
|
|
- var res = await bc.SendTransaction(Blockchain.GetMain().address, addr, 50);
|
|
|
+ var res = await bc.SendTransaction(bcMain.address, addr, 50);
|
|
|
}
|
|
|
|
|
|
private async Task GetBalance()
|
|
@@ -437,16 +440,16 @@
|
|
|
var acc = AccountModel.Find(accountSelected);
|
|
|
if (acc != null)
|
|
|
{
|
|
|
- myWallet = await acc.GetOrCreateActualAddress(Blockchain.GetMain());
|
|
|
+ myWallet = await acc.GetOrCreateActualAddress(bcMain);
|
|
|
balance = await acc.GetBalance();
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- myWallet = Blockchain.GetMain().address;
|
|
|
- balance = await Blockchain.GetMain().GetBalance();
|
|
|
+ myWallet = bcMain.address;
|
|
|
+ balance = await bcMain.GetBalance();
|
|
|
}
|
|
|
- await Blockchain.GetMain().GetBalanceToken("0xe5D682717955d6C35d465A3485625C64655a04f4", myWallet);
|
|
|
+ await bcMain.GetBalanceToken("0xe5D682717955d6C35d465A3485625C64655a04f4", myWallet);
|
|
|
}
|
|
|
|
|
|
//private async Task CreateBlockchainAccount(Blockchain bc, string pass)
|
|
@@ -476,12 +479,12 @@
|
|
|
{
|
|
|
if (Blockchain.loaded.Count > 0)
|
|
|
{
|
|
|
- var taddr = await Blockchain.GetMain().AddContract(newname, newcode, bytecode);
|
|
|
+ var taddr = await bcMain.AddContract(newname, newcode, bytecode);
|
|
|
if (taddr.Length > 0 && taddr[0] != "")
|
|
|
{
|
|
|
result = taddr[0].ToString();
|
|
|
//hidereceipt = "visible";
|
|
|
- var caddr = await Blockchain.GetMain().GetReceipt(result, true);
|
|
|
+ var caddr = await bcMain.GetReceipt(result, true);
|
|
|
if (caddr != "")
|
|
|
{
|
|
|
result = "contractAddress: " + caddr;
|
|
@@ -503,21 +506,56 @@
|
|
|
|
|
|
SmartContract GetContract(int id)
|
|
|
{
|
|
|
- if (Blockchain.GetMain().contracts.ContainsKey(id))
|
|
|
- return Blockchain.GetMain().contracts[id];
|
|
|
- else
|
|
|
- return null;
|
|
|
+ if (bcMain != null)
|
|
|
+ {
|
|
|
+ if (bcMain.contracts.ContainsKey(id))
|
|
|
+ return bcMain.contracts[id];
|
|
|
+ }
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
|
{
|
|
|
//Console.WriteLine($"Blazor is {Smart}");
|
|
|
-
|
|
|
- account = AccountModel.Current;
|
|
|
Console.WriteLine($"Blockchains OnInitializedAsync");
|
|
|
+ //account = AppData.CurrentAccount;
|
|
|
+ //var res = await storage.GetAsync<AccountModel>("acc");
|
|
|
+ account = await GetCurrentAcc();
|
|
|
+ //Console.WriteLine($"myFlag {myFlag.Value.Name}");
|
|
|
+
|
|
|
+ Console.WriteLine($"Blockchains account {account}");
|
|
|
+ bcMain = await account.GetSelectedBlockChain();
|
|
|
+ Console.WriteLine($"Blockchains OnInitializedAsync {bcMain}");
|
|
|
await GetBalance();
|
|
|
}
|
|
|
|
|
|
+ private async Task<AccountModel> GetCurrentAcc()
|
|
|
+ {
|
|
|
+ AccountModel account = new();
|
|
|
+
|
|
|
+ var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
|
|
|
+ var user = authState.User;
|
|
|
+
|
|
|
+ if (user.Identity.IsAuthenticated)
|
|
|
+ {
|
|
|
+ var currentUser = await UserManager.GetUserAsync(user);
|
|
|
+ account.UUID = currentUser.Id;
|
|
|
+ //account.Name = currentUser.UserName;
|
|
|
+ //account.Email = currentUser.Email;
|
|
|
+
|
|
|
+ var acc = AccountModel.Find(account.UUID);
|
|
|
+ if (acc != null)
|
|
|
+ account = acc;
|
|
|
+ ///tmp
|
|
|
+
|
|
|
+ //account.AccRole = Role.User;
|
|
|
+ return account;
|
|
|
+ }
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//private async Task GetBlockChain()
|
|
|
//{
|
|
|
// //if (Blockchain.loaded.Count == 0)
|