Browse Source

смарты обновляю

Rimmon 4 years ago
parent
commit
e504f002f4
4 changed files with 13 additions and 10 deletions
  1. 6 5
      Models/Blockchain.cs
  2. 1 0
      Models/SmartContract.cs
  3. 1 0
      MySQLConnector.cs
  4. 5 5
      Pages/Blockchains.razor

+ 6 - 5
Models/Blockchain.cs

@@ -10,7 +10,7 @@ namespace HyperCube.Models
     public class Blockchain
     public class Blockchain
     {
     {
         public static bool newData = false;
         public static bool newData = false;
-        public static List<Blockchain> loaded = new();
+        public static Dictionary<string, Blockchain> loaded = new();
         public Dictionary<int, SmartContract> contracts = new();
         public Dictionary<int, SmartContract> contracts = new();
         public int port;
         public int port;
         public string url;
         public string url;
@@ -38,9 +38,9 @@ namespace HyperCube.Models
 
 
         public async Task<string> Initialize()
         public async Task<string> Initialize()
         {
         {
-            await ListAccounts();
-            if (!loaded.Contains(this))
-                loaded.Add(this);
+            string addr = await ListAccounts();
+            if (!loaded.ContainsKey(addr))
+                loaded.Add(addr, this);
             Console.WriteLine("loaded blockchains " + loaded.Count);
             Console.WriteLine("loaded blockchains " + loaded.Count);
 
 
             LoadContracts();
             LoadContracts();
@@ -124,7 +124,7 @@ namespace HyperCube.Models
             return res;
             return res;
         }
         }
 
 
-        public async Task ListAccounts()
+        public async Task<string> ListAccounts()
         {
         {
             string answer = "no";
             string answer = "no";
             //{ "jsonrpc":"2.0","method":"eth_getCode","params":["0x938cae6f6c21ed9d55196e96ef880f562e530553", "latest" ],"id":1}
             //{ "jsonrpc":"2.0","method":"eth_getCode","params":["0x938cae6f6c21ed9d55196e96ef880f562e530553", "latest" ],"id":1}
@@ -142,6 +142,7 @@ namespace HyperCube.Models
             Console.WriteLine("Json addr " + jsonDe.result[0]);
             Console.WriteLine("Json addr " + jsonDe.result[0]);
             var methodName = (string)jsonDe.name;
             var methodName = (string)jsonDe.name;
             newData = true;
             newData = true;
+            return address;
         }
         }
 
 
         public string GetAddress()
         public string GetAddress()

+ 1 - 0
Models/SmartContract.cs

@@ -10,5 +10,6 @@ namespace HyperCube.Models
         public int id;
         public int id;
         public string Code;
         public string Code;
         public string ByteCode;
         public string ByteCode;
+        public string Name;
     }
     }
 }
 }

+ 1 - 0
MySQLConnector.cs

@@ -75,6 +75,7 @@ namespace HyperCube
                     contract.id = rdr.GetInt32(0);
                     contract.id = rdr.GetInt32(0);
                     contract.Code = rdr.GetString(1);
                     contract.Code = rdr.GetString(1);
                     contract.ByteCode = rdr.GetString(2);
                     contract.ByteCode = rdr.GetString(2);
+                    contract.Name = rdr.GetString(3);
                     if (!contracts.ContainsKey(contract.id))
                     if (!contracts.ContainsKey(contract.id))
                         contracts.Add(contract.id, contract);
                         contracts.Add(contract.id, contract);
                 }
                 }

+ 5 - 5
Pages/Blockchains.razor

@@ -13,7 +13,7 @@
 
 
     @if (Blockchain.newData)
     @if (Blockchain.newData)
     {
     {
-        @foreach (var bc in Blockchain.loaded)
+        @foreach (var bc in Blockchain.loaded.Values)
         {
         {
         <p>
         <p>
             <b>@bc.url:@bc.port
             <b>@bc.url:@bc.port
@@ -54,7 +54,7 @@
     <select>
     <select>
         @if (Blockchain.loaded.Count > 0)
         @if (Blockchain.loaded.Count > 0)
         {
         {
-            @foreach (var c in Blockchain.loaded[0].contracts.Values)
+            @foreach (var c in Blockchain.loaded.Last().Value.contracts.Values)
             {
             {
                 <option>
                 <option>
                     ID: @c.id Name:
                     ID: @c.id Name:
@@ -86,17 +86,17 @@
         {
         {
             if (Blockchain.loaded.Count > 0)
             if (Blockchain.loaded.Count > 0)
             {
             {
-                var taddr = await Blockchain.loaded[0].AddContract(bytecode);
+                var taddr = await Blockchain.loaded.Last().Value.AddContract(bytecode);
                 if (taddr != "")
                 if (taddr != "")
                 {
                 {
                     result = taddr;
                     result = taddr;
                     //hidereceipt = "visible";
                     //hidereceipt = "visible";
-                    var caddr = await Blockchain.loaded[0].GetReceipt(result);
+                    var caddr = await Blockchain.loaded.Last().Value.GetReceipt(result);
                     if (caddr != "")
                     if (caddr != "")
                     {
                     {
                         result = "contractAddress: "+caddr;
                         result = "contractAddress: "+caddr;
                         contractAddress = caddr;
                         contractAddress = caddr;
-                        var run = await Blockchain.loaded[0].RunContractWrite(contractAddress, "0x11111111");
+                        var run = await Blockchain.loaded.Last().Value.RunContractWrite(contractAddress, "0x11111111");
                         result = "run: " + run;
                         result = "run: " + run;
                     }
                     }
                 }
                 }