github.com/ava-labs/avalanchego@v1.11.11/vms/proposervm/summary/build.go (about)

     1  // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved.
     2  // See the file LICENSE for licensing terms.
     3  
     4  package summary
     5  
     6  import (
     7  	"fmt"
     8  
     9  	"github.com/ava-labs/avalanchego/utils/hashing"
    10  )
    11  
    12  func Build(
    13  	forkHeight uint64,
    14  	block []byte,
    15  	coreSummary []byte,
    16  ) (StateSummary, error) {
    17  	summary := stateSummary{
    18  		Height:       forkHeight,
    19  		Block:        block,
    20  		InnerSummary: coreSummary,
    21  	}
    22  
    23  	bytes, err := Codec.Marshal(CodecVersion, &summary)
    24  	if err != nil {
    25  		return nil, fmt.Errorf("cannot marshal proposer summary due to: %w", err)
    26  	}
    27  
    28  	summary.id = hashing.ComputeHash256Array(bytes)
    29  	summary.bytes = bytes
    30  	return &summary, nil
    31  }