@openzeppelin/wizard 0.10.0 → 0.10.2

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 CHANGED
@@ -24,81 +24,42 @@ The following contract types are supported:
24
24
 
25
25
  Note that `stablecoin` and `realWorldAsset` are experimental and may be subject to change.
26
26
 
27
- Each contract type has functions/constants as defined below.
28
-
29
27
  ### Functions
30
28
 
29
+ Each contract type implements a common API with methods that take contract-specific options (e.g., `ERC20Options` for `erc20`, `ERC721Options` for `erc721`, etc.). This ensures type safety and allows for contract-specific features.
30
+
31
31
  #### `print`
32
32
  ```js
33
- function print(opts?: ERC20Options): string
34
- ```
35
- ```js
36
- function print(opts?: ERC721Options): string
37
- ```
38
- ```js
39
- function print(opts?: ERC1155Options): string
40
- ```
41
- ```js
42
- function print(opts?: StablecoinOptions): string
43
- ```
44
- ```js
45
- function print(opts?: AccountOptions): string
46
- ```
47
- ```js
48
- function print(opts?: GovernorOptions): string
49
- ```
50
- ```js
51
- function print(opts?: CustomOptions): string
33
+ function print(opts?: Options): string
52
34
  ```
53
35
  Returns a string representation of a contract generated using the provided options. If `opts` is not provided, uses [`defaults`](#defaults).
54
36
 
55
- #### `defaults`
56
- ```js
57
- const defaults: Required<ERC20Options>
58
- ```
59
- ```js
60
- const defaults: Required<ERC721Options>
61
- ```
62
- ```js
63
- const defaults: Required<ERC1155Options>
64
- ```
65
- ```js
66
- const defaults: Required<StablecoinOptions>
67
- ```
37
+ #### `getVersionedRemappings`
68
38
  ```js
69
- const defaults: Required<AccountOptions>
39
+ function getVersionedRemappings(opts?: Options): string[]
70
40
  ```
41
+ Returns an array of remappings that map unversioned import prefixes to versioned import prefixes. For example:
71
42
  ```js
72
- const defaults: Required<GovernorOptions>
43
+ [
44
+ "@openzeppelin/contracts/=@openzeppelin/contracts@5.5.0/",
45
+ "@openzeppelin/contracts-upgradeable/=@openzeppelin/contracts-upgradeable@5.5.0/"
46
+ ]
73
47
  ```
48
+ If the contract options include upgradeability, the upgradeable remapping is included. If `opts` is not provided, uses [`defaults`](#defaults).
49
+
50
+ #### `defaults`
74
51
  ```js
75
- const defaults: Required<CustomOptions>
52
+ const defaults: Required<Options>
76
53
  ```
77
- The default options that are used for [`print`](#print).
54
+ The default options that are used for [`print`](#print) and [`getVersionedRemappings`](#getVersionedRemappings).
78
55
 
79
56
  #### `isAccessControlRequired`
80
57
  ```js
81
- function isAccessControlRequired(opts: Partial<ERC20Options>): boolean
82
- ```
83
- ```js
84
- function isAccessControlRequired(opts: Partial<ERC721Options>): boolean
85
- ```
86
- ```js
87
- function isAccessControlRequired(opts: Partial<ERC1155Options>): boolean
88
- ```
89
- ```js
90
- function isAccessControlRequired(opts: Partial<StablecoinOptions>): boolean
91
- ```
92
- ```js
93
- function isAccessControlRequired(opts: Partial<GovernorOptions>): boolean
94
- ```
95
- ```js
96
- function isAccessControlRequired(opts: Partial<CustomOptions>): boolean
58
+ function isAccessControlRequired(opts: Partial<Options>): boolean
97
59
  ```
98
60
  Whether any of the provided options require access control to be enabled. If this returns `true`, then calling `print` with the same options would cause the `access` option to default to `'ownable'` if it was `undefined` or `false`.
99
61
 
100
- > Note that contracts such as `account`, have its own way of handling permissions and do not support the `access` option.
101
- Thus, that type does not include `isAccessControlRequired`.
62
+ > Note that contracts such as `account` have their own way of handling permissions and do not support the `access` option. Thus, that type does not include `isAccessControlRequired`.
102
63
 
103
64
  ### Examples
104
65
 
@@ -129,4 +90,3 @@ const contract = erc20.print({
129
90
  ...erc20.defaults,
130
91
  upgradeable: 'uups',
131
92
  });
132
- ```
package/dist/account.js CHANGED
@@ -201,16 +201,20 @@ function overrideRawSignatureValidation(c, opts) {
201
201
  // Disambiguate between Signer and AccountERC7579
202
202
  if (opts.signer && opts.ERC7579Modules) {
203
203
  const accountName = opts.upgradeable ? (0, options_1.upgradeableName)('AccountERC7579') : 'AccountERC7579';
204
- const signerName = opts.upgradeable ? (0, options_1.upgradeableName)(`Signer${opts.signer}`) : `Signer${opts.signer}`;
205
- c.addImportOnly({
206
- name: 'AbstractSigner',
207
- path: '@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol',
208
- transpiled: false,
209
- });
210
- c.addOverride({ name: 'AbstractSigner', transpiled: false }, signer_1.signerFunctions._rawSignatureValidation);
204
+ const signerBaseName = signer_1.signers[opts.signer].name;
205
+ const signerName = opts.upgradeable ? (0, options_1.upgradeableName)(signerBaseName) : signerBaseName;
206
+ // WebAuthnSigner depends inherits from P256Signer, so the AbstractSigner override is handled by `addSigner`
207
+ if (opts.signer !== 'WebAuthn') {
208
+ c.addImportOnly({
209
+ name: 'AbstractSigner',
210
+ path: '@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol',
211
+ transpiled: false,
212
+ });
213
+ c.addOverride({ name: 'AbstractSigner', transpiled: false }, signer_1.signerFunctions._rawSignatureValidation);
214
+ }
211
215
  c.addOverride({ name: 'AccountERC7579' }, signer_1.signerFunctions._rawSignatureValidation);
212
216
  c.setFunctionComments([
213
- `// IMPORTANT: Make sure ${signerName} is most derived than ${accountName}`,
217
+ `// IMPORTANT: Make sure ${signerName} is more derived than ${accountName}`,
214
218
  `// in the inheritance chain (i.e. contract ... is ${accountName}, ..., ${signerName})`,
215
219
  '// to ensure the correct order of function resolution.',
216
220
  `// ${accountName} returns false for _rawSignatureValidation`,
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"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"}
package/dist/api.d.ts CHANGED
@@ -11,6 +11,17 @@ export interface WizardContractAPI<Options extends CommonOptions> {
11
11
  * Returns a string representation of a contract generated using the provided options. If opts is not provided, uses `defaults`.
12
12
  */
13
13
  print: (opts?: Options) => string;
14
+ /**
15
+ * Returns remappings that map unversioned import prefixes to versioned import prefixes.
16
+ * @example
17
+ * ```ts
18
+ * [
19
+ * "@openzeppelin/contracts/=@openzeppelin/contracts@5.5.0/",
20
+ * "@openzeppelin/contracts-upgradeable/=@openzeppelin/contracts-upgradeable@5.5.0/"
21
+ * ]
22
+ * ```
23
+ */
24
+ getVersionedRemappings: (opts?: Options) => string[];
14
25
  /**
15
26
  * The default options that are used for `print`.
16
27
  */
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAM5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAM9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAMtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAO9C,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,aAAa;IAC9D;;OAEG;IACH,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,aAAa;IAC7D;;;OAGG;IACH,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC;CAC9D;AAED,MAAM,MAAM,KAAK,GAAG,iBAAiB,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACrF,MAAM,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACxF,MAAM,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAC3F,MAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AACpG,MAAM,MAAM,cAAc,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AACxG,MAAM,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACxD,MAAM,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAC9F,MAAM,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAExF,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AACF,eAAO,MAAM,MAAM,EAAE,MAIpB,CAAC;AACF,eAAO,MAAM,OAAO,EAAE,OAIrB,CAAC;AACF,eAAO,MAAM,UAAU,EAAE,UAIxB,CAAC;AACF,eAAO,MAAM,OAAO,EAAE,OAGrB,CAAC;AACF,eAAO,MAAM,cAAc,EAAE,cAI5B,CAAC;AACF,eAAO,MAAM,QAAQ,EAAE,QAItB,CAAC;AACF,eAAO,MAAM,MAAM,EAAE,MAIpB,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAM5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAM9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAMtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQ9C,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,aAAa;IAC9D;;OAEG;IACH,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAElC;;;;;;;;;OASG;IACH,sBAAsB,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM,EAAE,CAAC;IAErD;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,aAAa;IAC7D;;;OAGG;IACH,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC;CAC9D;AAED,MAAM,MAAM,KAAK,GAAG,iBAAiB,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACrF,MAAM,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACxF,MAAM,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAC3F,MAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AACpG,MAAM,MAAM,cAAc,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AACxG,MAAM,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACxD,MAAM,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAC9F,MAAM,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAExF,eAAO,MAAM,KAAK,EAAE,KAKnB,CAAC;AACF,eAAO,MAAM,MAAM,EAAE,MAKpB,CAAC;AACF,eAAO,MAAM,OAAO,EAAE,OAKrB,CAAC;AACF,eAAO,MAAM,UAAU,EAAE,UAKxB,CAAC;AACF,eAAO,MAAM,OAAO,EAAE,OAIrB,CAAC;AACF,eAAO,MAAM,cAAc,EAAE,cAK5B,CAAC;AACF,eAAO,MAAM,QAAQ,EAAE,QAKtB,CAAC;AACF,eAAO,MAAM,MAAM,EAAE,MAKpB,CAAC"}
package/dist/api.js CHANGED
@@ -8,42 +8,51 @@ const stablecoin_1 = require("./stablecoin");
8
8
  const account_1 = require("./account");
9
9
  const governor_1 = require("./governor");
10
10
  const custom_1 = require("./custom");
11
+ const get_versioned_remappings_1 = require("./get-versioned-remappings");
11
12
  exports.erc20 = {
12
13
  print: erc20_1.printERC20,
14
+ getVersionedRemappings: get_versioned_remappings_1.getVersionedRemappings,
13
15
  defaults: erc20_1.defaults,
14
16
  isAccessControlRequired: erc20_1.isAccessControlRequired,
15
17
  };
16
18
  exports.erc721 = {
17
19
  print: erc721_1.printERC721,
20
+ getVersionedRemappings: get_versioned_remappings_1.getVersionedRemappings,
18
21
  defaults: erc721_1.defaults,
19
22
  isAccessControlRequired: erc721_1.isAccessControlRequired,
20
23
  };
21
24
  exports.erc1155 = {
22
25
  print: erc1155_1.printERC1155,
26
+ getVersionedRemappings: get_versioned_remappings_1.getVersionedRemappings,
23
27
  defaults: erc1155_1.defaults,
24
28
  isAccessControlRequired: erc1155_1.isAccessControlRequired,
25
29
  };
26
30
  exports.stablecoin = {
27
31
  print: stablecoin_1.printStablecoin,
32
+ getVersionedRemappings: get_versioned_remappings_1.getVersionedRemappings,
28
33
  defaults: stablecoin_1.defaults,
29
34
  isAccessControlRequired: stablecoin_1.isAccessControlRequired,
30
35
  };
31
36
  exports.account = {
32
37
  print: account_1.printAccount,
38
+ getVersionedRemappings: get_versioned_remappings_1.getVersionedRemappings,
33
39
  defaults: account_1.defaults,
34
40
  };
35
41
  exports.realWorldAsset = {
36
42
  print: stablecoin_1.printStablecoin,
43
+ getVersionedRemappings: get_versioned_remappings_1.getVersionedRemappings,
37
44
  defaults: stablecoin_1.defaults,
38
45
  isAccessControlRequired: stablecoin_1.isAccessControlRequired,
39
46
  };
40
47
  exports.governor = {
41
48
  print: governor_1.printGovernor,
49
+ getVersionedRemappings: get_versioned_remappings_1.getVersionedRemappings,
42
50
  defaults: governor_1.defaults,
43
51
  isAccessControlRequired: governor_1.isAccessControlRequired,
44
52
  };
45
53
  exports.custom = {
46
54
  print: custom_1.printCustom,
55
+ getVersionedRemappings: get_versioned_remappings_1.getVersionedRemappings,
47
56
  defaults: custom_1.defaults,
48
57
  isAccessControlRequired: custom_1.isAccessControlRequired,
49
58
  };
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;AAEA,mCAIiB;AAEjB,qCAIkB;AAElB,uCAImB;AAEnB,6CAIsB;AAEtB,uCAAsE;AAEtE,yCAIoB;AAEpB,qCAIkB;AA+BL,QAAA,KAAK,GAAU;IAC1B,KAAK,EAAE,kBAAU;IACjB,QAAQ,EAAE,gBAAa;IACvB,uBAAuB,EAAE,+BAA4B;CACtD,CAAC;AACW,QAAA,MAAM,GAAW;IAC5B,KAAK,EAAE,oBAAW;IAClB,QAAQ,EAAE,iBAAc;IACxB,uBAAuB,EAAE,gCAA6B;CACvD,CAAC;AACW,QAAA,OAAO,GAAY;IAC9B,KAAK,EAAE,sBAAY;IACnB,QAAQ,EAAE,kBAAe;IACzB,uBAAuB,EAAE,iCAA8B;CACxD,CAAC;AACW,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,4BAAe;IACtB,QAAQ,EAAE,qBAAkB;IAC5B,uBAAuB,EAAE,oCAAiC;CAC3D,CAAC;AACW,QAAA,OAAO,GAAY;IAC9B,KAAK,EAAE,sBAAY;IACnB,QAAQ,EAAE,kBAAe;CAC1B,CAAC;AACW,QAAA,cAAc,GAAmB;IAC5C,KAAK,EAAE,4BAAe;IACtB,QAAQ,EAAE,qBAAkB;IAC5B,uBAAuB,EAAE,oCAAiC;CAC3D,CAAC;AACW,QAAA,QAAQ,GAAa;IAChC,KAAK,EAAE,wBAAa;IACpB,QAAQ,EAAE,mBAAgB;IAC1B,uBAAuB,EAAE,kCAA+B;CACzD,CAAC;AACW,QAAA,MAAM,GAAW;IAC5B,KAAK,EAAE,oBAAW;IAClB,QAAQ,EAAE,iBAAc;IACxB,uBAAuB,EAAE,gCAA6B;CACvD,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;AAEA,mCAIiB;AAEjB,qCAIkB;AAElB,uCAImB;AAEnB,6CAIsB;AAEtB,uCAAsE;AAEtE,yCAIoB;AAEpB,qCAIkB;AAClB,yEAAoE;AA2CvD,QAAA,KAAK,GAAU;IAC1B,KAAK,EAAE,kBAAU;IACjB,sBAAsB,EAAE,iDAAsB;IAC9C,QAAQ,EAAE,gBAAa;IACvB,uBAAuB,EAAE,+BAA4B;CACtD,CAAC;AACW,QAAA,MAAM,GAAW;IAC5B,KAAK,EAAE,oBAAW;IAClB,sBAAsB,EAAE,iDAAsB;IAC9C,QAAQ,EAAE,iBAAc;IACxB,uBAAuB,EAAE,gCAA6B;CACvD,CAAC;AACW,QAAA,OAAO,GAAY;IAC9B,KAAK,EAAE,sBAAY;IACnB,sBAAsB,EAAE,iDAAsB;IAC9C,QAAQ,EAAE,kBAAe;IACzB,uBAAuB,EAAE,iCAA8B;CACxD,CAAC;AACW,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,4BAAe;IACtB,sBAAsB,EAAE,iDAAsB;IAC9C,QAAQ,EAAE,qBAAkB;IAC5B,uBAAuB,EAAE,oCAAiC;CAC3D,CAAC;AACW,QAAA,OAAO,GAAY;IAC9B,KAAK,EAAE,sBAAY;IACnB,sBAAsB,EAAE,iDAAsB;IAC9C,QAAQ,EAAE,kBAAe;CAC1B,CAAC;AACW,QAAA,cAAc,GAAmB;IAC5C,KAAK,EAAE,4BAAe;IACtB,sBAAsB,EAAE,iDAAsB;IAC9C,QAAQ,EAAE,qBAAkB;IAC5B,uBAAuB,EAAE,oCAAiC;CAC3D,CAAC;AACW,QAAA,QAAQ,GAAa;IAChC,KAAK,EAAE,wBAAa;IACpB,sBAAsB,EAAE,iDAAsB;IAC9C,QAAQ,EAAE,mBAAgB;IAC1B,uBAAuB,EAAE,kCAA+B;CACzD,CAAC;AACW,QAAA,MAAM,GAAW;IAC5B,KAAK,EAAE,oBAAW;IAClB,sBAAsB,EAAE,iDAAsB;IAC9C,QAAQ,EAAE,iBAAc;IACxB,uBAAuB,EAAE,gCAA6B;CACvD,CAAC"}
package/dist/erc20.js CHANGED
@@ -180,7 +180,7 @@ function addPremint(c, amount, premintChainId, crossChainBridging) {
180
180
  * Check for potential premint overflow assuming the user's contract has decimals() = 18
181
181
  *
182
182
  * @param baseUnits The base units of the token, before applying power of 10
183
- * @param decimalPlace If positive, the number of assumed decimal places in the least significant digits of `validatedBaseUnits`. Ignored if <= 0.
183
+ * @param decimalPlace If positive, the number of assumed decimal places in the least significant digits of `baseUnits`. Ignored if <= 0.
184
184
  * @throws OptionsError if the calculated value would overflow uint256
185
185
  */
186
186
  function checkPotentialPremintOverflow(baseUnits, decimalPlace) {
@@ -9,7 +9,7 @@ const account = {
9
9
  signatureValidation: [false, 'ERC1271', 'ERC7739'],
10
10
  ERC721Holder: [false, true],
11
11
  ERC1155Holder: [false, true],
12
- signer: ['ECDSA', 'EIP7702', 'P256', 'RSA', 'Multisig', 'MultisigWeighted'],
12
+ signer: ['ECDSA', 'EIP7702', 'Multisig', 'MultisigWeighted', 'P256', 'RSA', 'WebAuthn'],
13
13
  batchedExecution: [false, true],
14
14
  ERC7579Modules: [false, 'AccountERC7579', 'AccountERC7579Hooked'],
15
15
  access: [false],
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/generate/account.ts"],"names":[],"mappings":";;AAkBA,wDAEC;AAnBD,0CAA0C;AAC1C,wDAAwD;AACxD,iDAAsD;AAEtD,MAAM,OAAO,GAAG;IACd,IAAI,EAAE,CAAC,WAAW,CAAC;IACnB,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAU;IAC3D,YAAY,EAAE,CAAC,KAAK,EAAE,IAAI,CAAU;IACpC,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,CAAU;IACrC,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,kBAAkB,CAAU;IACpF,gBAAgB,EAAE,CAAC,KAAK,EAAE,IAAI,CAAU;IACxC,cAAc,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,CAAU;IAC1E,MAAM,EAAE,CAAC,KAAK,CAAU;IACxB,WAAW,EAAE,oCAAkB;IAC/B,IAAI,EAAE,sBAAW;CAClB,CAAC;AAEF,QAAe,CAAC,CAAC,sBAAsB;IACrC,KAAK,CAAC,CAAC,IAAA,mCAAoB,EAAC,OAAO,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/generate/account.ts"],"names":[],"mappings":";;AAkBA,wDAEC;AAnBD,0CAA0C;AAC1C,wDAAwD;AACxD,iDAAsD;AAEtD,MAAM,OAAO,GAAG;IACd,IAAI,EAAE,CAAC,WAAW,CAAC;IACnB,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAU;IAC3D,YAAY,EAAE,CAAC,KAAK,EAAE,IAAI,CAAU;IACpC,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,CAAU;IACrC,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAU;IAChG,gBAAgB,EAAE,CAAC,KAAK,EAAE,IAAI,CAAU;IACxC,cAAc,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,CAAU;IAC1E,MAAM,EAAE,CAAC,KAAK,CAAU;IACxB,WAAW,EAAE,oCAAkB;IAC/B,IAAI,EAAE,sBAAW;CAClB,CAAC;AAEF,QAAe,CAAC,CAAC,sBAAsB;IACrC,KAAK,CAAC,CAAC,IAAA,mCAAoB,EAAC,OAAO,CAAC,CAAC;AACvC,CAAC"}
@@ -42,7 +42,7 @@ const erc20Full = {
42
42
  };
43
43
  const stablecoinExtensions = {
44
44
  restrictions: [false, 'allowlist', 'blocklist'],
45
- custodian: booleans,
45
+ freezable: booleans,
46
46
  upgradeable: [false],
47
47
  };
48
48
  function* generateStablecoinOptions() {
@@ -0,0 +1,3 @@
1
+ import type { CommonOptions } from './common-options';
2
+ export declare function getVersionedRemappings(opts?: CommonOptions): string[];
3
+ //# sourceMappingURL=get-versioned-remappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-versioned-remappings.d.ts","sourceRoot":"","sources":["../src/get-versioned-remappings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,EAAE,CAMrE"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getVersionedRemappings = getVersionedRemappings;
7
+ const openzeppelin_contracts_1 = __importDefault(require("../openzeppelin-contracts"));
8
+ function getVersionedRemappings(opts) {
9
+ const remappings = [`@openzeppelin/contracts/=@openzeppelin/contracts@${openzeppelin_contracts_1.default.version}/`];
10
+ if (opts?.upgradeable) {
11
+ remappings.push(`@openzeppelin/contracts-upgradeable/=@openzeppelin/contracts-upgradeable@${openzeppelin_contracts_1.default.version}/`);
12
+ }
13
+ return remappings;
14
+ }
15
+ //# sourceMappingURL=get-versioned-remappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-versioned-remappings.js","sourceRoot":"","sources":["../src/get-versioned-remappings.ts"],"names":[],"mappings":";;;;;AAGA,wDAMC;AARD,uFAAkD;AAElD,SAAgB,sBAAsB,CAAC,IAAoB;IACzD,MAAM,UAAU,GAAG,CAAC,oDAAoD,gCAAS,CAAC,OAAO,GAAG,CAAC,CAAC;IAC9F,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;QACtB,UAAU,CAAC,IAAI,CAAC,4EAA4E,gCAAS,CAAC,OAAO,GAAG,CAAC,CAAC;IACpH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
package/dist/signer.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { ContractBuilder } from './contract';
2
2
  import type { Upgradeable } from './set-upgradeable';
3
- export declare const SignerOptions: readonly [false, "ECDSA", "EIP7702", "P256", "RSA", "Multisig", "MultisigWeighted"];
3
+ export declare const SignerOptions: readonly [false, "ECDSA", "EIP7702", "Multisig", "MultisigWeighted", "P256", "RSA", "WebAuthn"];
4
4
  export type SignerOptions = (typeof SignerOptions)[number];
5
5
  export declare function addSigner(c: ContractBuilder, signer: SignerOptions, upgradeable: Upgradeable): void;
6
6
  export declare const signers: {
@@ -12,19 +12,23 @@ export declare const signers: {
12
12
  name: string;
13
13
  path: string;
14
14
  };
15
- P256: {
15
+ Multisig: {
16
16
  name: string;
17
17
  path: string;
18
18
  };
19
- RSA: {
19
+ MultisigWeighted: {
20
20
  name: string;
21
21
  path: string;
22
22
  };
23
- Multisig: {
23
+ P256: {
24
24
  name: string;
25
25
  path: string;
26
26
  };
27
- MultisigWeighted: {
27
+ RSA: {
28
+ name: string;
29
+ path: string;
30
+ };
31
+ WebAuthn: {
28
32
  name: string;
29
33
  path: string;
30
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,eAAO,MAAM,aAAa,qFAAsF,CAAC;AACjH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,wBAAgB,SAAS,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CA6BnG;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;CAyBnB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,GAAG,SAAS,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAmB1G,CAAC;AAEF,eAAO,MAAM,eAAe,sEAU1B,CAAC"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,eAAO,MAAM,aAAa,iGAShB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,wBAAgB,SAAS,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CAiDnG;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BnB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,GAAG,SAAS,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAoB1G,CAAC;AAEF,eAAO,MAAM,eAAe,sEAU1B,CAAC"}
package/dist/signer.js CHANGED
@@ -4,7 +4,16 @@ exports.signerFunctions = exports.signerArgs = exports.signers = exports.SignerO
4
4
  exports.addSigner = addSigner;
5
5
  const error_1 = require("./error");
6
6
  const define_functions_1 = require("./utils/define-functions");
7
- exports.SignerOptions = [false, 'ECDSA', 'EIP7702', 'P256', 'RSA', 'Multisig', 'MultisigWeighted'];
7
+ exports.SignerOptions = [
8
+ false,
9
+ 'ECDSA',
10
+ 'EIP7702',
11
+ 'Multisig',
12
+ 'MultisigWeighted',
13
+ 'P256',
14
+ 'RSA',
15
+ 'WebAuthn',
16
+ ];
8
17
  function addSigner(c, signer, upgradeable) {
9
18
  if (!signer)
10
19
  return;
@@ -29,6 +38,23 @@ function addSigner(c, signer, upgradeable) {
29
38
  c.addParent(exports.signers[signer], exports.signerArgs[signer].map(arg => ({ lit: arg.name })));
30
39
  break;
31
40
  }
41
+ case 'WebAuthn': {
42
+ exports.signerArgs.P256.forEach(arg => c.addConstructorArgument(arg));
43
+ c.addParent(exports.signers.P256, exports.signerArgs.P256.map(arg => ({ lit: arg.name })));
44
+ c.addParent(exports.signers[signer]);
45
+ c.addImportOnly({
46
+ name: 'AbstractSigner',
47
+ path: '@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol',
48
+ transpiled: false,
49
+ });
50
+ c.addOverride({ name: 'AbstractSigner', transpiled: false }, exports.signerFunctions._rawSignatureValidation);
51
+ c.addOverride({ name: 'SignerP256' }, exports.signerFunctions._rawSignatureValidation);
52
+ break;
53
+ }
54
+ default: {
55
+ const _ = signer;
56
+ throw new Error('Unknown signer');
57
+ }
32
58
  }
33
59
  }
34
60
  exports.signers = {
@@ -40,6 +66,14 @@ exports.signers = {
40
66
  name: 'SignerEIP7702',
41
67
  path: '@openzeppelin/contracts/utils/cryptography/signers/SignerEIP7702.sol',
42
68
  },
69
+ Multisig: {
70
+ name: 'MultiSignerERC7913',
71
+ path: '@openzeppelin/contracts/utils/cryptography/signers/MultiSignerERC7913.sol',
72
+ },
73
+ MultisigWeighted: {
74
+ name: 'MultiSignerERC7913Weighted',
75
+ path: '@openzeppelin/contracts/utils/cryptography/signers/MultiSignerERC7913Weighted.sol',
76
+ },
43
77
  P256: {
44
78
  name: 'SignerP256',
45
79
  path: '@openzeppelin/contracts/utils/cryptography/signers/SignerP256.sol',
@@ -48,13 +82,9 @@ exports.signers = {
48
82
  name: 'SignerRSA',
49
83
  path: '@openzeppelin/contracts/utils/cryptography/signers/SignerRSA.sol',
50
84
  },
51
- Multisig: {
52
- name: 'MultiSignerERC7913',
53
- path: '@openzeppelin/contracts/utils/cryptography/signers/MultiSignerERC7913.sol',
54
- },
55
- MultisigWeighted: {
56
- name: 'MultiSignerERC7913Weighted',
57
- path: '@openzeppelin/contracts/utils/cryptography/signers/MultiSignerERC7913Weighted.sol',
85
+ WebAuthn: {
86
+ name: 'SignerWebAuthn',
87
+ path: '@openzeppelin/contracts/utils/cryptography/signers/SignerWebAuthn.sol',
58
88
  },
59
89
  };
60
90
  exports.signerArgs = {
@@ -63,10 +93,6 @@ exports.signerArgs = {
63
93
  { name: 'qx', type: 'bytes32' },
64
94
  { name: 'qy', type: 'bytes32' },
65
95
  ],
66
- RSA: [
67
- { name: 'e', type: 'bytes memory' },
68
- { name: 'n', type: 'bytes memory' },
69
- ],
70
96
  Multisig: [
71
97
  { name: 'signers', type: 'bytes[] memory' },
72
98
  { name: 'threshold', type: 'uint64' },
@@ -76,6 +102,11 @@ exports.signerArgs = {
76
102
  { name: 'weights', type: 'uint64[] memory' },
77
103
  { name: 'threshold', type: 'uint64' },
78
104
  ],
105
+ RSA: [
106
+ { name: 'e', type: 'bytes memory' },
107
+ { name: 'n', type: 'bytes memory' },
108
+ ],
109
+ WebAuthn: [],
79
110
  };
80
111
  exports.signerFunctions = (0, define_functions_1.defineFunctions)({
81
112
  _rawSignatureValidation: {
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { Contract } from './contract';
2
2
  import type { ERC20Options } from './erc20';
3
3
  export interface StablecoinOptions extends ERC20Options {
4
4
  restrictions?: false | 'allowlist' | 'blocklist';
5
- custodian?: boolean;
5
+ freezable?: boolean;
6
6
  }
7
7
  export declare const defaults: Required<StablecoinOptions>;
8
8
  export declare function printStablecoin(opts?: StablecoinOptions): string;
@@ -13,7 +13,7 @@ exports.defaults = {
13
13
  name: 'MyStablecoin',
14
14
  symbol: 'MST',
15
15
  restrictions: false,
16
- custodian: false,
16
+ freezable: false,
17
17
  };
18
18
  function withDefaults(opts) {
19
19
  return {
@@ -21,22 +21,22 @@ function withDefaults(opts) {
21
21
  name: opts.name ?? exports.defaults.name,
22
22
  symbol: opts.symbol ?? exports.defaults.symbol,
23
23
  restrictions: opts.restrictions ?? exports.defaults.restrictions,
24
- custodian: opts.custodian ?? exports.defaults.custodian,
24
+ freezable: opts.freezable ?? exports.defaults.freezable,
25
25
  };
26
26
  }
27
27
  function printStablecoin(opts = exports.defaults) {
28
28
  return (0, print_1.printContract)(buildStablecoin(opts));
29
29
  }
30
30
  function isAccessControlRequired(opts) {
31
- return opts.mintable || opts.restrictions !== false || opts.custodian || opts.pausable || opts.upgradeable === 'uups';
31
+ return opts.mintable || opts.restrictions !== false || opts.freezable || opts.pausable || opts.upgradeable === 'uups';
32
32
  }
33
33
  function buildStablecoin(opts) {
34
34
  const allOpts = withDefaults(opts);
35
35
  // Upgradeability is not yet available for the community contracts
36
36
  allOpts.upgradeable = false;
37
37
  const c = (0, erc20_1.buildERC20)(allOpts);
38
- if (allOpts.custodian) {
39
- addCustodian(c, allOpts.access);
38
+ if (allOpts.freezable) {
39
+ addFreezable(c, allOpts.access);
40
40
  }
41
41
  if (allOpts.restrictions) {
42
42
  addRestrictions(c, allOpts.access, allOpts.restrictions);
@@ -63,56 +63,29 @@ function addRestrictions(c, access, mode) {
63
63
  (0, set_access_control_1.requireAccessControl)(c, removeFn, access, 'LIMITER', 'limiter');
64
64
  c.addFunctionCode(`_resetUser(user);`, removeFn);
65
65
  }
66
- function addCustodian(c, access) {
67
- const ERC20Custodian = {
68
- name: 'ERC20Custodian',
69
- path: '@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Custodian.sol',
66
+ function addFreezable(c, access) {
67
+ const ERC20Freezable = {
68
+ name: 'ERC20Freezable',
69
+ path: '@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Freezable.sol',
70
70
  };
71
- c.addParent(ERC20Custodian);
72
- c.addOverride(ERC20Custodian, functions._update);
73
- c.addOverride(ERC20Custodian, functions._isCustodian);
71
+ c.addParent(ERC20Freezable);
72
+ c.addOverride(ERC20Freezable, functions._update);
74
73
  if (access === false) {
75
74
  access = 'ownable';
76
75
  }
77
- (0, set_access_control_1.setAccessControl)(c, access);
78
- switch (access) {
79
- case 'ownable': {
80
- c.setFunctionBody([`return user == owner();`], functions._isCustodian);
81
- break;
82
- }
83
- case 'roles': {
84
- const roleOwner = 'custodian';
85
- const roleId = 'CUSTODIAN_ROLE';
86
- const addedConstant = c.addConstantOrImmutableOrErrorDefinition(`bytes32 public constant ${roleId} = keccak256("${roleId}");`);
87
- if (roleOwner && addedConstant) {
88
- c.addConstructorArgument({ type: 'address', name: roleOwner });
89
- c.addConstructorCode(`_grantRole(${roleId}, ${roleOwner});`);
90
- }
91
- c.setFunctionBody([`return hasRole(CUSTODIAN_ROLE, user);`], functions._isCustodian);
92
- break;
93
- }
94
- case 'managed': {
95
- c.addImportOnly({
96
- name: 'AuthorityUtils',
97
- path: `@openzeppelin/contracts/access/manager/AuthorityUtils.sol`,
98
- });
99
- const logic = [
100
- `(bool immediate,) = AuthorityUtils.canCallWithDelay(authority(), user, address(this), bytes4(_msgData()[0:4]));`,
101
- `return immediate;`,
102
- ];
103
- c.setFunctionBody(logic, functions._isCustodian);
104
- break;
105
- }
106
- }
76
+ const freezeFn = functions.freeze;
77
+ (0, set_access_control_1.requireAccessControl)(c, freezeFn, access, 'FREEZER', 'freezer');
78
+ c.setFunctionBody([`_setFrozen(user, amount);`], freezeFn);
107
79
  }
108
80
  const functions = {
109
81
  ...erc20_1.functions,
110
82
  ...(0, define_functions_1.defineFunctions)({
111
- _isCustodian: {
112
- kind: 'internal',
113
- args: [{ name: 'user', type: 'address' }],
114
- returns: ['bool'],
115
- mutability: 'view',
83
+ freeze: {
84
+ kind: 'public',
85
+ args: [
86
+ { name: 'user', type: 'address' },
87
+ { name: 'amount', type: 'uint256' },
88
+ ],
116
89
  },
117
90
  allowUser: {
118
91
  kind: 'public',
@@ -1 +1 @@
1
- {"version":3,"file":"stablecoin.js","sourceRoot":"","sources":["../src/stablecoin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stablecoin.js","sourceRoot":"","sources":["../src/stablecoin.ts"],"names":[],"mappings":";;;AAoCA,0CAEC;AAED,0DAEC;AAED,0CAiBC;AA3DD,6DAA4D;AAC5D,+DAA2D;AAC3D,mCAAwC;AAExC,mCAKiB;AAOJ,QAAA,QAAQ,GAAgC;IACnD,GAAG,gBAAa;IAChB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,KAAK;IACnB,SAAS,EAAE,KAAK;CACR,CAAC;AAEX,SAAS,YAAY,CAAC,IAAuB;IAC3C,OAAO;QACL,GAAG,IAAA,oBAAiB,EAAC,IAAI,CAAC;QAC1B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,gBAAQ,CAAC,IAAI;QAChC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,gBAAQ,CAAC,MAAM;QACtC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,gBAAQ,CAAC,YAAY;QACxD,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,gBAAQ,CAAC,SAAS;KAChD,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAAC,OAA0B,gBAAQ;IAChE,OAAO,IAAA,qBAAa,EAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,uBAAuB,CAAC,IAAgC;IACtE,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC;AACxH,CAAC;AAED,SAAgB,eAAe,CAAC,IAAuB;IACrD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEnC,kEAAkE;IAClE,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;IAE5B,MAAM,CAAC,GAAG,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC;IAE9B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,eAAe,CAAC,CAAkB,EAAE,MAAc,EAAE,IAA+B;IAC1F,MAAM,WAAW,GAAG,IAAI,KAAK,WAAW,CAAC;IACzC,MAAM,eAAe,GAAG;QACtB,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,8EAA8E;KACrF,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC7B,CAAC,CAAC,WAAW,CAAC,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAElD,IAAI,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC,WAAW,CAAC,eAAe,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;QACxD,CAAC,CAAC,eAAe,CAAC,CAAC,qDAAqD,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,WAAW;QACnC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC;QAC/C,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAEjD,IAAA,yCAAoB,EAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC,CAAC,eAAe,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,aAAa,EAAE,KAAK,CAAC,CAAC;IAE3E,IAAA,yCAAoB,EAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC,CAAC,eAAe,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,YAAY,CAAC,CAAkB,EAAE,MAAc;IACtD,MAAM,cAAc,GAAG;QACrB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,6EAA6E;KACpF,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC5B,CAAC,CAAC,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAEjD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC;IAClC,IAAA,yCAAoB,EAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC,CAAC,eAAe,CAAC,CAAC,2BAA2B,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,SAAS,GAAG;IAChB,GAAG,iBAAc;IACjB,GAAG,IAAA,kCAAe,EAAC;QACjB,MAAM,EAAE;YACN,IAAI,EAAE,QAAiB;YACvB,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;gBACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;aACpC;SACF;QAED,SAAS,EAAE;YACT,IAAI,EAAE,QAAiB;YACvB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAC1C;QAED,YAAY,EAAE;YACZ,IAAI,EAAE,QAAiB;YACvB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAC1C;QAED,SAAS,EAAE;YACT,IAAI,EAAE,QAAiB;YACvB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAC1C;QAED,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAC1C;QAED,aAAa,EAAE;YACb,IAAI,EAAE,QAAiB;YACvB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YACzC,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,UAAU,EAAE,MAAe;SAC5B;KACF,CAAC;CACH,CAAC"}
@@ -2,10 +2,10 @@ export declare const UINT256_MAX: bigint;
2
2
  /**
3
3
  * Checks that a string is a valid `uint256` value and converts it to bigint.
4
4
  *
5
- * @param value The value to check.
6
- * @param field The field name to use in the error if the value is invalid.
5
+ * @param value The string value to check and convert.
6
+ * @param field The field name to use in the error message if the value is invalid.
7
7
  * @throws OptionsError if the value is not a valid number or is greater than the maximum value for `uint256`.
8
- * @returns The value as a bigint.
8
+ * @returns The validated value as a bigint.
9
9
  */
10
10
  export declare function toUint256(value: string, field: string): bigint;
11
11
  //# sourceMappingURL=convert-strings.d.ts.map
@@ -7,10 +7,10 @@ exports.UINT256_MAX = BigInt(2) ** BigInt(256) - BigInt(1);
7
7
  /**
8
8
  * Checks that a string is a valid `uint256` value and converts it to bigint.
9
9
  *
10
- * @param value The value to check.
11
- * @param field The field name to use in the error if the value is invalid.
10
+ * @param value The string value to check and convert.
11
+ * @param field The field name to use in the error message if the value is invalid.
12
12
  * @throws OptionsError if the value is not a valid number or is greater than the maximum value for `uint256`.
13
- * @returns The value as a bigint.
13
+ * @returns The validated value as a bigint.
14
14
  */
15
15
  function toUint256(value, field) {
16
16
  const isValidNumber = /^\d+$/.test(value);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openzeppelin/wizard",
3
- "version": "0.10.0",
3
+ "version": "0.10.2",
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",
@@ -39,4 +39,4 @@
39
39
  "ts-node": "^10.4.0",
40
40
  "typescript": "^5.0.0"
41
41
  }
42
- }
42
+ }
package/src/account.ts CHANGED
@@ -244,18 +244,23 @@ function overrideRawSignatureValidation(c: ContractBuilder, opts: AccountOptions
244
244
  // Disambiguate between Signer and AccountERC7579
245
245
  if (opts.signer && opts.ERC7579Modules) {
246
246
  const accountName = opts.upgradeable ? upgradeableName('AccountERC7579') : 'AccountERC7579';
247
- const signerName = opts.upgradeable ? upgradeableName(`Signer${opts.signer}`) : `Signer${opts.signer}`;
247
+ const signerBaseName = signers[opts.signer].name;
248
+ const signerName = opts.upgradeable ? upgradeableName(signerBaseName) : signerBaseName;
249
+
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
+ }
248
259
 
249
- c.addImportOnly({
250
- name: 'AbstractSigner',
251
- path: '@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol',
252
- transpiled: false,
253
- });
254
- c.addOverride({ name: 'AbstractSigner', transpiled: false }, signerFunctions._rawSignatureValidation);
255
260
  c.addOverride({ name: 'AccountERC7579' }, signerFunctions._rawSignatureValidation);
256
261
  c.setFunctionComments(
257
262
  [
258
- `// IMPORTANT: Make sure ${signerName} is most derived than ${accountName}`,
263
+ `// IMPORTANT: Make sure ${signerName} is more derived than ${accountName}`,
259
264
  `// in the inheritance chain (i.e. contract ... is ${accountName}, ..., ${signerName})`,
260
265
  '// to ensure the correct order of function resolution.',
261
266
  `// ${accountName} returns false for _rawSignatureValidation`,
package/src/api.ts CHANGED
@@ -37,6 +37,7 @@ import {
37
37
  defaults as customDefaults,
38
38
  isAccessControlRequired as customIsAccessControlRequired,
39
39
  } from './custom';
40
+ import { getVersionedRemappings } from './get-versioned-remappings';
40
41
 
41
42
  export interface WizardContractAPI<Options extends CommonOptions> {
42
43
  /**
@@ -44,6 +45,18 @@ export interface WizardContractAPI<Options extends CommonOptions> {
44
45
  */
45
46
  print: (opts?: Options) => string;
46
47
 
48
+ /**
49
+ * Returns remappings that map unversioned import prefixes to versioned import prefixes.
50
+ * @example
51
+ * ```ts
52
+ * [
53
+ * "@openzeppelin/contracts/=@openzeppelin/contracts@5.5.0/",
54
+ * "@openzeppelin/contracts-upgradeable/=@openzeppelin/contracts-upgradeable@5.5.0/"
55
+ * ]
56
+ * ```
57
+ */
58
+ getVersionedRemappings: (opts?: Options) => string[];
59
+
47
60
  /**
48
61
  * The default options that are used for `print`.
49
62
  */
@@ -69,40 +82,48 @@ export type Custom = WizardContractAPI<CustomOptions> & AccessControlAPI<CustomO
69
82
 
70
83
  export const erc20: ERC20 = {
71
84
  print: printERC20,
85
+ getVersionedRemappings: getVersionedRemappings,
72
86
  defaults: erc20defaults,
73
87
  isAccessControlRequired: erc20IsAccessControlRequired,
74
88
  };
75
89
  export const erc721: ERC721 = {
76
90
  print: printERC721,
91
+ getVersionedRemappings: getVersionedRemappings,
77
92
  defaults: erc721defaults,
78
93
  isAccessControlRequired: erc721IsAccessControlRequired,
79
94
  };
80
95
  export const erc1155: ERC1155 = {
81
96
  print: printERC1155,
97
+ getVersionedRemappings: getVersionedRemappings,
82
98
  defaults: erc1155defaults,
83
99
  isAccessControlRequired: erc1155IsAccessControlRequired,
84
100
  };
85
101
  export const stablecoin: Stablecoin = {
86
102
  print: printStablecoin,
103
+ getVersionedRemappings: getVersionedRemappings,
87
104
  defaults: stablecoinDefaults,
88
105
  isAccessControlRequired: stablecoinIsAccessControlRequired,
89
106
  };
90
107
  export const account: Account = {
91
108
  print: printAccount,
109
+ getVersionedRemappings: getVersionedRemappings,
92
110
  defaults: accountDefaults,
93
111
  };
94
112
  export const realWorldAsset: RealWorldAsset = {
95
113
  print: printStablecoin,
114
+ getVersionedRemappings: getVersionedRemappings,
96
115
  defaults: stablecoinDefaults,
97
116
  isAccessControlRequired: stablecoinIsAccessControlRequired,
98
117
  };
99
118
  export const governor: Governor = {
100
119
  print: printGovernor,
120
+ getVersionedRemappings: getVersionedRemappings,
101
121
  defaults: governorDefaults,
102
122
  isAccessControlRequired: governorIsAccessControlRequired,
103
123
  };
104
124
  export const custom: Custom = {
105
125
  print: printCustom,
126
+ getVersionedRemappings: getVersionedRemappings,
106
127
  defaults: customDefaults,
107
128
  isAccessControlRequired: customIsAccessControlRequired,
108
129
  };
package/src/erc20.ts CHANGED
@@ -237,7 +237,7 @@ function addPremint(
237
237
  * Check for potential premint overflow assuming the user's contract has decimals() = 18
238
238
  *
239
239
  * @param baseUnits The base units of the token, before applying power of 10
240
- * @param decimalPlace If positive, the number of assumed decimal places in the least significant digits of `validatedBaseUnits`. Ignored if <= 0.
240
+ * @param decimalPlace If positive, the number of assumed decimal places in the least significant digits of `baseUnits`. Ignored if <= 0.
241
241
  * @throws OptionsError if the calculated value would overflow uint256
242
242
  */
243
243
  function checkPotentialPremintOverflow(baseUnits: bigint, decimalPlace: number) {
@@ -8,7 +8,7 @@ const account = {
8
8
  signatureValidation: [false, 'ERC1271', 'ERC7739'] as const,
9
9
  ERC721Holder: [false, true] as const,
10
10
  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,
12
12
  batchedExecution: [false, true] as const,
13
13
  ERC7579Modules: [false, 'AccountERC7579', 'AccountERC7579Hooked'] as const,
14
14
  access: [false] as const,
@@ -44,7 +44,7 @@ const erc20Full = {
44
44
 
45
45
  const stablecoinExtensions = {
46
46
  restrictions: [false, 'allowlist', 'blocklist'] as const,
47
- custodian: booleans,
47
+ freezable: booleans,
48
48
  upgradeable: [false] as const,
49
49
  };
50
50
 
@@ -0,0 +1,10 @@
1
+ import type { CommonOptions } from './common-options';
2
+ import contracts from '../openzeppelin-contracts';
3
+
4
+ export function getVersionedRemappings(opts?: CommonOptions): string[] {
5
+ const remappings = [`@openzeppelin/contracts/=@openzeppelin/contracts@${contracts.version}/`];
6
+ if (opts?.upgradeable) {
7
+ remappings.push(`@openzeppelin/contracts-upgradeable/=@openzeppelin/contracts-upgradeable@${contracts.version}/`);
8
+ }
9
+ return remappings;
10
+ }
package/src/signer.ts CHANGED
@@ -3,7 +3,16 @@ import { OptionsError } from './error';
3
3
  import type { Upgradeable } from './set-upgradeable';
4
4
  import { defineFunctions } from './utils/define-functions';
5
5
 
6
- export const SignerOptions = [false, 'ECDSA', 'EIP7702', 'P256', 'RSA', 'Multisig', 'MultisigWeighted'] as const;
6
+ export const SignerOptions = [
7
+ false,
8
+ 'ECDSA',
9
+ 'EIP7702',
10
+ 'Multisig',
11
+ 'MultisigWeighted',
12
+ 'P256',
13
+ 'RSA',
14
+ 'WebAuthn',
15
+ ] as const;
7
16
  export type SignerOptions = (typeof SignerOptions)[number];
8
17
 
9
18
  export function addSigner(c: ContractBuilder, signer: SignerOptions, upgradeable: Upgradeable): void {
@@ -34,6 +43,26 @@ export function addSigner(c: ContractBuilder, signer: SignerOptions, upgradeable
34
43
  );
35
44
  break;
36
45
  }
46
+ case 'WebAuthn': {
47
+ signerArgs.P256.forEach(arg => c.addConstructorArgument(arg));
48
+ c.addParent(
49
+ signers.P256,
50
+ signerArgs.P256.map(arg => ({ lit: arg.name })),
51
+ );
52
+ c.addParent(signers[signer]);
53
+ c.addImportOnly({
54
+ name: 'AbstractSigner',
55
+ path: '@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol',
56
+ transpiled: false,
57
+ });
58
+ c.addOverride({ name: 'AbstractSigner', transpiled: false }, signerFunctions._rawSignatureValidation);
59
+ c.addOverride({ name: 'SignerP256' }, signerFunctions._rawSignatureValidation);
60
+ break;
61
+ }
62
+ default: {
63
+ const _: never = signer;
64
+ throw new Error('Unknown signer');
65
+ }
37
66
  }
38
67
  }
39
68
 
@@ -46,6 +75,14 @@ export const signers = {
46
75
  name: 'SignerEIP7702',
47
76
  path: '@openzeppelin/contracts/utils/cryptography/signers/SignerEIP7702.sol',
48
77
  },
78
+ Multisig: {
79
+ name: 'MultiSignerERC7913',
80
+ path: '@openzeppelin/contracts/utils/cryptography/signers/MultiSignerERC7913.sol',
81
+ },
82
+ MultisigWeighted: {
83
+ name: 'MultiSignerERC7913Weighted',
84
+ path: '@openzeppelin/contracts/utils/cryptography/signers/MultiSignerERC7913Weighted.sol',
85
+ },
49
86
  P256: {
50
87
  name: 'SignerP256',
51
88
  path: '@openzeppelin/contracts/utils/cryptography/signers/SignerP256.sol',
@@ -54,13 +91,9 @@ export const signers = {
54
91
  name: 'SignerRSA',
55
92
  path: '@openzeppelin/contracts/utils/cryptography/signers/SignerRSA.sol',
56
93
  },
57
- Multisig: {
58
- name: 'MultiSignerERC7913',
59
- path: '@openzeppelin/contracts/utils/cryptography/signers/MultiSignerERC7913.sol',
60
- },
61
- MultisigWeighted: {
62
- name: 'MultiSignerERC7913Weighted',
63
- path: '@openzeppelin/contracts/utils/cryptography/signers/MultiSignerERC7913Weighted.sol',
94
+ WebAuthn: {
95
+ name: 'SignerWebAuthn',
96
+ path: '@openzeppelin/contracts/utils/cryptography/signers/SignerWebAuthn.sol',
64
97
  },
65
98
  };
66
99
 
@@ -70,10 +103,6 @@ export const signerArgs: Record<Exclude<SignerOptions, false | 'EIP7702'>, { nam
70
103
  { name: 'qx', type: 'bytes32' },
71
104
  { name: 'qy', type: 'bytes32' },
72
105
  ],
73
- RSA: [
74
- { name: 'e', type: 'bytes memory' },
75
- { name: 'n', type: 'bytes memory' },
76
- ],
77
106
  Multisig: [
78
107
  { name: 'signers', type: 'bytes[] memory' },
79
108
  { name: 'threshold', type: 'uint64' },
@@ -83,6 +112,11 @@ export const signerArgs: Record<Exclude<SignerOptions, false | 'EIP7702'>, { nam
83
112
  { name: 'weights', type: 'uint64[] memory' },
84
113
  { name: 'threshold', type: 'uint64' },
85
114
  ],
115
+ RSA: [
116
+ { name: 'e', type: 'bytes memory' },
117
+ { name: 'n', type: 'bytes memory' },
118
+ ],
119
+ WebAuthn: [],
86
120
  };
87
121
 
88
122
  export const signerFunctions = defineFunctions({
package/src/stablecoin.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { Contract, ContractBuilder } from './contract';
2
2
  import type { Access } from './set-access-control';
3
- import { setAccessControl, requireAccessControl } from './set-access-control';
3
+ import { requireAccessControl } from './set-access-control';
4
4
  import { defineFunctions } from './utils/define-functions';
5
5
  import { printContract } from './print';
6
6
  import type { ERC20Options } from './erc20';
@@ -13,7 +13,7 @@ import {
13
13
 
14
14
  export interface StablecoinOptions extends ERC20Options {
15
15
  restrictions?: false | 'allowlist' | 'blocklist';
16
- custodian?: boolean;
16
+ freezable?: boolean;
17
17
  }
18
18
 
19
19
  export const defaults: Required<StablecoinOptions> = {
@@ -21,7 +21,7 @@ export const defaults: Required<StablecoinOptions> = {
21
21
  name: 'MyStablecoin',
22
22
  symbol: 'MST',
23
23
  restrictions: false,
24
- custodian: false,
24
+ freezable: false,
25
25
  } as const;
26
26
 
27
27
  function withDefaults(opts: StablecoinOptions): Required<StablecoinOptions> {
@@ -30,7 +30,7 @@ function withDefaults(opts: StablecoinOptions): Required<StablecoinOptions> {
30
30
  name: opts.name ?? defaults.name,
31
31
  symbol: opts.symbol ?? defaults.symbol,
32
32
  restrictions: opts.restrictions ?? defaults.restrictions,
33
- custodian: opts.custodian ?? defaults.custodian,
33
+ freezable: opts.freezable ?? defaults.freezable,
34
34
  };
35
35
  }
36
36
 
@@ -39,7 +39,7 @@ export function printStablecoin(opts: StablecoinOptions = defaults): string {
39
39
  }
40
40
 
41
41
  export function isAccessControlRequired(opts: Partial<StablecoinOptions>): boolean {
42
- return opts.mintable || opts.restrictions !== false || opts.custodian || opts.pausable || opts.upgradeable === 'uups';
42
+ return opts.mintable || opts.restrictions !== false || opts.freezable || opts.pausable || opts.upgradeable === 'uups';
43
43
  }
44
44
 
45
45
  export function buildStablecoin(opts: StablecoinOptions): Contract {
@@ -50,8 +50,8 @@ export function buildStablecoin(opts: StablecoinOptions): Contract {
50
50
 
51
51
  const c = buildERC20(allOpts);
52
52
 
53
- if (allOpts.custodian) {
54
- addCustodian(c, allOpts.access);
53
+ if (allOpts.freezable) {
54
+ addFreezable(c, allOpts.access);
55
55
  }
56
56
 
57
57
  if (allOpts.restrictions) {
@@ -87,63 +87,33 @@ function addRestrictions(c: ContractBuilder, access: Access, mode: 'allowlist' |
87
87
  c.addFunctionCode(`_resetUser(user);`, removeFn);
88
88
  }
89
89
 
90
- function addCustodian(c: ContractBuilder, access: Access) {
91
- const ERC20Custodian = {
92
- name: 'ERC20Custodian',
93
- path: '@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Custodian.sol',
90
+ function addFreezable(c: ContractBuilder, access: Access) {
91
+ const ERC20Freezable = {
92
+ name: 'ERC20Freezable',
93
+ path: '@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Freezable.sol',
94
94
  };
95
95
 
96
- c.addParent(ERC20Custodian);
97
- c.addOverride(ERC20Custodian, functions._update);
98
- c.addOverride(ERC20Custodian, functions._isCustodian);
96
+ c.addParent(ERC20Freezable);
97
+ c.addOverride(ERC20Freezable, functions._update);
99
98
 
100
99
  if (access === false) {
101
100
  access = 'ownable';
102
101
  }
103
102
 
104
- setAccessControl(c, access);
105
-
106
- switch (access) {
107
- case 'ownable': {
108
- c.setFunctionBody([`return user == owner();`], functions._isCustodian);
109
- break;
110
- }
111
- case 'roles': {
112
- const roleOwner = 'custodian';
113
- const roleId = 'CUSTODIAN_ROLE';
114
- const addedConstant = c.addConstantOrImmutableOrErrorDefinition(
115
- `bytes32 public constant ${roleId} = keccak256("${roleId}");`,
116
- );
117
- if (roleOwner && addedConstant) {
118
- c.addConstructorArgument({ type: 'address', name: roleOwner });
119
- c.addConstructorCode(`_grantRole(${roleId}, ${roleOwner});`);
120
- }
121
- c.setFunctionBody([`return hasRole(CUSTODIAN_ROLE, user);`], functions._isCustodian);
122
- break;
123
- }
124
- case 'managed': {
125
- c.addImportOnly({
126
- name: 'AuthorityUtils',
127
- path: `@openzeppelin/contracts/access/manager/AuthorityUtils.sol`,
128
- });
129
- const logic = [
130
- `(bool immediate,) = AuthorityUtils.canCallWithDelay(authority(), user, address(this), bytes4(_msgData()[0:4]));`,
131
- `return immediate;`,
132
- ];
133
- c.setFunctionBody(logic, functions._isCustodian);
134
- break;
135
- }
136
- }
103
+ const freezeFn = functions.freeze;
104
+ requireAccessControl(c, freezeFn, access, 'FREEZER', 'freezer');
105
+ c.setFunctionBody([`_setFrozen(user, amount);`], freezeFn);
137
106
  }
138
107
 
139
108
  const functions = {
140
109
  ...erc20functions,
141
110
  ...defineFunctions({
142
- _isCustodian: {
143
- kind: 'internal' as const,
144
- args: [{ name: 'user', type: 'address' }],
145
- returns: ['bool'],
146
- mutability: 'view' as const,
111
+ freeze: {
112
+ kind: 'public' as const,
113
+ args: [
114
+ { name: 'user', type: 'address' },
115
+ { name: 'amount', type: 'uint256' },
116
+ ],
147
117
  },
148
118
 
149
119
  allowUser: {
@@ -5,10 +5,10 @@ export const UINT256_MAX = BigInt(2) ** BigInt(256) - BigInt(1);
5
5
  /**
6
6
  * Checks that a string is a valid `uint256` value and converts it to bigint.
7
7
  *
8
- * @param value The value to check.
9
- * @param field The field name to use in the error if the value is invalid.
8
+ * @param value The string value to check and convert.
9
+ * @param field The field name to use in the error message if the value is invalid.
10
10
  * @throws OptionsError if the value is not a valid number or is greater than the maximum value for `uint256`.
11
- * @returns The value as a bigint.
11
+ * @returns The validated value as a bigint.
12
12
  */
13
13
  export function toUint256(value: string, field: string): bigint {
14
14
  const isValidNumber = /^\d+$/.test(value);