示例#1
0
        public async Task <List <BlockInfoOfNodeResponse> > GetBlockOfNodes(List <ProducerNodeConfig> configs)
        {
            var tasks = new List <Task>();
            var list  = new ConcurrentBag <BlockInfoOfNodeResponse>();

            foreach (var config in configs)
            {
                tasks.Add(Task.Run(async() =>
                {
                    var client = new Ngk(new ChainConfigurator
                    {
                        HttpEndpoint  = config.HttpAddress,
                        ChainId       = NgkConfig.ChainId,
                        ExpireSeconds = config.TimeOut
                    });
                    var info = await client.GetInfo();
                    list.Add(new BlockInfoOfNodeResponse
                    {
                        Owner = config.Owner,
                        Block = info
                    });
                }));
            }

            Task.WaitAll(tasks.ToArray());
            return(list.ToList());
        }
示例#2
0
        protected BaseClient(IOptions <NgkConfig> options)
        {
            NgkConfig       = options.Value;
            Node            = NgkConfig.Nodes.FirstOrDefault();
            NgkConfigurator = new ChainConfigurator
            {
                HttpEndpoint  = Node.HttpAddress,
                ChainId       = NgkConfig.ChainId,
                ExpireSeconds = Node.TimeOut
            };

            Client = new Ngk(NgkConfigurator);
        }