소스 검색

исправления блокчейна

Rimmon 3 년 전
부모
커밋
3b52143330
4개의 변경된 파일30개의 추가작업 그리고 25개의 파일을 삭제
  1. 25 22
      Models/Blockchain.cs
  2. 2 2
      MySQLConnector.cs
  3. 2 0
      Pages/Blockchains.razor
  4. 1 1
      Shared/MainLayout.razor

+ 25 - 22
Models/Blockchain.cs

@@ -36,16 +36,31 @@ namespace HyperCube.Models
         public string name;
         static Blockchain instance;
 
-        public static void RegisterNetworks()
+        public async static Task RegisterNetworks()
         {
-            Console.WriteLine($"RegisterNetworks");
-            var ethDev = new Blockchain(0, "Ethereum Dev Network", "127.0.0.1", 8545);            
-            var ethRinkeby = new Blockchain(1, "Ethereum Test Network", "127.0.0.1", 8666);
-            ethDev.Initialize();
-            ethRinkeby.Initialize();
+            if (!blockChainsInitialized)
+            {
+                Console.WriteLine($"RegisterNetworks");
+                var ethDev = new Blockchain(0, "Ethereum Dev Network", "127.0.0.1", 8545);
+                var ethRinkeby = new Blockchain(1, "Ethereum Test Network", "127.0.0.1", 8666);
+                await ethDev.Initialize();
+                await ethRinkeby.Initialize();
 
+                blockChainsInitialized = true;
+            }
+        }
+
+        public async Task<string> Initialize()
+        {
+            if (!loaded.ContainsKey(id))
+                loaded.Add(id, this);
+            Console.WriteLine($"Initialize: {name},  loaded blockchains " + loaded.Count);
+            string addr = await ListAccounts();
 
-            blockChainsInitialized = true;
+            await LoadContracts();
+            Console.WriteLine("LoadContracts count " + contracts.Count);
+            Console.WriteLine("connected " + Connected);
+            return $"{name} {url}:{port}";
         }
 
         //public static Blockchain GetInstance()
@@ -100,9 +115,10 @@ namespace HyperCube.Models
 
         public static Blockchain GetMain()
         {
+            Console.WriteLine("GetMain blockchain_selected " + AccountModel.GetCurrent().blockchain_selected);
             try
             {
-                if (loaded.Count > AccountModel.GetCurrent().blockchain_selected + 1)
+                if (loaded.Count > AccountModel.GetCurrent().blockchain_selected)
                     return loaded[AccountModel.GetCurrent().blockchain_selected];
                 else
                     Console.WriteLine($"Error: blockchains loaded {loaded.Count}");                         
@@ -114,19 +130,6 @@ namespace HyperCube.Models
             return null;
         }
 
-        public async Task<string> Initialize()
-        {            
-            if (!loaded.ContainsKey(id))
-                loaded.Add(AccountModel.GetCurrent().blockchain_selected, this);
-            Console.WriteLine($"Initialize: {name }loaded blockchains " + loaded.Count);
-            string addr = await ListAccounts();            
-
-            await LoadContracts();
-            Console.WriteLine("LoadContracts count " + contracts.Count);
-            Console.WriteLine("connected " + Connected);
-            return $"{name} {url}:{port}";
-        }
-
         public async Task<string> ListAccounts()
         {
             Console.WriteLine("ListAccounts");
@@ -154,7 +157,7 @@ namespace HyperCube.Models
         public async Task LoadContracts()
         {
             MySQLConnector dbCon = MySQLConnector.Instance();
-            contracts = await dbCon.SQLSelectContracts();
+            contracts = await dbCon.SQLSelectContracts(id);
             foreach (var contract in contracts.Values)
             {
                 await contract.LoadFunction();

+ 2 - 2
MySQLConnector.cs

@@ -94,9 +94,9 @@ namespace HyperCube
             return null;
         }
 
-        public async Task<Dictionary<int, SmartContract>> SQLSelectContracts()
+        public async Task<Dictionary<int, SmartContract>> SQLSelectContracts(int blockchainId)
         {
-            string sql = "select * from smart_contracts";
+            string sql = "select * from smart_contracts where blockchain_id ="+blockchainId;
             Dictionary<int, SmartContract> contracts = new();
 
             bool connected = IsConnect();

+ 2 - 0
Pages/Blockchains.razor

@@ -114,6 +114,8 @@
     @ctrSelected.Code
 </p>
 @ctrSelected.Name
+<br>
+@Blockchain.GetMain().id;
 <br />
     </p>
 

+ 1 - 1
Shared/MainLayout.razor

@@ -48,7 +48,7 @@
             AccountModel.Current = await GetCurrentAcc();
             //await Blockchain.GetInstance().Initialize();
             Console.WriteLine("RegisterNetworks");
-            Blockchain.RegisterNetworks();
+            await Blockchain.RegisterNetworks();
             if (Blockchain.Connected != "" && Blockchain.Connected != "none")
             {
                 connected = true;