@openzeppelin/wizard 0.7.0 → 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 +27 -12
- 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/utils/community-contracts-git-commit.d.ts +16 -0
- package/dist/utils/community-contracts-git-commit.d.ts.map +1 -0
- package/dist/utils/community-contracts-git-commit.js +37 -0
- package/dist/utils/community-contracts-git-commit.js.map +1 -0
- package/dist/utils/imports-libraries.d.ts +3 -0
- package/dist/utils/imports-libraries.d.ts.map +1 -0
- package/dist/utils/imports-libraries.js +7 -0
- package/dist/utils/imports-libraries.js.map +1 -0
- 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 +47 -14
- package/src/set-upgradeable.ts +6 -0
- package/src/signer.ts +49 -70
- package/src/utils/community-contracts-git-commit.ts +38 -0
- package/src/utils/imports-libraries.ts +5 -0
- package/src/zip-foundry.ts +84 -64
- package/src/zip-hardhat.ts +9 -3
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ The following contract types are supported:
|
|
|
22
22
|
- `governor`
|
|
23
23
|
- `custom`
|
|
24
24
|
|
|
25
|
-
Note that `stablecoin
|
|
25
|
+
Note that `stablecoin` and `realWorldAsset` are experimental and may be subject to change.
|
|
26
26
|
|
|
27
27
|
Each contract type has functions/constants as defined below.
|
|
28
28
|
|
package/dist/account.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAkD,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAkD,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtG,OAAO,EAAuC,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAGnF,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,cAAc,CASpC,CAAC;AAEX,eAAO,MAAM,0BAA0B,wCAAyC,CAAC;AACjF,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAErF,eAAO,MAAM,qBAAqB,4DAA6D,CAAC;AAChG,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;IACjD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAeD,wBAAgB,YAAY,CAAC,IAAI,GAAE,cAAyB,GAAG,MAAM,CAEpE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,CAqB3D"}
|
package/dist/account.js
CHANGED
|
@@ -7,8 +7,10 @@ const contract_1 = require("./contract");
|
|
|
7
7
|
const define_functions_1 = require("./utils/define-functions");
|
|
8
8
|
const print_1 = require("./print");
|
|
9
9
|
const common_options_1 = require("./common-options");
|
|
10
|
+
const options_1 = require("./options");
|
|
10
11
|
const set_info_1 = require("./set-info");
|
|
11
12
|
const signer_1 = require("./signer");
|
|
13
|
+
const set_upgradeable_1 = require("./set-upgradeable");
|
|
12
14
|
exports.defaults = {
|
|
13
15
|
...common_options_1.defaults,
|
|
14
16
|
name: 'MyAccount',
|
|
@@ -39,34 +41,36 @@ function printAccount(opts = exports.defaults) {
|
|
|
39
41
|
}
|
|
40
42
|
function buildAccount(opts) {
|
|
41
43
|
const allOpts = withDefaults(opts);
|
|
42
|
-
allOpts.upgradeable = false; // Upgradeability is not yet available for the community contracts
|
|
43
44
|
allOpts.access = false; // Access control options are not used for Account
|
|
44
45
|
const c = new contract_1.ContractBuilder(allOpts.name);
|
|
45
46
|
addParents(c, allOpts);
|
|
46
47
|
overrideRawSignatureValidation(c, allOpts);
|
|
48
|
+
(0, set_upgradeable_1.setUpgradeableAccount)(c, allOpts.upgradeable);
|
|
47
49
|
(0, set_info_1.setInfo)(c, allOpts.info);
|
|
48
50
|
if (opts.ERC7579Modules) {
|
|
49
51
|
c.addImportOnly({
|
|
50
52
|
name: 'PackedUserOperation',
|
|
51
53
|
path: '@openzeppelin/contracts/interfaces/draft-IERC4337.sol',
|
|
54
|
+
transpiled: false, // PackedUserOperation doesn't start with "I" so its not recognized as an "interface object"
|
|
52
55
|
});
|
|
53
56
|
}
|
|
54
57
|
return c;
|
|
55
58
|
}
|
|
56
59
|
function addParents(c, opts) {
|
|
57
|
-
var _a;
|
|
60
|
+
var _a, _b;
|
|
58
61
|
// Base
|
|
59
62
|
c.addParent({
|
|
60
63
|
name: 'Account',
|
|
61
|
-
path: `@openzeppelin/
|
|
64
|
+
path: `@openzeppelin/contracts/account/Account.sol`,
|
|
65
|
+
transpiled: false,
|
|
62
66
|
});
|
|
63
|
-
c.addOverride({ name: 'Account' }, functions._validateUserOp);
|
|
67
|
+
c.addOverride({ name: 'Account', transpiled: false }, functions._validateUserOp);
|
|
64
68
|
if (opts.signatureValidation === 'ERC7739')
|
|
65
69
|
addEIP712(c, opts);
|
|
66
70
|
// Extensions
|
|
67
71
|
addSignatureValidation(c, opts);
|
|
68
72
|
addERC7579Modules(c, opts);
|
|
69
|
-
(0, signer_1.addSigner)(c, (_a = opts.signer) !== null && _a !== void 0 ? _a : false);
|
|
73
|
+
(0, signer_1.addSigner)(c, (_a = opts.signer) !== null && _a !== void 0 ? _a : false, (_b = opts.upgradeable) !== null && _b !== void 0 ? _b : false);
|
|
70
74
|
addMultisigFunctions(c, opts);
|
|
71
75
|
addBatchedExecution(c, opts);
|
|
72
76
|
addERC721Holder(c, opts);
|
|
@@ -77,7 +81,8 @@ function addSignatureValidation(c, opts) {
|
|
|
77
81
|
case 'ERC7739':
|
|
78
82
|
c.addParent({
|
|
79
83
|
name: 'ERC7739',
|
|
80
|
-
path: '@openzeppelin/
|
|
84
|
+
path: '@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol',
|
|
85
|
+
transpiled: false,
|
|
81
86
|
});
|
|
82
87
|
break;
|
|
83
88
|
case 'ERC1271':
|
|
@@ -100,6 +105,7 @@ function addERC721Holder(c, opts) {
|
|
|
100
105
|
c.addParent({
|
|
101
106
|
name: 'ERC721Holder',
|
|
102
107
|
path: '@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol',
|
|
108
|
+
transpiled: false,
|
|
103
109
|
});
|
|
104
110
|
}
|
|
105
111
|
function addERC1155Holder(c, opts) {
|
|
@@ -108,6 +114,7 @@ function addERC1155Holder(c, opts) {
|
|
|
108
114
|
c.addParent({
|
|
109
115
|
name: 'ERC1155Holder',
|
|
110
116
|
path: '@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol',
|
|
117
|
+
transpiled: false,
|
|
111
118
|
});
|
|
112
119
|
}
|
|
113
120
|
function addBatchedExecution(c, opts) {
|
|
@@ -116,9 +123,10 @@ function addBatchedExecution(c, opts) {
|
|
|
116
123
|
return;
|
|
117
124
|
c.addParent({
|
|
118
125
|
name: 'ERC7821',
|
|
119
|
-
path: '@openzeppelin/
|
|
126
|
+
path: '@openzeppelin/contracts/account/extensions/draft-ERC7821.sol',
|
|
127
|
+
transpiled: false,
|
|
120
128
|
});
|
|
121
|
-
c.addOverride({ name: 'ERC7821' }, functions._erc7821AuthorizedExecutor);
|
|
129
|
+
c.addOverride({ name: 'ERC7821', transpiled: false }, functions._erc7821AuthorizedExecutor);
|
|
122
130
|
c.setFunctionBody(['return caller == address(entryPoint()) || super._erc7821AuthorizedExecutor(caller, mode, executionData);'], functions._erc7821AuthorizedExecutor);
|
|
123
131
|
}
|
|
124
132
|
function addERC7579Modules(c, opts) {
|
|
@@ -126,25 +134,33 @@ function addERC7579Modules(c, opts) {
|
|
|
126
134
|
return;
|
|
127
135
|
c.addParent({
|
|
128
136
|
name: opts.ERC7579Modules,
|
|
129
|
-
path: `@openzeppelin/
|
|
137
|
+
path: `@openzeppelin/contracts/account/extensions/draft-${opts.ERC7579Modules}.sol`,
|
|
130
138
|
});
|
|
131
139
|
if (opts.ERC7579Modules !== 'AccountERC7579') {
|
|
132
140
|
c.addImportOnly({
|
|
133
141
|
name: 'AccountERC7579',
|
|
134
|
-
path:
|
|
142
|
+
path: '@openzeppelin/contracts/account/extensions/draft-AccountERC7579.sol',
|
|
135
143
|
});
|
|
136
144
|
}
|
|
137
|
-
|
|
145
|
+
// Accounts that use ERC7579 without a signer must be constructed with at least one module (executor of validation)
|
|
146
|
+
if (!opts.signer) {
|
|
147
|
+
c.addConstructorArgument({ type: 'uint256', name: 'moduleTypeId' });
|
|
148
|
+
c.addConstructorArgument({ type: 'address', name: 'module' });
|
|
149
|
+
c.addConstructorArgument({ type: 'bytes calldata', name: 'initData' });
|
|
150
|
+
c.addConstructorCode('require(moduleTypeId == MODULE_TYPE_VALIDATOR || moduleTypeId == MODULE_TYPE_EXECUTOR);');
|
|
151
|
+
c.addConstructorCode('_installModule(moduleTypeId, module, initData);');
|
|
152
|
+
}
|
|
138
153
|
c.addOverride({ name: 'AccountERC7579' }, functions._validateUserOp);
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
154
|
+
c.addOverride({ name: 'AccountERC7579' }, functions.isValidSignature);
|
|
155
|
+
if (opts.signatureValidation === 'ERC7739') {
|
|
156
|
+
c.addOverride({ name: 'ERC7739', transpiled: false }, functions.isValidSignature);
|
|
157
|
+
c.setFunctionBody([
|
|
158
|
+
'// ERC-7739 can return the ERC-1271 magic value, 0xffffffff (invalid) or 0x77390001 (detection).',
|
|
159
|
+
'// If the returned value is 0xffffffff, fallback to ERC-7579 validation.',
|
|
160
|
+
'bytes4 erc7739magic = ERC7739.isValidSignature(hash, signature);',
|
|
161
|
+
`return erc7739magic == bytes4(0xffffffff) ? ${opts.upgradeable ? (0, options_1.upgradeableName)('AccountERC7579') : 'AccountERC7579'}.isValidSignature(hash, signature) : erc7739magic;`,
|
|
162
|
+
], functions.isValidSignature);
|
|
163
|
+
}
|
|
148
164
|
}
|
|
149
165
|
function addMultisigFunctions(c, opts) {
|
|
150
166
|
switch (opts.signer) {
|
|
@@ -169,6 +185,7 @@ function addEIP712(c, opts) {
|
|
|
169
185
|
c.addParent({
|
|
170
186
|
name: 'EIP712',
|
|
171
187
|
path: '@openzeppelin/contracts/utils/cryptography/EIP712.sol',
|
|
188
|
+
transpiled: false, // do not use the upgradeable variant for in Accounts
|
|
172
189
|
}, [opts.name, '1']);
|
|
173
190
|
}
|
|
174
191
|
function overrideRawSignatureValidation(c, opts) {
|
|
@@ -180,22 +197,25 @@ function overrideRawSignatureValidation(c, opts) {
|
|
|
180
197
|
// to provide a custom validation logic
|
|
181
198
|
if (!opts.signer && !opts.ERC7579Modules) {
|
|
182
199
|
// Custom validation logic
|
|
183
|
-
c.addOverride({ name: 'Account' }, signer_1.signerFunctions._rawSignatureValidation);
|
|
200
|
+
c.addOverride({ name: 'Account', transpiled: false }, signer_1.signerFunctions._rawSignatureValidation);
|
|
184
201
|
c.setFunctionBody(['// Custom validation logic', 'return false;'], signer_1.signerFunctions._rawSignatureValidation);
|
|
185
202
|
}
|
|
186
203
|
// Disambiguate between Signer and AccountERC7579
|
|
187
204
|
if (opts.signer && opts.ERC7579Modules) {
|
|
205
|
+
const accountName = opts.upgradeable ? (0, options_1.upgradeableName)('AccountERC7579') : 'AccountERC7579';
|
|
206
|
+
const signerName = opts.upgradeable ? (0, options_1.upgradeableName)(`Signer${opts.signer}`) : `Signer${opts.signer}`;
|
|
188
207
|
c.addImportOnly({
|
|
189
208
|
name: 'AbstractSigner',
|
|
190
|
-
path: '@openzeppelin/
|
|
209
|
+
path: '@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol',
|
|
210
|
+
transpiled: false,
|
|
191
211
|
});
|
|
192
|
-
c.addOverride({ name: 'AbstractSigner' }, signer_1.signerFunctions._rawSignatureValidation);
|
|
212
|
+
c.addOverride({ name: 'AbstractSigner', transpiled: false }, signer_1.signerFunctions._rawSignatureValidation);
|
|
193
213
|
c.addOverride({ name: 'AccountERC7579' }, signer_1.signerFunctions._rawSignatureValidation);
|
|
194
214
|
c.setFunctionComments([
|
|
195
|
-
`// IMPORTANT: Make sure
|
|
196
|
-
`// in the inheritance chain (i.e. contract ... is
|
|
215
|
+
`// IMPORTANT: Make sure ${signerName} is most derived than ${accountName}`,
|
|
216
|
+
`// in the inheritance chain (i.e. contract ... is ${accountName}, ..., ${signerName})`,
|
|
197
217
|
'// to ensure the correct order of function resolution.',
|
|
198
|
-
|
|
218
|
+
`// ${accountName} returns false for _rawSignatureValidation`,
|
|
199
219
|
], signer_1.signerFunctions._rawSignatureValidation);
|
|
200
220
|
// Base override for `_rawSignatureValidation` given MultiSignerERC7913Weighted is MultiSignerERC7913
|
|
201
221
|
if (opts.signer === 'MultisigWeighted') {
|
|
@@ -242,13 +262,13 @@ const functions = {
|
|
|
242
262
|
},
|
|
243
263
|
setThreshold: {
|
|
244
264
|
kind: 'public',
|
|
245
|
-
args: [{ name: 'threshold', type: '
|
|
265
|
+
args: [{ name: 'threshold', type: 'uint64' }],
|
|
246
266
|
},
|
|
247
267
|
setSignerWeights: {
|
|
248
268
|
kind: 'public',
|
|
249
269
|
args: [
|
|
250
270
|
{ name: 'signers', type: 'bytes[] memory' },
|
|
251
|
-
{ name: 'weights', type: '
|
|
271
|
+
{ name: 'weights', type: 'uint64[] memory' },
|
|
252
272
|
],
|
|
253
273
|
},
|
|
254
274
|
}),
|
package/dist/account.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"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"}
|