code: func (w *keystoreWallet) SignTx(account accounts.Account, tx *types.Transaction, chainID *big.Int) (*types.Transaction, error) {
  	// Make sure the requested account is contained within
  	if !w.Contains(account) {
  		return nil, accounts.ErrUnknownAccount
  	}
  	// Account seems valid, request the keystore to sign
  	return w.keystore.SignTx(account, tx, chainID)
  }
docs: // SignTx implements accounts.Wallet, attempting to sign the given transaction
  // with the given account. If the wallet does not wrap this particular account,
  // an error is returned to avoid account leakage (even though in theory we may
  // be able to sign via our shared keystore backend).