예제 #1
0
        public void Proposer_slashing_there_and_back()
        {
            BeaconBlockHeader header1 = new BeaconBlockHeader();

            header1.Slot       = new Slot(1);
            header1.ParentRoot = Sha256.OfAnEmptyString;
            header1.BodyRoot   = Sha256.OfAnEmptyString;
            header1.StateRoot  = Sha256.OfAnEmptyString;
            header1.Signature  = BlsSignature.TestSig1;

            BeaconBlockHeader header2 = new BeaconBlockHeader();

            header2.Slot       = new Slot(2);
            header2.ParentRoot = Sha256.OfAnEmptyString;
            header2.BodyRoot   = Sha256.OfAnEmptyString;
            header2.StateRoot  = Sha256.OfAnEmptyString;
            header2.Signature  = BlsSignature.TestSig1;

            ProposerSlashing container = new ProposerSlashing();

            container.ProposerIndex = new ValidatorIndex(1);
            container.Header1       = header1;
            container.Header2       = header2;

            Span <byte> encoded = new byte[ProposerSlashing.SszLength];

            Ssz.Encode(encoded, container);
            ProposerSlashing?decoded = Ssz.DecodeProposerSlashing(encoded);

            Assert.AreEqual(container, decoded);

            Merkle.Ize(out UInt256 root, container);
        }
예제 #2
0
        public void Proposer_slashing_there_and_back()
        {
            BeaconBlockHeader header1 = new BeaconBlockHeader(
                new Slot(1),
                Sha256.RootOfAnEmptyString,
                Sha256.RootOfAnEmptyString,
                Sha256.RootOfAnEmptyString);

            BeaconBlockHeader header2 = new BeaconBlockHeader(
                new Slot(2),
                Sha256.RootOfAnEmptyString,
                Sha256.RootOfAnEmptyString,
                Sha256.RootOfAnEmptyString);

            ProposerSlashing container = new ProposerSlashing(
                new ValidatorIndex(1),
                new SignedBeaconBlockHeader(header1, TestSig1),
                new SignedBeaconBlockHeader(header2, TestSig1));

            Span <byte> encoded = new byte[Ssz.ProposerSlashingLength];

            Ssz.Encode(encoded, container);
            ProposerSlashing?decoded = Ssz.DecodeProposerSlashing(encoded);

            Assert.AreEqual(container, decoded);

            Merkle.Ize(out UInt256 root, container);
        }