Summary
Outside the wallet-react-kit UI there is no transaction-confirmation step. The provider signs and submits every transaction immediately, with no opportunity for the user to review or reject it.
Details
In @zerodev/wallet-react/dist/_esm/provider.js, eth_sendTransaction / wallet_sendTransaction calls kernelClient.sendTransaction(...) directly:
case 'wallet_sendTransaction':
case 'eth_sendTransaction': {
// ...
return await kernelClient.sendTransaction({ calls: [{ to, value, data }] })
}
There is no pending-request queue, no approve/reject gate, no event emitted before signing. The kit's <SignatureRequest> + usePendingRequest are the only confirmation layer, and they live in wallet-react-kit, not the core connector.
A team that uses wallet-react without the kit (to build its own UI) therefore gets zero built-in "approve this transaction" step — every useWriteContract / useSendTransaction fires silently and irreversibly.
Reproduction
- Configure the connector from
@zerodev/wallet-react (no kit).
- Call any
useWriteContract().writeContract({...}).
- Observe the transaction is signed and submitted with no prompt.
Ask
Expose a headless confirmation primitive in wallet-react (a pending-request queue + approve/reject API, the same mechanism the kit's usePendingRequest builds on), or an opt-in mode: 'prompt' on the core connector. Integrators that don't use the kit should still be able to gate signing without re-implementing it.
Environment
@zerodev/wallet-react@0.0.1-alpha.26, wagmi 2.19.5, mode 7702.
Summary
Outside the
wallet-react-kitUI there is no transaction-confirmation step. The provider signs and submits every transaction immediately, with no opportunity for the user to review or reject it.Details
In
@zerodev/wallet-react/dist/_esm/provider.js,eth_sendTransaction/wallet_sendTransactioncallskernelClient.sendTransaction(...)directly:There is no pending-request queue, no approve/reject gate, no event emitted before signing. The kit's
<SignatureRequest>+usePendingRequestare the only confirmation layer, and they live inwallet-react-kit, not the core connector.A team that uses
wallet-reactwithout the kit (to build its own UI) therefore gets zero built-in "approve this transaction" step — everyuseWriteContract/useSendTransactionfires silently and irreversibly.Reproduction
@zerodev/wallet-react(no kit).useWriteContract().writeContract({...}).Ask
Expose a headless confirmation primitive in
wallet-react(a pending-request queue + approve/reject API, the same mechanism the kit'susePendingRequestbuilds on), or an opt-inmode: 'prompt'on the core connector. Integrators that don't use the kit should still be able to gate signing without re-implementing it.Environment
@zerodev/wallet-react@0.0.1-alpha.26, wagmi2.19.5, mode7702.