Skip to content

Commit 98c7c73

Browse files
Prepare Release
1 parent e3c6e2d commit 98c7c73

File tree

16 files changed

+3844
-2075
lines changed

16 files changed

+3844
-2075
lines changed

packages/common/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# Changelog
22

33

4+
## 0.3.1 (2025-11-12)
5+
6+
- Solidity account signer: Add `WebAuthn` to the list of signers available. ([#718](https://github.com/OpenZeppelin/contracts-wizard/pull/718))
7+
48
## 0.3.0 (2025-11-11)
59

610
- **Breaking changes**: Solidity Stablecoin and RWA: Change `custodian` option to `freezable`. Replace ERC20Custodian with ERC20Freezable. ([#719](https://github.com/OpenZeppelin/contracts-wizard/pull/719))

packages/common/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@openzeppelin/wizard-common",
3-
"version": "0.3.0",
3+
"version": "0.3.1",
44
"description": "Common library for OpenZeppelin Contracts Wizard components. Used internally.",
55
"license": "AGPL-3.0-only",
66
"repository": "https://github.com/OpenZeppelin/contracts-wizard",

packages/common/src/ai/descriptions/solidity.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,11 @@ export const solidityAccountDescriptions = {
6969
signer: `Defines the signature verification algorithm used by the account to verify user operations. Options:
7070
- ECDSA: Standard Ethereum signature validation using secp256k1, validates signatures against a specified owner address
7171
- EIP7702: Special ECDSA validation using account's own address as signer, enables EOAs to delegate execution rights
72+
- Multisig: ERC-7913 multisignature requiring minimum number of signatures from authorized signers
73+
- MultisigWeighted: ERC-7913 weighted multisignature where signers have different voting weights
7274
- P256: NIST P-256 curve (secp256r1) validation for integration with Passkeys and HSMs
7375
- RSA: RSA PKCS#1 v1.5 signature validation (RFC8017) for PKI systems and HSMs
74-
- Multisig: ERC-7913 multisignature requiring minimum number of signatures from authorized signers
75-
- MultisigWeighted: ERC-7913 weighted multisignature where signers have different voting weights`,
76+
- WebAuthn: Web Authentication (WebAuthn) assertion validation for integration with Passkeys and HSMs on top of P256`,
7677
batchedExecution:
7778
'Whether to implement a minimal batching interface for the account to allow multiple operations to be executed in a single transaction following the ERC-7821 standard.',
7879
ERC7579Modules:

packages/core/solidity/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# Changelog
22

33

4+
## 0.10.2 (2025-11-12)
5+
6+
- Solidity account signer: Add `WebAuthn` to the list of signers available. ([#718](https://github.com/OpenZeppelin/contracts-wizard/pull/718))
7+
48
## 0.10.1 (2025-11-11)
59

610
- Fixed bug with incorrect names in generated comment for Multisig account. ([#720](https://github.com/OpenZeppelin/contracts-wizard/pull/720))

packages/core/solidity/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@openzeppelin/wizard",
3-
"version": "0.10.1",
3+
"version": "0.10.2",
44
"description": "A boilerplate generator to get started with OpenZeppelin Contracts",
55
"license": "AGPL-3.0-only",
66
"repository": "https://github.com/OpenZeppelin/contracts-wizard",

packages/core/solidity/src/account.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { account } from '.';
44
import type { AccountOptions } from './account';
55
import { buildAccount } from './account';
66
import { printContract } from './print';
7+
import { SignerOptions } from './signer';
78

89
/**
910
* Tests external API for equivalence with internal API
@@ -61,7 +62,7 @@ function format(upgradeable: false | 'uups' | 'transparent') {
6162
}
6263
}
6364

64-
for (const signer of [false, 'ECDSA', 'EIP7702', 'P256', 'RSA', 'Multisig', 'MultisigWeighted'] as const) {
65+
for (const signer of SignerOptions) {
6566
for (const upgradeable of [false, 'uups', 'transparent'] as const) {
6667
if (signer === 'EIP7702' && !!upgradeable) continue;
6768

packages/core/solidity/src/account.test.ts.md

Lines changed: 3751 additions & 2045 deletions
Large diffs are not rendered by default.
1.68 KB
Binary file not shown.

packages/core/solidity/src/account.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -247,12 +247,16 @@ function overrideRawSignatureValidation(c: ContractBuilder, opts: AccountOptions
247247
const signerBaseName = signers[opts.signer].name;
248248
const signerName = opts.upgradeable ? upgradeableName(signerBaseName) : signerBaseName;
249249

250-
c.addImportOnly({
251-
name: 'AbstractSigner',
252-
path: '@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol',
253-
transpiled: false,
254-
});
255-
c.addOverride({ name: 'AbstractSigner', transpiled: false }, signerFunctions._rawSignatureValidation);
250+
// WebAuthnSigner depends inherits from P256Signer, so the AbstractSigner override is handled by `addSigner`
251+
if (opts.signer !== 'WebAuthn') {
252+
c.addImportOnly({
253+
name: 'AbstractSigner',
254+
path: '@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol',
255+
transpiled: false,
256+
});
257+
c.addOverride({ name: 'AbstractSigner', transpiled: false }, signerFunctions._rawSignatureValidation);
258+
}
259+
256260
c.addOverride({ name: 'AccountERC7579' }, signerFunctions._rawSignatureValidation);
257261
c.setFunctionComments(
258262
[

packages/core/solidity/src/generate/account.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const account = {
88
signatureValidation: [false, 'ERC1271', 'ERC7739'] as const,
99
ERC721Holder: [false, true] as const,
1010
ERC1155Holder: [false, true] as const,
11-
signer: ['ECDSA', 'EIP7702', 'P256', 'RSA', 'Multisig', 'MultisigWeighted'] as const,
11+
signer: ['ECDSA', 'EIP7702', 'Multisig', 'MultisigWeighted', 'P256', 'RSA', 'WebAuthn'] as const,
1212
batchedExecution: [false, true] as const,
1313
ERC7579Modules: [false, 'AccountERC7579', 'AccountERC7579Hooked'] as const,
1414
access: [false] as const,

0 commit comments

Comments
 (0)