Tutorial issues: wrong default EntryPoint address and incorrect viem destructuring
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 68/100
- Issue type
- Documentation
- Clarity
- Clearly specified
- Activity status
- Quiet
- Tech stack
- solidity, typescript
- Domain
- blockchain, documentation
Research direction
Open the webauthn smart accounts tutorial and locate the AccountWebAuthn example and the predictAddress call. Confirm the EntryPoint version used by the tutorial, add the documented override, and use the single address return value without array destructuring; the tutorial should then match its stated address and avoid the AA23 failure.
Written by the indexing model from the issue text.
Description
Tutorial: https://docs.openzeppelin.com/contracts/5.x/learn/webauthn-smart-accounts
Issue 1: Default entryPoint() doesn't match the tutorial's EntryPoint address
Account.sol defaults to ENTRYPOINT_V09 (0x433709009B8330FDa32311DF1C2AFA402eD8D009), but the tutorial uses ENTRYPOINT_V08 (0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108). This mismatch causes validateUserOp to revert with AA23 because the onlyEntryPoint check fails.
The fix is to add this override to AccountWebAuthn:
function entryPoint() public view virtual override returns (IEntryPoint) {
return ERC4337Utils.ENTRYPOINT_V08;
}
Issue 2: predictAddress return value incorrectly destructured
The tutorial uses array destructuring on a function that returns a single address:
// ❌ Wrong - destructures the address string as a char array, predictedAddress = "0"
const [predictedAddress] = await publicClient.readContract({ ... });
// ✅ Correct
const predictedAddress = await publicClient.readContract({ ... });
- Dominant language
- MDX
- Stars
- 6
- Forks
- 23
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 4
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from OpenZeppelin/docs
-
OpenZeppelin/docs#238 · 1 assignee ·
-
documentation
Difficulty 5/5 Over a week Newbie friendliness 28/100
OpenZeppelin/docs#236 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
OpenZeppelin/docs#231 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 35/100
OpenZeppelin/docs#199 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 55/100
OpenZeppelin/docs#132 ·
All issues in OpenZeppelin/docs
Similar issues
-
removeToken
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
cowprotocol/token-lists#1514 · 2 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
MystenLabs/sui#28056 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
foundry-rs/starknet-foundry#4598 ·
-
documentation enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
filecoin-project/solstice#76 · 1 assignee ·