code: func (tx *Transaction) AsMessage(s Signer) (Message, error) {
  	msg := Message{
  		nonce:      tx.data.AccountNonce,
  		gasLimit:   tx.data.GasLimit,
  		gasPrice:   new(big.Int).Set(tx.data.Price),
  		to:         tx.data.Recipient,
  		amount:     tx.data.Amount,
  		data:       tx.data.Payload,
  		checkNonce: true,
  	}
  
  	var err error
  	msg.from, err = Sender(s, tx)
  	return msg, err
  }
docs: // AsMessage returns the transaction as a core.Message.
  //
  // AsMessage requires a signer to derive the sender.
  //
  // XXX Rename message to something less arbitrary?