public SmartContractMethodsModel GetContractMethods(RequestKeyApiModel model) { var response = new SmartContractMethodsModel(); using (var client = GetClientByModel(model)) { var publicKeyByte = SimpleBase.Base58.Bitcoin.Decode(model.PublicKey); var preResult = client.SmartContractGet(publicKeyByte.ToArray()); if (preResult.SmartContract != null && preResult.SmartContract.SmartContractDeploy != null) { //response.SourceString = result.SmartContract.SmartContractDeploy.SourceCode; var finalResult = client.ContractAllMethodsGet(preResult.SmartContract.SmartContractDeploy.ByteCodeObjects); foreach (var met in finalResult.Methods) { var method = new ContractMethod(); method.Name = met.Name; method.ReturnType = met.ReturnType; foreach (var arg in met.Arguments) { var ar = new ModelMethodArgument(); ar.Name = arg.Name; ar.Type = arg.Type; foreach (var ann in arg.Annotations) { var an = new ModelAnnotation(); an.Name = ann.Name; an.Arguments = ann.Arguments; ar.Annotations.Add(an); } method.Arguments.Add(ar); } foreach (var ann in met.Annotations) { var an = new ModelAnnotation(); an.Name = ann.Name; an.Arguments = ann.Arguments; method.Annotations.Add(an); } response.Methods.Add(method); } } } return(response); }
public ActionResult <SmartContractMethodsModel> GetContractMethods(RequestKeyApiModel model) { InitAuthKey(model); SmartContractMethodsModel res; try { res = ServiceProvider.GetService <MonitorService>().GetContractMethods(model); res.Success = true; } catch (Exception ex) { res = new SmartContractMethodsModel(); res.Success = false; res.Message = ex.Message; } return(Ok(res)); }