public async Task GetAbiTest(string accountName) { var args = new GetAbiParams { AccountName = accountName }; var resp = await Api.GetAbiAsync(args, CancellationToken).ConfigureAwait(false); TestPropetries(resp); }
public async Task GenerateAsync(OperationManager api, string contractName, string @namespace, string outDir, HashSet <string> actionFilter, CancellationToken token) { var args = new GetAbiParams() { AccountName = contractName }; var resp = await api.GetAbiAsync(args, token).ConfigureAwait(false); if (resp.IsError) { throw resp.Exception; } var abi = resp.Result.Abi; var contractPath = InitDirs(outDir, contractName); var structNamespace = $"{@namespace}.{contractName.ToTitleCase()}.Structs"; var actionsNamespace = $"{@namespace}.{contractName.ToTitleCase()}.Actions"; var generator = new ContractCodeGenerator(); HashSet <string> stuctFilter = new HashSet <string>(); foreach (var action in abi.Actions) { if (actionFilter != null && !actionFilter.Contains(action.Name)) { continue; } generator.ActionToClass($@"{contractPath}\Actions\", actionsNamespace, structNamespace, contractName, action, abi); AddAllRef(abi, stuctFilter, action.Type); } foreach (var itm in abi.Structs) { if (!stuctFilter.Contains(itm.Name)) { continue; } generator.StructToClass($@"{contractPath}\Structs\", structNamespace, itm, abi); } }
/// <summary> /// /// </summary> /// <param name="args">name of account to retrieve ABI for</param> /// <param name="token"></param> /// <returns></returns> public async Task <OperationResult <GetAbiResults> > GetAbiAsync(GetAbiParams args, CancellationToken token) { var endpoint = $"{ChainUrl}/v1/chain/get_abi"; return(await CustomPutRequestAsync <GetAbiResults>(endpoint, args, token).ConfigureAwait(false)); }