private static async Task RunBlockCallsAsync(CancellationToken cancellationToken) { using var client = new SubstrateClient(new Uri(Websocketurl)); client.RegisterTypeConverter(new GenericTypeConverter <MogwaiStruct>()); await client.ConnectAsync(cancellationToken); var systemName = await client.System.NameAsync(cancellationToken); var systemVersion = await client.System.VersionAsync(cancellationToken); var systemChain = await client.System.ChainAsync(cancellationToken); Console.WriteLine($"Connected to System: {systemName} Chain: {systemChain} Version: {systemVersion}."); // 544133 CreateMogwai(); for (uint i = 0; i < 10; i++) { var blockNumber = new BlockNumber(); blockNumber.Create(i); Console.WriteLine(blockNumber.Encode()); Console.WriteLine(Utils.Bytes2HexString(blockNumber.Encode())); var blockHash = await client.Chain.GetBlockHashAsync(blockNumber, cancellationToken); //var block = await client.Chain.GetBlockAsync(blockHash, cancellationToken); // Print result //Console.WriteLine($"{i} --> {block.Block.Extrinsics.Length}"); Console.WriteLine($"{i} --> {blockHash.Value}"); } //Console.WriteLine(client.MetaData.Serialize()); Console.ReadKey(); // Close connection await client.CloseAsync(cancellationToken); }
/// <summary> Gets block hash asynchronous. </summary> /// <remarks> 19.09.2020. </remarks> /// <param name="blockNumber"> The block number. </param> /// <param name="token"> A token that allows processing to be cancelled. </param> /// <returns> The block hash. </returns> public async Task <Hash> GetBlockHashAsync(BlockNumber blockNumber, CancellationToken token) { return(await _client.InvokeAsync <Hash>("chain_getBlockHash", new object[] { Utils.Bytes2HexString(blockNumber.Encode()) }, token)); }