Skip to content

Commit d4003bf

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents f721825 + 5c1fa0f commit d4003bf

File tree

215 files changed

+20679
-5623
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

215 files changed

+20679
-5623
lines changed

.changeset/huge-ties-find.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@openzeppelin/wizard': patch
3+
---
4+
5+
Fixed bug with incorrect names in generated comment for Multisig account.

.changeset/mean-shoes-cheer.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@openzeppelin/wizard-common': patch
3+
---
4+
5+
Add macros descriptions for Cairo

.changeset/twenty-hornets-clap.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@openzeppelin/wizard': patch
3+
---
4+
5+
Solidity account signer: Fix grammar in comment

.github/workflows/compile-cairo-alpha-project.yml

Lines changed: 39 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -47,34 +47,52 @@ jobs:
4747
set -e
4848
4949
declare -a all_kinds=("ERC20" "ERC721" "ERC1155" "Account" "Multisig" "Governor" "Vesting" "Custom")
50-
declare -a all_royalty_info_options=("disabled" "enabled_default" "enabled_custom")
51-
for kind in "${all_kinds[@]}"; do
52-
scarb clean
50+
declare -a all_macros_options=("none" "with_components")
51+
declare -a all_access_options=("disabled" "ownable" "roles" "roles-dar-default" "roles-dar-custom")
52+
declare -a all_royalty_options=("disabled" "enabled-default" "enabled-custom")
53+
54+
for macros_option in "${all_macros_options[@]}"; do
55+
for kind in "${all_kinds[@]}"; do
56+
if [[ "$kind" == "ERC721" || "$kind" == "ERC1155" ]]; then
57+
for access_option in "${all_access_options[@]}"; do
58+
for royalty_option in "${all_royalty_options[@]}"; do
59+
proj_name="'$kind, macros: $macros_option, access: $access_option, royalty: $royalty_option' test project"
60+
echo "Generating $proj_name..."
61+
yarn run update_scarb_project --kind=$kind --macros=$macros_option --access=$access_option --royalty=$royalty_option
62+
63+
echo "Compiling $proj_name..."
64+
scarb build
65+
66+
echo "✅ Compiled $proj_name!"
67+
echo "---------------------------------"
68+
done
69+
done
70+
71+
elif [[ "$kind" == "ERC20" || "$kind" == "Custom" ]]; then
72+
for access_option in "${all_access_options[@]}"; do
73+
proj_name="'$kind, access: $access_option' test project"
74+
echo "Generating $proj_name..."
75+
yarn run update_scarb_project --kind=$kind --access=$access_option
76+
77+
echo "Compiling $proj_name..."
78+
scarb build
79+
80+
echo "✅ Compiled $proj_name!"
81+
echo "---------------------------------"
82+
done
83+
84+
else
85+
proj_name="'$kind' test project"
5386
54-
if [[ "$kind" == "ERC721" || "$kind" == "ERC1155" ]]; then
55-
for royalty_info_option in "${all_royalty_info_options[@]}"; do
56-
proj_name="'$kind (royalty info: $royalty_info_option)' test project"
5787
echo "Generating $proj_name..."
58-
yarn run update_scarb_project $kind $royalty_info_option
88+
yarn run update_scarb_project --kind=$kind
5989
6090
echo "Compiling $proj_name..."
6191
scarb build
6292
6393
echo "✅ Compiled $proj_name!"
6494
echo "---------------------------------"
65-
done
66-
67-
else
68-
proj_name="'$kind' test project"
69-
70-
echo "Generating $proj_name..."
71-
yarn run update_scarb_project $kind
72-
73-
echo "Compiling $proj_name..."
74-
scarb build
75-
76-
echo "✅ Compiled $proj_name!"
77-
echo "---------------------------------"
78-
fi
95+
fi
96+
done
7997
8098
done

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
"**/typescript"
2929
]
3030
},
31+
"resolutions": {
32+
"ethereum-cryptography": "^3.2.0"
33+
},
3134
"devDependencies": {
3235
"@eslint/js": "^9.21.0",
3336
"concurrently": "^9.1.2",

packages/common/CHANGELOG.md

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

33

4+
## 0.2.0 (2025-11-03)
5+
6+
- **Breaking changes**: Solidity Stablecoin and RWA: Change `limitations` option to `restrictions`. Replace ERC20Allowlist and ERC20Blocklist with ERC20Restricted. ([#715](https://github.com/OpenZeppelin/contracts-wizard/pull/715))
7+
- Update `@openzeppelin/contracts` and `@openzeppelin/contracts-upgradeable` dependencies to 5.5.0 ([#681](https://github.com/OpenZeppelin/contracts-wizard/pull/681))
8+
- **Breaking changes**:
9+
- Solidity account signer: `ERC7702` option is renamed as `EIP7702`. Imported contract `SignerERC7702` is renamed as `SignerEIP7702`.
10+
- Solidity upgradeable contracts: `Initializable` and `UUPSUpgradeable` are imported from `@openzeppelin/contracts` instead of `@openzeppelin/contracts-upgradeable`.
11+
12+
## 0.1.2 (2025-10-29)
13+
14+
- Add AI descriptions for AccessControl in Cairo-alpha ([#698](https://github.com/OpenZeppelin/contracts-wizard/pull/698))
15+
416
## 0.1.1 (2025-09-16)
517

618
- Update Solidity Account prompt ([#609](https://github.com/OpenZeppelin/contracts-wizard/pull/609))

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.1.1",
3+
"version": "0.2.0",
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/cairo.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,19 @@ export const cairoCommonDescriptions = {
2727
'Provides information for how much royalty is owed and to whom, based on a sale price. Follows ERC-2981 standard.',
2828
};
2929

30+
export const cairoMacrosDescriptions = {
31+
macros: 'The macros to use for the contract.',
32+
withComponents: 'Whether to use the "with_components" macro for simplified contract structure.',
33+
};
34+
35+
export const cairoAlphaAccessDescriptions = {
36+
accessType:
37+
'The type of access control to provision. Ownable is a simple mechanism with a single account authorized for all privileged actions. Roles is a flexible mechanism with a separate role for each privileged action. A role can have many authorized accounts. Roles (Default Admin Rules) provides additional enforced security measures on top of standard Roles mechanism for managing the most privileged role: default admin.',
38+
darInitialDelay: 'The initial delay for the default admin role (in case Roles (Default Admin Rules) is used).',
39+
darDefaultDelayIncrease:
40+
'The default delay increase for the default admin role (in case Roles (Default Admin Rules) is used).',
41+
};
42+
3043
export const cairoRoyaltyInfoDescriptions = {
3144
enabled: 'Whether to enable royalty feature for the contract',
3245
defaultRoyaltyFraction:

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ export const solidityCommonDescriptions = {
1818
'The type of access control to provision. Ownable is a simple mechanism with a single account authorized for all privileged actions. Roles is a flexible mechanism with a separate role for each privileged action. A role can have many authorized accounts. Managed enables a central contract to define a policy that allows certain callers to access certain functions.',
1919
upgradeable:
2020
'Whether the smart contract is upgradeable. Transparent uses more complex proxy with higher overhead, requires less changes in your contract. Can also be used with beacons. UUPS uses simpler proxy with less overhead, requires including extra code in your contract. Allows flexibility for authorizing upgrades.',
21+
namespacePrefix:
22+
'The prefix for ERC-7201 namespace identifiers. It should be derived from the project name or a unique naming convention specific to the project. Used only if the contract includes storage variables and upgradeability is enabled. Default is "myProject".',
2123
};
2224

2325
export const solidityERC20Descriptions = {
@@ -54,7 +56,7 @@ export const solidityERC1155Descriptions = {
5456
export const solidityStablecoinDescriptions = {
5557
custodian:
5658
'Whether authorized accounts can freeze and unfreeze accounts for regulatory or security purposes. This feature is experimental, not audited and is subject to change.',
57-
limitations:
59+
restrictions:
5860
'Whether to restrict certain users from transferring tokens, either via allowing or blocking them. This feature is experimental, not audited and is subject to change.',
5961
};
6062

@@ -66,7 +68,7 @@ export const solidityAccountDescriptions = {
6668
'Whether to implement the `onERC1155Received` function to allow the account to receive ERC1155 tokens.',
6769
signer: `Defines the signature verification algorithm used by the account to verify user operations. Options:
6870
- ECDSA: Standard Ethereum signature validation using secp256k1, validates signatures against a specified owner address
69-
- ERC7702: Special ECDSA validation using account's own address as signer, enables EOAs to delegate execution rights
71+
- EIP7702: Special ECDSA validation using account's own address as signer, enables EOAs to delegate execution rights
7072
- P256: NIST P-256 curve (secp256r1) validation for integration with Passkeys and HSMs
7173
- RSA: RSA PKCS#1 v1.5 signature validation (RFC8017) for PKI systems and HSMs
7274
- Multisig: ERC-7913 multisignature requiring minimum number of signatures from authorized signers

packages/core/cairo_alpha/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
## Unreleased
44

5+
- Add support for `with_components` macro. ([#703](https://github.com/OpenZeppelin/contracts-wizard/pull/703))
6+
- Add AccessControlDefaultAdminRules. ([#698](https://github.com/OpenZeppelin/contracts-wizard/pull/698))
7+
58
- **Breaking changes**:
69
- Use OpenZeppelin Contracts for Cairo v3.0.0-alpha.3. ([#688](https://github.com/OpenZeppelin/contracts-wizard/pull/688))
710
- Use OpenZeppelin Contracts for Cairo v3.0.0-alpha.2. ([#663](https://github.com/OpenZeppelin/contracts-wizard/pull/663))

0 commit comments

Comments
 (0)