コード例 #1
0
ファイル: ChainApiTest.cs プロジェクト: wymoon2690/Ditch
        public async Task GetAbiTest(string accountName)
        {
            var args = new GetAbiParams
            {
                AccountName = accountName
            };

            var resp = await Api.GetAbiAsync(args, CancellationToken).ConfigureAwait(false);

            TestPropetries(resp);
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        /// <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));
        }