code: func (b *BlockGen) SetCoinbase(addr common.Address) {
  	if b.gasPool != nil {
  		if len(b.txs) > 0 {
  			panic("coinbase must be set before adding transactions")
  		}
  		panic("coinbase can only be set once")
  	}
  	b.header.Coinbase = addr
  	b.gasPool = new(GasPool).AddGas(b.header.GasLimit)
  }
docs: // SetCoinbase sets the coinbase of the generated block.
  // It can be called at most once.