core: allow to use state root in header

This commit is contained in:
Evgenii Stratonikov 2020-11-17 15:57:50 +03:00
parent 3025b42c65
commit 1869d6d460
37 changed files with 349 additions and 124 deletions

View file

@ -12,6 +12,8 @@ type prepareRequest struct {
timestamp uint64
nonce uint64
transactionHashes []util.Uint256
stateRootEnabled bool
stateRoot util.Uint256
}
var _ payload.PrepareRequest = (*prepareRequest)(nil)
@ -21,6 +23,9 @@ func (p *prepareRequest) EncodeBinary(w *io.BinWriter) {
w.WriteU64LE(p.timestamp)
w.WriteU64LE(p.nonce)
w.WriteArray(p.transactionHashes)
if p.stateRootEnabled {
w.WriteBytes(p.stateRoot[:])
}
}
// DecodeBinary implements io.Serializable interface.
@ -28,6 +33,9 @@ func (p *prepareRequest) DecodeBinary(r *io.BinReader) {
p.timestamp = r.ReadU64LE()
p.nonce = r.ReadU64LE()
r.ReadArray(&p.transactionHashes, block.MaxTransactionsPerBlock)
if p.stateRootEnabled {
r.ReadBytes(p.stateRoot[:])
}
}
// Timestamp implements payload.PrepareRequest interface.