func (bg *BlockGenerator) NextBlock(simulationResults [][]byte) *common.Block {
	block := ConstructBlock(bg.t, bg.blockNum, bg.previousHash, simulationResults, bg.signTxs)
	bg.blockNum++
	bg.previousHash = block.Header.Hash()
	return block
}
NextBlock constructs next block in sequence that includes a number of transactions - one per simulationResults
package testutil
import (
	"testing"
	"github.com/golang/protobuf/proto"
	"github.com/inklabsfoundation/inkchain/common/configtx/test"
	"github.com/inklabsfoundation/inkchain/common/util"
	lutils "github.com/inklabsfoundation/inkchain/core/ledger/util"
	"github.com/inklabsfoundation/inkchain/protos/common"
	pb "github.com/inklabsfoundation/inkchain/protos/peer"
	ptestutils "github.com/inklabsfoundation/inkchain/protos/testutils"
	"github.com/inklabsfoundation/inkchain/protos/utils"
)
type BlockGenerator struct {
	blockNum     uint64
	previousHash []byte
	signTxs      bool
	t            *testing.T
}
func NewBlockGenerator(t *testing.T, ledgerID string, signTxs bool) (*BlockGenerator, *common.Block) {
	gb, err := test.MakeGenesisBlock(ledgerID)
	AssertNoError(t, err, "")
	gb.Metadata.Metadata[common.BlockMetadataIndex_TRANSACTIONS_FILTER] = lutils.NewTxValidationFlags(len(gb.Data.Data))
	return &BlockGenerator{1, gb.GetHeader().Hash(), signTxs, t}, gb
}