code: func SignTx(tx *Transaction, s Signer, prv *ecdsa.PrivateKey) (*Transaction, error) {
  	h := s.Hash(tx)
  	sig, err := crypto.Sign(h[:], prv)
  	if err != nil {
  		return nil, err
  	}
  	return tx.WithSignature(s, sig)
  }
docs: // SignTx signs the transaction using the given signer and private key