Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 /// <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));
 }