code: func (b *Block) WithBody(transactions []*Transaction, uncles []*Header) *Block {
  	block := &Block{
  		header:       CopyHeader(b.header),
  		transactions: make([]*Transaction, len(transactions)),
  		uncles:       make([]*Header, len(uncles)),
  	}
  	copy(block.transactions, transactions)
  	for i := range uncles {
  		block.uncles[i] = CopyHeader(uncles[i])
  	}
  	return block
  }
docs: // WithBody returns a new block with the given transaction and uncle contents.