Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ Contracts Wizard is a web application to interactively build a contract out of c
Install dependencies with `yarn install`.

`packages/core` contains the code generation logic for each language under separately named subfolders.
* Run `yarn test` to run the tests.
* Run `yarn test:update-snapshots` to update AVA snapshots and run the tests.

`packages/ui` is the interface built in Svelte. From the `packages/ui` directory, run `yarn dev` to spin up a local server to develop the UI.

Expand Down
1 change: 1 addition & 0 deletions packages/core/cairo/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"update_scarb_project": "ts-node src/scripts/update-scarb-project.ts",
"prepublish": "rimraf dist *.tsbuildinfo",
"test": "ava",
"test:update-snapshots": "ava --update-snapshots",
"test:watch": "ava --watch",
"version": "node ../../../scripts/bump-changelog.js"
},
Expand Down
4 changes: 4 additions & 0 deletions packages/core/solidity/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## Unreleased

- Fix modifiers order to follow Solidity style guides. ([#450](https://github.com/OpenZeppelin/contracts-wizard/pull/450))

## 0.5.1 (2025-02-05)

- **Potentially breaking changes**:
Expand Down
1 change: 1 addition & 0 deletions packages/core/solidity/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"prepare": "tsc && node dist/scripts/prepare.js",
"prepublish": "rimraf dist *.tsbuildinfo && hardhat clean",
"test": "ava",
"test:update-snapshots": "ava --update-snapshots",
"test:watch": "ava --watch",
"version": "node ../../../scripts/bump-changelog.js",
"update-env": "rm ./src/environments/hardhat/package-lock.json && npm install --package-lock-only --prefix ./src/environments/hardhat && rm ./src/environments/hardhat/upgradeable/package-lock.json && npm install --package-lock-only --prefix ./src/environments/hardhat/upgradeable"
Expand Down
2 changes: 1 addition & 1 deletion packages/core/solidity/src/contract.test.ts.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ Generated by [AVA](https://avajs.dev).
pragma solidity ^0.8.22;␊
contract Foo {␊
function _otherFunction() internal whenNotPaused override(ERC20, OtherParent) {␊
function _otherFunction() internal override(ERC20, OtherParent) whenNotPaused {␊
super._otherFunction();␊
}␊
}␊
Expand Down
Binary file modified packages/core/solidity/src/contract.test.ts.snap
Binary file not shown.
8 changes: 4 additions & 4 deletions packages/core/solidity/src/custom.test.ts.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,15 +76,15 @@ Generated by [AVA](https://avajs.dev).
_disableInitializers();␊
}␊
function initialize(address initialOwner) initializer public {␊
function initialize(address initialOwner) public initializer {␊
__Ownable_init(initialOwner);␊
__UUPSUpgradeable_init();␊
}␊
function _authorizeUpgrade(address newImplementation)␊
internal␊
onlyOwner␊
override␊
onlyOwner␊
{}␊
}␊
`
Expand Down Expand Up @@ -166,15 +166,15 @@ Generated by [AVA](https://avajs.dev).
_disableInitializers();␊
}␊
function initialize(address initialOwner) initializer public {␊
function initialize(address initialOwner) public initializer {␊
__Ownable_init(initialOwner);␊
__UUPSUpgradeable_init();␊
}␊
function _authorizeUpgrade(address newImplementation)␊
internal␊
onlyOwner␊
override␊
onlyOwner␊
{}␊
}␊
`
Binary file modified packages/core/solidity/src/custom.test.ts.snap
Binary file not shown.
10 changes: 5 additions & 5 deletions packages/core/solidity/src/erc1155.test.ts.md
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ Generated by [AVA](https://avajs.dev).
}␊
function initialize(address defaultAdmin, address pauser, address minter)␊
initializer public␊
public initializer
{␊
__ERC1155_init("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/");␊
__AccessControl_init();␊
Expand Down Expand Up @@ -439,7 +439,7 @@ Generated by [AVA](https://avajs.dev).
}␊
function initialize(address defaultAdmin, address pauser, address minter, address upgrader)␊
initializer public␊
public initializer
{␊
__ERC1155_init("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/");␊
__AccessControl_init();␊
Expand Down Expand Up @@ -481,8 +481,8 @@ Generated by [AVA](https://avajs.dev).
function _authorizeUpgrade(address newImplementation)␊
internal␊
onlyRole(UPGRADER_ROLE)␊
override␊
onlyRole(UPGRADER_ROLE)␊
{}␊
// The following functions are overrides required by Solidity.␊
Expand Down Expand Up @@ -526,7 +526,7 @@ Generated by [AVA](https://avajs.dev).
_disableInitializers();␊
}␊
function initialize(address initialAuthority) initializer public {␊
function initialize(address initialAuthority) public initializer {␊
__ERC1155_init("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/");␊
__AccessManaged_init(initialAuthority);␊
__ERC1155Pausable_init();␊
Expand Down Expand Up @@ -562,8 +562,8 @@ Generated by [AVA](https://avajs.dev).
function _authorizeUpgrade(address newImplementation)␊
internal␊
restricted␊
override␊
restricted␊
{}␊
// The following functions are overrides required by Solidity.␊
Expand Down
Binary file modified packages/core/solidity/src/erc1155.test.ts.snap
Binary file not shown.
10 changes: 5 additions & 5 deletions packages/core/solidity/src/erc20.test.ts.md
Original file line number Diff line number Diff line change
Expand Up @@ -467,7 +467,7 @@ Generated by [AVA](https://avajs.dev).
}␊
function initialize(address defaultAdmin, address pauser, address recipient, address minter)␊
initializer public␊
public initializer
{␊
__ERC20_init("MyToken", "MTK");␊
__ERC20Burnable_init();␊
Expand Down Expand Up @@ -545,7 +545,7 @@ Generated by [AVA](https://avajs.dev).
}␊
function initialize(address defaultAdmin, address pauser, address recipient, address minter, address upgrader)␊
initializer public␊
public initializer
{␊
__ERC20_init("MyToken", "MTK");␊
__ERC20Burnable_init();␊
Expand Down Expand Up @@ -577,8 +577,8 @@ Generated by [AVA](https://avajs.dev).
function _authorizeUpgrade(address newImplementation)␊
internal␊
onlyRole(UPGRADER_ROLE)␊
override␊
onlyRole(UPGRADER_ROLE)␊
{}␊
// The following functions are overrides required by Solidity.␊
Expand Down Expand Up @@ -627,7 +627,7 @@ Generated by [AVA](https://avajs.dev).
}␊
function initialize(address initialAuthority, address recipient)␊
initializer public␊
public initializer
{␊
__ERC20_init("MyToken", "MTK");␊
__ERC20Burnable_init();␊
Expand Down Expand Up @@ -655,8 +655,8 @@ Generated by [AVA](https://avajs.dev).
function _authorizeUpgrade(address newImplementation)␊
internal␊
restricted␊
override␊
restricted␊
{}␊
// The following functions are overrides required by Solidity.␊
Expand Down
Binary file modified packages/core/solidity/src/erc20.test.ts.snap
Binary file not shown.
10 changes: 5 additions & 5 deletions packages/core/solidity/src/erc721.test.ts.md
Original file line number Diff line number Diff line change
Expand Up @@ -545,7 +545,7 @@ Generated by [AVA](https://avajs.dev).
_disableInitializers();␊
}␊
function initialize(address initialOwner) initializer public {␊
function initialize(address initialOwner) public initializer {␊
__ERC721_init("MyToken", "MTK");␊
__ERC721Enumerable_init();␊
__ERC721Pausable_init();␊
Expand Down Expand Up @@ -619,7 +619,7 @@ Generated by [AVA](https://avajs.dev).
_disableInitializers();␊
}␊
function initialize(address initialOwner) initializer public {␊
function initialize(address initialOwner) public initializer {␊
__ERC721_init("MyToken", "MTK");␊
__ERC721Enumerable_init();␊
__ERC721Pausable_init();␊
Expand All @@ -644,8 +644,8 @@ Generated by [AVA](https://avajs.dev).
function _authorizeUpgrade(address newImplementation)␊
internal␊
onlyOwner␊
override␊
onlyOwner␊
{}␊
// The following functions are overrides required by Solidity.␊
Expand Down Expand Up @@ -700,7 +700,7 @@ Generated by [AVA](https://avajs.dev).
_disableInitializers();␊
}␊
function initialize(address initialAuthority) initializer public {␊
function initialize(address initialAuthority) public initializer {␊
__ERC721_init("MyToken", "MTK");␊
__ERC721Enumerable_init();␊
__ERC721Pausable_init();␊
Expand All @@ -725,8 +725,8 @@ Generated by [AVA](https://avajs.dev).
function _authorizeUpgrade(address newImplementation)␊
internal␊
restricted␊
override␊
restricted␊
{}␊
// The following functions are overrides required by Solidity.␊
Expand Down
Binary file modified packages/core/solidity/src/erc721.test.ts.snap
Binary file not shown.
4 changes: 2 additions & 2 deletions packages/core/solidity/src/governor.test.ts.md
Original file line number Diff line number Diff line change
Expand Up @@ -1832,7 +1832,7 @@ Generated by [AVA](https://avajs.dev).
}␊
function initialize(IVotes _token, TimelockControllerUpgradeable _timelock, address initialOwner)␊
initializer public␊
public initializer
{␊
__Governor_init("MyGovernor");␊
__GovernorCountingSimple_init();␊
Expand All @@ -1853,8 +1853,8 @@ Generated by [AVA](https://avajs.dev).
function _authorizeUpgrade(address newImplementation)␊
internal␊
onlyOwner␊
override␊
onlyOwner␊
{}␊
// The following functions are overrides required by Solidity.␊
Expand Down
Binary file modified packages/core/solidity/src/governor.test.ts.snap
Binary file not shown.
11 changes: 6 additions & 5 deletions packages/core/solidity/src/print.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ function printConstructor(contract: Contract, helpers: Helpers): Lines[] {
if (hasParentParams || hasConstructorCode || (helpers.upgradeable && parentsWithInitializers.length > 0)) {
const parents = parentsWithInitializers
.flatMap(p => printParentConstructor(p, helpers));
const modifiers = helpers.upgradeable ? ['initializer public'] : parents;
const modifiers = helpers.upgradeable ? ['public initializer'] : parents;
const args = contract.constructorArgs.map(a => printArgument(a, helpers));
const body = helpers.upgradeable
? spaceBetween(
Expand Down Expand Up @@ -166,19 +166,20 @@ function printFunction(fn: ContractFunction, helpers: Helpers): Lines[] {
if (fn.override.size <= 1 && fn.modifiers.length === 0 && fn.code.length === 0 && !fn.final) {
return []
}

const modifiers: string[] = [fn.kind, ...fn.modifiers];
const modifiers: string[] = [fn.kind]

if (fn.mutability !== 'nonpayable') {
modifiers.splice(1, 0, fn.mutability);
modifiers.push(fn.mutability);
}

if (fn.override.size === 1) {
modifiers.push(`override`);
} else if (fn.override.size > 1) {
modifiers.push(`override(${[...fn.override].map(transformName).join(', ')})`);
}

modifiers.push(...fn.modifiers);

if (fn.returns?.length) {
modifiers.push(`returns (${fn.returns.join(', ')})`);
}
Expand Down
12 changes: 6 additions & 6 deletions packages/core/solidity/src/zip-foundry.test.ts.md
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ Generated by [AVA](https://avajs.dev).
}␊
function initialize(address defaultAdmin, address upgrader)␊
initializer public␊
public initializer
{␊
__ERC20_init("My Token", "MTK");␊
__ERC20Permit_init("My Token");␊
Expand All @@ -360,8 +360,8 @@ Generated by [AVA](https://avajs.dev).
function _authorizeUpgrade(address newImplementation)␊
internal␊
onlyRole(UPGRADER_ROLE)␊
override␊
onlyRole(UPGRADER_ROLE)␊
{}␊
}␊
`,
Expand Down Expand Up @@ -533,16 +533,16 @@ Generated by [AVA](https://avajs.dev).
_disableInitializers();␊
}␊
function initialize(address initialOwner) initializer public {␊
function initialize(address initialOwner) public initializer {␊
__ERC721_init("My Token", "MTK");␊
__Ownable_init(initialOwner);␊
__UUPSUpgradeable_init();␊
}␊
function _authorizeUpgrade(address newImplementation)␊
internal␊
onlyOwner␊
override␊
onlyOwner␊
{}␊
}␊
`,
Expand Down Expand Up @@ -864,7 +864,7 @@ Generated by [AVA](https://avajs.dev).
_disableInitializers();␊
}␊
function initialize(address initialOwner) initializer public {␊
function initialize(address initialOwner) public initializer {␊
__ERC1155_init("https://myuri/{id}");␊
__Ownable_init(initialOwner);␊
}␊
Expand Down Expand Up @@ -1177,7 +1177,7 @@ Generated by [AVA](https://avajs.dev).
_disableInitializers();␊
}␊
function initialize(address initialAuthority) initializer public {␊
function initialize(address initialAuthority) public initializer {␊
__AccessManaged_init(initialAuthority);␊
}␊
}␊
Expand Down
Binary file modified packages/core/solidity/src/zip-foundry.test.ts.snap
Binary file not shown.
4 changes: 2 additions & 2 deletions packages/core/solidity/src/zip-hardhat.test.ts.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,16 +160,16 @@ Generated by [AVA](https://avajs.dev).
_disableInitializers();␊
}␊
function initialize(address initialOwner) initializer public {␊
function initialize(address initialOwner) public initializer {␊
__ERC721_init("My Token", "MTK");␊
__Ownable_init(initialOwner);␊
__UUPSUpgradeable_init();␊
}␊
function _authorizeUpgrade(address newImplementation)␊
internal␊
onlyOwner␊
override␊
onlyOwner␊
{}␊
}␊
`,
Expand Down
Binary file modified packages/core/solidity/src/zip-hardhat.test.ts.snap
Binary file not shown.
Loading