Exemple #1
0
        public async Task seal_can_recover_address()
        {
            _auRaStepCalculator.CurrentStep.Returns(11);
            _validSealerStrategy.IsValidSealer(Arg.Any <IList <Address> >(), _address, 11).Returns(true);
            var block = Build.A.Block.WithHeader(Build.A.BlockHeader.WithBeneficiary(_address).WithAura(11, null).TestObject).TestObject;

            block = await _auRaSealer.SealBlock(block, CancellationToken.None);

            var ecdsa     = new EthereumEcdsa(ChainId.Morden, LimboLogs.Instance);
            var signature = new Signature(block.Header.AuRaSignature);

            signature.V += Signature.VOffset;
            var recoveredAddress = ecdsa.RecoverAddress(signature, block.Header.CalculateHash(RlpBehaviors.ForSealing));

            recoveredAddress.Should().Be(_address);
        }
Exemple #2
0
        public async Task seal_can_recover_address()
        {
            _auRaStepCalculator.CurrentStep.Returns(11);
            _auRaValidator.IsValidSealer(_address, 11).Returns(true);
            var block = Build.A.Block.WithHeader(Build.A.BlockHeader.WithBeneficiary(_address).WithAura(11, null).TestObject).TestObject;

            block = await _auRaSealer.SealBlock(block, CancellationToken.None);

            var ecdsa     = new EthereumEcdsa(new MordenSpecProvider(), NullLogManager.Instance);
            var signature = new Signature(block.Header.AuRaSignature);

            signature.V += Signature.VOffset;
            var recoveredAddress = ecdsa.RecoverAddress(signature, BlockHeader.CalculateHash(block.Header, RlpBehaviors.ForSealing));

            recoveredAddress.Should().Be(_address);
        }