public void Should_TrimNonceRlpPrefix() { var bytes = "0x88c9a86158ff0cea0e".HexToByteArray(); var result = BlockHeaderRPCFactory.EnsureNonceWithoutRLPSizePrefix(bytes); Assert.True(result.Length == 8); }
public void Should_TrimMixHashRlpPrefix() { var bytes = "0xa0ed5b0ca9b4a8f00aaf9b4b3b9ede7d20b0cab7f085e1e5a51553af9a7886c252".HexToByteArray(); var result = BlockHeaderRPCFactory.EnsureMixHashWithoutRLPSizePrefix(bytes); Assert.True(result.Length == 32); }
//Ignore due to bug in geth 1.9.1 [Fact] public async void ShouldDecodeCliqueAuthor() { if (_ethereumClientIntegrationFixture.Geth) { var web3 = _ethereumClientIntegrationFixture.GetWeb3(); var block = await web3.Eth.Blocks.GetBlockWithTransactionsByNumber.SendRequestAsync(new HexBigInteger(1)); var blockHeader = BlockHeaderRPCFactory.FromRPC(block); var account = new CliqueBlockHeaderRecovery().RecoverCliqueSigner(blockHeader); Assert.True(AccountFactory.Address.IsTheSameAddress(account)); } }
public async void ShouldEncodeDecode() { var web3 = _ethereumClientIntegrationFixture.GetWeb3(); var block = await web3.Eth.Blocks.GetBlockWithTransactionsByNumber.SendRequestAsync(new HexBigInteger(1)); var blockHeader = BlockHeaderRPCFactory.FromRPC(block); var encoded = BlockHeaderEncoder.Current.Encode(blockHeader); var decoded = BlockHeaderEncoder.Current.Decode(encoded); Assert.Equal(blockHeader.StateRoot.ToHex(), decoded.StateRoot.ToHex()); Assert.Equal(blockHeader.LogsBloom.ToHex(), decoded.LogsBloom.ToHex()); Assert.Equal(blockHeader.MixHash.ToHex(), decoded.MixHash.ToHex()); Assert.Equal(blockHeader.ReceiptHash.ToHex(), decoded.ReceiptHash.ToHex()); Assert.Equal(blockHeader.Difficulty, decoded.Difficulty); }