Browse Source

добавление функции с контрактом

Rimmon 4 năm trước cách đây
mục cha
commit
e485345305
4 tập tin đã thay đổi với 252 bổ sung230 xóa
  1. 2 2
      Models/Blockchain.cs
  2. 14 4
      Models/SmartContract.cs
  3. 235 222
      Pages/Blockchains.razor
  4. 1 2
      Pages/DocEdit.razor

+ 2 - 2
Models/Blockchain.cs

@@ -166,7 +166,7 @@ namespace HyperCube.Models
 
         }
 
-        public async Task<string[]> AddContract(string name, string code, string bytecode)
+        public async Task<object[]> AddContract(string name, string code, string bytecode)
         {
             int id = (int)MySQLConnector.Instance().SQLInsert($"insert into smart_contracts (code, bytecode, name, date_add) values ('{code}','{bytecode}','{name}',NOW())");
 
@@ -181,7 +181,7 @@ namespace HyperCube.Models
             SmartContract newctr = new SmartContract(id, name, code, bytecode);
             contracts.Add(id, newctr);
             contractNames.Add(name, newctr);
-            return new string[]{ res, id.ToString()};
+            return new object[]{ res, newctr };
         }
 
         public async Task<string> ListAccounts()

+ 14 - 4
Models/SmartContract.cs

@@ -42,14 +42,24 @@ namespace HyperCube.Models
             Code = code;
             ByteCode = bytecode;
         }
+
+        public async Task<long> AddFunction(string name_with_args, string compiled_header)
+        {
+            return MySQLConnector.Instance().SQLInsert($"insert into functions (name_with_args, contract_id, compiled_header) values ('{name_with_args}',{ID},'{compiled_header}')");
+        }
     }
 
     public class VerifyContract : SmartContract
     {
-        public async Task Run(AccountModel initiator, AccountModel verifier, ArticleModel newArticle, string weiValue = "0x0")
-        {            
-            Console.WriteLine($"VerifyContract Run {initiator.Name} {newArticle}");
-            var res = Blockchain.GetMain().RunContractWrite(Address, "0x11111111");
+        public async Task Run(ArticleModel newArticle, string weiValue = "0x0")
+        {
+            var uuid = await newArticle.GetInitiatorUUID();
+            var initiator = AccountModel.Find(uuid);
+            if (initiator != null)
+            {
+                Console.WriteLine($"VerifyContract Run {initiator.Name} {newArticle}");
+                var res = Blockchain.GetMain().RunContractWrite(Address, "0x11111111");
+            }
         }
     }
 }

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 235 - 222
Pages/Blockchains.razor


+ 1 - 2
Pages/DocEdit.razor

@@ -96,8 +96,7 @@
             VerifyContract verifyContract = SmartContract.Find("Verify") as VerifyContract;
             if (verifyContract != null)
             {
-                var initiator = AccountModel.Find("valafar@mail.ru");
-                await verifyContract.Run(initiator, AccountModel.Current, articleModel);
+                await verifyContract.Run(articleModel);
             }
         }
         catch (Exception e)