public LedgerEntity(LedgerHash hash, LedgerLight ledger, LedgerMerkleRootHash merkleRootHash, byte[] raw)
 {
     Hash           = hash;
     Ledger         = ledger;
     MerkleRootHash = merkleRootHash;
     Raw            = raw;
 }
Example #2
0
 public void Write(LedgerLight ledger)
 {
     Write(ledger.Height);
     Write(ledger.Timestamp);
     Write(ledger.Lastledger.Bytes);
     stream.WriteByte(ledger.Version.VersionNumber);
 }
Example #3
0
            private SignedLedger GetLedger()
            {
                var light = new LedgerLight(
                    ledgerService.LedgerManager.GetNextHeight(),
                    DateTime.Now.ToUnixTimestamp() + 1, // TODO ? ledgerService.LedgerManager.GetLedgerBeginTime() + 10,
                    ledgerService.LedgerManager.GetLastLedgerHash(),
                    ProtocolVersion.CURRENT_VERSION);

                var block = Block.CreateBlock(light.Height, pendingTransactions);

                var poststate = new PostStateHolder(ledgerService.LedgerManager.LedgerState, ledgerService.LedgerManager.GetNextHeight());

                foreach (var transaction in pendingTransactions)
                {
                    if (!poststate.ProcessTransaction(transaction))
                    {
                        return(null);
                    }
                }

                var finalized = poststate.Finalize(light.Version);

                var ledger = new Ledger(light, block, ledgerService.LedgerManager.GetMerkleRootHash(finalized, light.Version));
                var signed = new SignedLedger(ledger);

                validator.SignLedger(signed, NodeConfiguration.GetNetwork());

                return(signed);
            }
Example #4
0
        protected override LedgerEntity ToItem(ledger entity)
        {
            var ledger = new LedgerLight(entity.height, entity.timestamp, new LedgerHash(entity.previous_hash), new ProtocolVersion(entity.version));

            return(new LedgerEntity(new LedgerHash(entity.hash), ledger, new LedgerMerkleRootHash(entity.merkle_root_hash), entity.raw));
        }