@openzeppelin/wizard 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/account.d.ts.map +1 -1
- package/dist/account.js +48 -28
- package/dist/account.js.map +1 -1
- package/dist/environments/hardhat/package-lock.json +463 -521
- package/dist/environments/hardhat/upgradeable/package-lock.json +1282 -1055
- package/dist/generate/account.d.ts.map +1 -1
- package/dist/generate/account.js +2 -1
- package/dist/generate/account.js.map +1 -1
- package/dist/options.d.ts +3 -0
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +8 -7
- package/dist/options.js.map +1 -1
- package/dist/print.d.ts.map +1 -1
- package/dist/print.js +11 -11
- package/dist/print.js.map +1 -1
- package/dist/set-upgradeable.d.ts +1 -0
- package/dist/set-upgradeable.d.ts.map +1 -1
- package/dist/set-upgradeable.js +6 -0
- package/dist/set-upgradeable.js.map +1 -1
- package/dist/signer.d.ts +7 -2
- package/dist/signer.d.ts.map +1 -1
- package/dist/signer.js +45 -65
- package/dist/signer.js.map +1 -1
- package/dist/zip-foundry.d.ts.map +1 -1
- package/dist/zip-foundry.js +60 -65
- package/dist/zip-foundry.js.map +1 -1
- package/dist/zip-hardhat.d.ts.map +1 -1
- package/dist/zip-hardhat.js +8 -3
- package/dist/zip-hardhat.js.map +1 -1
- package/package.json +2 -2
- package/src/account.ts +55 -29
- package/src/environments/hardhat/package-lock.json +463 -521
- package/src/environments/hardhat/upgradeable/package-lock.json +1282 -1055
- package/src/generate/account.ts +2 -1
- package/src/options.ts +8 -8
- package/src/print.ts +31 -13
- package/src/set-upgradeable.ts +6 -0
- package/src/signer.ts +49 -70
- package/src/zip-foundry.ts +84 -64
- package/src/zip-hardhat.ts +9 -3
package/dist/zip-foundry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-foundry.js","sourceRoot":"","sources":["../src/zip-foundry.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"zip-foundry.js","sourceRoot":"","sources":["../src/zip-foundry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-hardhat.d.ts","sourceRoot":"","sources":["../src/zip-hardhat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"zip-hardhat.d.ts","sourceRoot":"","sources":["../src/zip-hardhat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA6M3C,wBAAsB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,cAAc,kBA8BlE"}
|
package/dist/zip-hardhat.js
CHANGED
|
@@ -109,6 +109,7 @@ const test = (c, opts) => {
|
|
|
109
109
|
return [`expect(await instance.name()).to.equal("${opts.name}");`];
|
|
110
110
|
case 'ERC1155':
|
|
111
111
|
return [`expect(await instance.uri(0)).to.equal("${opts.uri}");`];
|
|
112
|
+
case 'Account':
|
|
112
113
|
case 'Governor':
|
|
113
114
|
case 'Custom':
|
|
114
115
|
break;
|
|
@@ -136,9 +137,13 @@ function getAddressArgs(c) {
|
|
|
136
137
|
return args;
|
|
137
138
|
}
|
|
138
139
|
function getDeploymentCall(c, args) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
140
|
+
// TODO: remove that selector when the upgrades plugin supports @custom:oz-upgrades-unsafe-allow-reachable
|
|
141
|
+
const unsafeAllowConstructor = c.parents.find(p => ['EIP712'].includes(p.contract.name)) !== undefined;
|
|
142
|
+
return !c.upgradeable
|
|
143
|
+
? `ContractFactory.deploy(${args.join(', ')})`
|
|
144
|
+
: unsafeAllowConstructor
|
|
145
|
+
? `upgrades.deployProxy(ContractFactory, [${args.join(', ')}], { unsafeAllow: 'constructor' })`
|
|
146
|
+
: `upgrades.deployProxy(ContractFactory, [${args.join(', ')}])`;
|
|
142
147
|
}
|
|
143
148
|
const script = (c) => {
|
|
144
149
|
const args = getAddressArgs(c);
|
package/dist/zip-hardhat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-hardhat.js","sourceRoot":"","sources":["../src/zip-hardhat.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"zip-hardhat.js","sourceRoot":"","sources":["../src/zip-hardhat.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openzeppelin/wizard",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "A boilerplate generator to get started with OpenZeppelin Contracts",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"repository": "https://github.com/OpenZeppelin/contracts-wizard",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"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"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@openzeppelin/community-contracts": "git+https://github.com/OpenZeppelin/openzeppelin-community-contracts.git#
|
|
25
|
+
"@openzeppelin/community-contracts": "git+https://github.com/OpenZeppelin/openzeppelin-community-contracts.git#2d607bd",
|
|
26
26
|
"@openzeppelin/contracts": "^5.4.0",
|
|
27
27
|
"@openzeppelin/contracts-upgradeable": "^5.4.0",
|
|
28
28
|
"@types/node": "^20.0.0",
|
package/src/account.ts
CHANGED
|
@@ -3,8 +3,10 @@ import type { Contract } from './contract';
|
|
|
3
3
|
import { defineFunctions } from './utils/define-functions';
|
|
4
4
|
import { printContract } from './print';
|
|
5
5
|
import { defaults as commonDefaults, withCommonDefaults, type CommonOptions } from './common-options';
|
|
6
|
+
import { upgradeableName } from './options';
|
|
6
7
|
import { setInfo } from './set-info';
|
|
7
8
|
import { addSigner, signerFunctions, signers, type SignerOptions } from './signer';
|
|
9
|
+
import { setUpgradeableAccount } from './set-upgradeable';
|
|
8
10
|
|
|
9
11
|
export const defaults: Required<AccountOptions> = {
|
|
10
12
|
...commonDefaults,
|
|
@@ -53,19 +55,20 @@ export function printAccount(opts: AccountOptions = defaults): string {
|
|
|
53
55
|
export function buildAccount(opts: AccountOptions): Contract {
|
|
54
56
|
const allOpts = withDefaults(opts);
|
|
55
57
|
|
|
56
|
-
allOpts.upgradeable = false; // Upgradeability is not yet available for the community contracts
|
|
57
58
|
allOpts.access = false; // Access control options are not used for Account
|
|
58
59
|
|
|
59
60
|
const c = new ContractBuilder(allOpts.name);
|
|
60
61
|
|
|
61
62
|
addParents(c, allOpts);
|
|
62
63
|
overrideRawSignatureValidation(c, allOpts);
|
|
64
|
+
setUpgradeableAccount(c, allOpts.upgradeable);
|
|
63
65
|
setInfo(c, allOpts.info);
|
|
64
66
|
|
|
65
67
|
if (opts.ERC7579Modules) {
|
|
66
68
|
c.addImportOnly({
|
|
67
69
|
name: 'PackedUserOperation',
|
|
68
70
|
path: '@openzeppelin/contracts/interfaces/draft-IERC4337.sol',
|
|
71
|
+
transpiled: false, // PackedUserOperation doesn't start with "I" so its not recognized as an "interface object"
|
|
69
72
|
});
|
|
70
73
|
}
|
|
71
74
|
|
|
@@ -76,16 +79,17 @@ function addParents(c: ContractBuilder, opts: AccountOptions): void {
|
|
|
76
79
|
// Base
|
|
77
80
|
c.addParent({
|
|
78
81
|
name: 'Account',
|
|
79
|
-
path: `@openzeppelin/
|
|
82
|
+
path: `@openzeppelin/contracts/account/Account.sol`,
|
|
83
|
+
transpiled: false,
|
|
80
84
|
});
|
|
81
|
-
c.addOverride({ name: 'Account' }, functions._validateUserOp);
|
|
85
|
+
c.addOverride({ name: 'Account', transpiled: false }, functions._validateUserOp);
|
|
82
86
|
|
|
83
87
|
if (opts.signatureValidation === 'ERC7739') addEIP712(c, opts);
|
|
84
88
|
|
|
85
89
|
// Extensions
|
|
86
90
|
addSignatureValidation(c, opts);
|
|
87
91
|
addERC7579Modules(c, opts);
|
|
88
|
-
addSigner(c, opts.signer ?? false);
|
|
92
|
+
addSigner(c, opts.signer ?? false, opts.upgradeable ?? false);
|
|
89
93
|
addMultisigFunctions(c, opts);
|
|
90
94
|
addBatchedExecution(c, opts);
|
|
91
95
|
addERC721Holder(c, opts);
|
|
@@ -97,7 +101,8 @@ function addSignatureValidation(c: ContractBuilder, opts: AccountOptions) {
|
|
|
97
101
|
case 'ERC7739':
|
|
98
102
|
c.addParent({
|
|
99
103
|
name: 'ERC7739',
|
|
100
|
-
path: '@openzeppelin/
|
|
104
|
+
path: '@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol',
|
|
105
|
+
transpiled: false,
|
|
101
106
|
});
|
|
102
107
|
break;
|
|
103
108
|
case 'ERC1271':
|
|
@@ -123,6 +128,7 @@ function addERC721Holder(c: ContractBuilder, opts: AccountOptions): void {
|
|
|
123
128
|
c.addParent({
|
|
124
129
|
name: 'ERC721Holder',
|
|
125
130
|
path: '@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol',
|
|
131
|
+
transpiled: false,
|
|
126
132
|
});
|
|
127
133
|
}
|
|
128
134
|
|
|
@@ -131,6 +137,7 @@ function addERC1155Holder(c: ContractBuilder, opts: AccountOptions): void {
|
|
|
131
137
|
c.addParent({
|
|
132
138
|
name: 'ERC1155Holder',
|
|
133
139
|
path: '@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol',
|
|
140
|
+
transpiled: false,
|
|
134
141
|
});
|
|
135
142
|
}
|
|
136
143
|
|
|
@@ -139,9 +146,10 @@ function addBatchedExecution(c: ContractBuilder, opts: AccountOptions): void {
|
|
|
139
146
|
if (!opts.batchedExecution || !!opts.ERC7579Modules) return;
|
|
140
147
|
c.addParent({
|
|
141
148
|
name: 'ERC7821',
|
|
142
|
-
path: '@openzeppelin/
|
|
149
|
+
path: '@openzeppelin/contracts/account/extensions/draft-ERC7821.sol',
|
|
150
|
+
transpiled: false,
|
|
143
151
|
});
|
|
144
|
-
c.addOverride({ name: 'ERC7821' }, functions._erc7821AuthorizedExecutor);
|
|
152
|
+
c.addOverride({ name: 'ERC7821', transpiled: false }, functions._erc7821AuthorizedExecutor);
|
|
145
153
|
c.setFunctionBody(
|
|
146
154
|
['return caller == address(entryPoint()) || super._erc7821AuthorizedExecutor(caller, mode, executionData);'],
|
|
147
155
|
functions._erc7821AuthorizedExecutor,
|
|
@@ -150,30 +158,42 @@ function addBatchedExecution(c: ContractBuilder, opts: AccountOptions): void {
|
|
|
150
158
|
|
|
151
159
|
function addERC7579Modules(c: ContractBuilder, opts: AccountOptions): void {
|
|
152
160
|
if (!opts.ERC7579Modules) return;
|
|
161
|
+
|
|
153
162
|
c.addParent({
|
|
154
163
|
name: opts.ERC7579Modules,
|
|
155
|
-
path: `@openzeppelin/
|
|
164
|
+
path: `@openzeppelin/contracts/account/extensions/draft-${opts.ERC7579Modules}.sol`,
|
|
156
165
|
});
|
|
157
166
|
if (opts.ERC7579Modules !== 'AccountERC7579') {
|
|
158
167
|
c.addImportOnly({
|
|
159
168
|
name: 'AccountERC7579',
|
|
160
|
-
path:
|
|
169
|
+
path: '@openzeppelin/contracts/account/extensions/draft-AccountERC7579.sol',
|
|
161
170
|
});
|
|
162
171
|
}
|
|
163
|
-
|
|
172
|
+
|
|
173
|
+
// Accounts that use ERC7579 without a signer must be constructed with at least one module (executor of validation)
|
|
174
|
+
if (!opts.signer) {
|
|
175
|
+
c.addConstructorArgument({ type: 'uint256', name: 'moduleTypeId' });
|
|
176
|
+
c.addConstructorArgument({ type: 'address', name: 'module' });
|
|
177
|
+
c.addConstructorArgument({ type: 'bytes calldata', name: 'initData' });
|
|
178
|
+
c.addConstructorCode('require(moduleTypeId == MODULE_TYPE_VALIDATOR || moduleTypeId == MODULE_TYPE_EXECUTOR);');
|
|
179
|
+
c.addConstructorCode('_installModule(moduleTypeId, module, initData);');
|
|
180
|
+
}
|
|
181
|
+
|
|
164
182
|
c.addOverride({ name: 'AccountERC7579' }, functions._validateUserOp);
|
|
183
|
+
c.addOverride({ name: 'AccountERC7579' }, functions.isValidSignature);
|
|
165
184
|
|
|
166
|
-
if (opts.signatureValidation
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
185
|
+
if (opts.signatureValidation === 'ERC7739') {
|
|
186
|
+
c.addOverride({ name: 'ERC7739', transpiled: false }, functions.isValidSignature);
|
|
187
|
+
c.setFunctionBody(
|
|
188
|
+
[
|
|
189
|
+
'// ERC-7739 can return the ERC-1271 magic value, 0xffffffff (invalid) or 0x77390001 (detection).',
|
|
190
|
+
'// If the returned value is 0xffffffff, fallback to ERC-7579 validation.',
|
|
191
|
+
'bytes4 erc7739magic = ERC7739.isValidSignature(hash, signature);',
|
|
192
|
+
`return erc7739magic == bytes4(0xffffffff) ? ${opts.upgradeable ? upgradeableName('AccountERC7579') : 'AccountERC7579'}.isValidSignature(hash, signature) : erc7739magic;`,
|
|
193
|
+
],
|
|
194
|
+
functions.isValidSignature,
|
|
195
|
+
);
|
|
196
|
+
}
|
|
177
197
|
}
|
|
178
198
|
|
|
179
199
|
function addMultisigFunctions(c: ContractBuilder, opts: AccountOptions): void {
|
|
@@ -203,6 +223,7 @@ function addEIP712(c: ContractBuilder, opts: AccountOptions): void {
|
|
|
203
223
|
{
|
|
204
224
|
name: 'EIP712',
|
|
205
225
|
path: '@openzeppelin/contracts/utils/cryptography/EIP712.sol',
|
|
226
|
+
transpiled: false, // do not use the upgradeable variant for in Accounts
|
|
206
227
|
},
|
|
207
228
|
[opts.name, '1'],
|
|
208
229
|
);
|
|
@@ -216,27 +237,32 @@ function overrideRawSignatureValidation(c: ContractBuilder, opts: AccountOptions
|
|
|
216
237
|
// to provide a custom validation logic
|
|
217
238
|
if (!opts.signer && !opts.ERC7579Modules) {
|
|
218
239
|
// Custom validation logic
|
|
219
|
-
c.addOverride({ name: 'Account' }, signerFunctions._rawSignatureValidation);
|
|
240
|
+
c.addOverride({ name: 'Account', transpiled: false }, signerFunctions._rawSignatureValidation);
|
|
220
241
|
c.setFunctionBody(['// Custom validation logic', 'return false;'], signerFunctions._rawSignatureValidation);
|
|
221
242
|
}
|
|
222
243
|
|
|
223
244
|
// Disambiguate between Signer and AccountERC7579
|
|
224
245
|
if (opts.signer && opts.ERC7579Modules) {
|
|
246
|
+
const accountName = opts.upgradeable ? upgradeableName('AccountERC7579') : 'AccountERC7579';
|
|
247
|
+
const signerName = opts.upgradeable ? upgradeableName(`Signer${opts.signer}`) : `Signer${opts.signer}`;
|
|
248
|
+
|
|
225
249
|
c.addImportOnly({
|
|
226
250
|
name: 'AbstractSigner',
|
|
227
|
-
path: '@openzeppelin/
|
|
251
|
+
path: '@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol',
|
|
252
|
+
transpiled: false,
|
|
228
253
|
});
|
|
229
|
-
c.addOverride({ name: 'AbstractSigner' }, signerFunctions._rawSignatureValidation);
|
|
254
|
+
c.addOverride({ name: 'AbstractSigner', transpiled: false }, signerFunctions._rawSignatureValidation);
|
|
230
255
|
c.addOverride({ name: 'AccountERC7579' }, signerFunctions._rawSignatureValidation);
|
|
231
256
|
c.setFunctionComments(
|
|
232
257
|
[
|
|
233
|
-
`// IMPORTANT: Make sure
|
|
234
|
-
`// in the inheritance chain (i.e. contract ... is
|
|
258
|
+
`// IMPORTANT: Make sure ${signerName} is most derived than ${accountName}`,
|
|
259
|
+
`// in the inheritance chain (i.e. contract ... is ${accountName}, ..., ${signerName})`,
|
|
235
260
|
'// to ensure the correct order of function resolution.',
|
|
236
|
-
|
|
261
|
+
`// ${accountName} returns false for _rawSignatureValidation`,
|
|
237
262
|
],
|
|
238
263
|
signerFunctions._rawSignatureValidation,
|
|
239
264
|
);
|
|
265
|
+
|
|
240
266
|
// Base override for `_rawSignatureValidation` given MultiSignerERC7913Weighted is MultiSignerERC7913
|
|
241
267
|
if (opts.signer === 'MultisigWeighted') {
|
|
242
268
|
c.addImportOnly(signers.Multisig);
|
|
@@ -283,13 +309,13 @@ const functions = {
|
|
|
283
309
|
},
|
|
284
310
|
setThreshold: {
|
|
285
311
|
kind: 'public' as const,
|
|
286
|
-
args: [{ name: 'threshold', type: '
|
|
312
|
+
args: [{ name: 'threshold', type: 'uint64' }],
|
|
287
313
|
},
|
|
288
314
|
setSignerWeights: {
|
|
289
315
|
kind: 'public' as const,
|
|
290
316
|
args: [
|
|
291
317
|
{ name: 'signers', type: 'bytes[] memory' },
|
|
292
|
-
{ name: 'weights', type: '
|
|
318
|
+
{ name: 'weights', type: 'uint64[] memory' },
|
|
293
319
|
],
|
|
294
320
|
},
|
|
295
321
|
}),
|