-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
Steps to Reproduce
- Connect with Coinbase Wallet on a dApp using AppKit v1.8.x
- The
baseAccountconnector is used (due to migration in PR feat: base account #5269) - User connects with a Smart Wallet (ERC-4337)
- Call
sendTransaction()via wagmi'sWalletClient - The connector returns a 65-byte ECDSA signature (packed
r + s + v) instead of a 32-byte transaction hash - Passing this to
waitForTransactionReceipt()fails with:
InvalidParamsRpcError: invalid argument 0: hex string has length 130, want 64 for common.Hash
Summary
Related to #5494 — the migration from coinbaseWallet to baseAccount connector (PR #5269) forces all Coinbase users through the Smart Wallet (ERC-4337) path.
Beyond the coinbasePreference option being ignored (as reported in #5494), this also causes a functional regression: sendTransaction() returns a raw signature instead of a transaction hash.
Example response from sendTransaction() (65 bytes / 130 hex chars):
0x03fdfd595361b21b53574b61e8dec99b1840150e1a38440f59b74fef209bb7c1
4e58f33b45a03c90f19685177b6d91cf1a5ad5f5be5408f9f932301f7a4a35b01b
Last byte 0x1b = 27 = v recovery byte, confirming this is a packed ECDSA signature.
Impact on our production dApp: 129 occurrences, 24 users affected over the last 10 days. Transactions are signed on-chain but the dApp cannot track their confirmation — users see an error even though the tx may have succeeded.
List of related npm package versions
@reown/appkit: 1.8.17
@reown/appkit-adapter-wagmi: 1.8.17
wagmi: 2.19.5
viem: 2.45.0
Node.js Version
v22.x
Package Manager
pnpm@10.6.3