Procházet zdrojové kódy

заготовка запуска функции

Rimmon před 3 roky
rodič
revize
101547f194
2 změnil soubory, kde provedl 21 přidání a 2 odebrání
  1. 3 0
      Models/Blockchain.cs
  2. 18 2
      Models/SmartContract.cs

+ 3 - 0
Models/Blockchain.cs

@@ -6,6 +6,8 @@ using System.Threading.Tasks;
 using Newtonsoft.Json;
 using Console = HyperCube.Utils.AdvConsole;
 
+//0xe5D682717955d6C35d465A3485625C64655a04f4 - HCB in rinkeby
+
 namespace HyperCube.Models
 {
     public class Blockchain
@@ -277,6 +279,7 @@ namespace HyperCube.Models
             return answer;
         }
 
+        
             //{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{ "from":"0xD81eeE6b39d9556c3067A3551A3FB2882b92F327", "to":"0x119b58faddcdbc09cafcd272530aa079cec10004", "gas":"0x31b2ef", "data":"0x11111111"}], "id":1}
         public async Task<string> RunContractWrite(string contractAddress, string data, string gas, string value)
         {

+ 18 - 2
Models/SmartContract.cs

@@ -60,9 +60,25 @@ namespace HyperCube.Models
         public SmartContract()
         { }
 
-        public Task Run(string weiValue = "0x0")
+        public async Task<string> Run(AccountModel initiator, string weiValue = "0x0")
         {
-            return null;
+            var bc = Blockchain.Find(blockchainId);
+            if (bc != null)
+            {
+                var initiator_address = await initiator.GetOrCreateActualAddress(bc);
+                initiator_address = Blockchain.zerofill(initiator_address, 64, true);
+
+                //Console.WriteLine($"VerifyContract params article_value  {article_value} edits {edits} verifier {AccountModel.Current.Name} verifier_address: {verifier_address} initiator {initiator.Name} initiator_address: {initiator_address}");
+                //function verify( address payable verifier, address payable initiator, int article_value, int verify_complexity) public returns (uint vReward, uint iReward) 
+                var paramstring = "0x" + functionCompiledHeader;
+                //Console.WriteLine($"VerifyContract Run {initiator.Name} params {paramstring}");
+                var res = await bc.RunContractWrite(Address, $"{paramstring}", Gas, "0x100");
+                //Console.WriteLine($"VerifyContract transactionId res {res}");
+                var receipt = await bc.GetReceipt(res);
+                //Console.WriteLine("VerifyContract receipt " + receipt);
+                return res;
+            }
+            return "none";
         }
 
         public SmartContract(string name, string code, string bytecode, int blockchain_id, string gas)