@openzeppelin/wizard 0.10.0 → 0.10.3
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 +17 -57
- package/dist/account.js +12 -8
- package/dist/account.js.map +1 -1
- package/dist/api.d.ts +11 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +9 -0
- package/dist/api.js.map +1 -1
- package/dist/erc20.js +1 -1
- package/dist/generate/account.js +1 -1
- package/dist/generate/account.js.map +1 -1
- package/dist/generate/stablecoin.js +1 -1
- package/dist/get-versioned-remappings.d.ts +3 -0
- package/dist/get-versioned-remappings.d.ts.map +1 -0
- package/dist/get-versioned-remappings.js +15 -0
- package/dist/get-versioned-remappings.js.map +1 -0
- package/dist/scripts/prepare.js +2 -0
- package/dist/scripts/prepare.js.map +1 -1
- package/dist/signer.d.ts +9 -5
- package/dist/signer.d.ts.map +1 -1
- package/dist/signer.js +43 -12
- package/dist/signer.js.map +1 -1
- package/dist/stablecoin.d.ts +1 -1
- package/dist/stablecoin.js +20 -47
- package/dist/stablecoin.js.map +1 -1
- package/dist/utils/convert-strings.d.ts +3 -3
- package/dist/utils/convert-strings.js +3 -3
- package/openzeppelin-contracts-version.d.ts +10 -0
- package/openzeppelin-contracts-version.json +3 -0
- package/package.json +4 -2
- package/src/account.ts +13 -8
- package/src/api.ts +21 -0
- package/src/erc20.ts +1 -1
- package/src/generate/account.ts +1 -1
- package/src/generate/stablecoin.ts +1 -1
- package/src/get-versioned-remappings.ts +12 -0
- package/src/scripts/prepare.ts +3 -0
- package/src/signer.ts +46 -12
- package/src/stablecoin.ts +22 -52
- package/src/utils/convert-strings.ts +3 -3
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?:
|
|
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
|
-
#### `
|
|
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
|
-
|
|
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
|
-
|
|
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<
|
|
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<
|
|
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
|
|
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
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
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
|
|
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`,
|
package/dist/account.js.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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 `
|
|
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) {
|
package/dist/generate/account.js
CHANGED
|
@@ -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', '
|
|
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,
|
|
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"}
|
|
@@ -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,CAQrE"}
|
|
@@ -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_version_1 = __importDefault(require("../openzeppelin-contracts-version"));
|
|
8
|
+
function getVersionedRemappings(opts) {
|
|
9
|
+
const remappings = [`@openzeppelin/contracts/=@openzeppelin/contracts@${openzeppelin_contracts_version_1.default.version}/`];
|
|
10
|
+
if (opts?.upgradeable) {
|
|
11
|
+
remappings.push(`@openzeppelin/contracts-upgradeable/=@openzeppelin/contracts-upgradeable@${openzeppelin_contracts_version_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,wDAQC;AAVD,uGAAiE;AAEjE,SAAgB,sBAAsB,CAAC,IAAoB;IACzD,MAAM,UAAU,GAAG,CAAC,oDAAoD,wCAAgB,CAAC,OAAO,GAAG,CAAC,CAAC;IACrG,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;QACtB,UAAU,CAAC,IAAI,CACb,4EAA4E,wCAAgB,CAAC,OAAO,GAAG,CACxG,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
package/dist/scripts/prepare.js
CHANGED
|
@@ -43,6 +43,8 @@ async function main() {
|
|
|
43
43
|
dependencies: (0, map_values_1.mapValues)((0, transitive_closure_1.transitiveClosure)(dependencies), d => Array.from(d)),
|
|
44
44
|
};
|
|
45
45
|
await fs_1.promises.writeFile('openzeppelin-contracts.json', JSON.stringify(contracts, null, 2));
|
|
46
|
+
// Generate a separate file with only the version field, to be included in the NPM package
|
|
47
|
+
await fs_1.promises.writeFile('openzeppelin-contracts-version.json', JSON.stringify({ version: package_json_1.version }, null, 2));
|
|
46
48
|
}
|
|
47
49
|
main().catch(e => {
|
|
48
50
|
console.error(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../src/scripts/prepare.ts"],"names":[],"mappings":";;;;;AAAA,2BAAoC;AACpC,gDAAwB;AACxB,sDAA0B;AAE1B,8CAA6C;AAC7C,mCAAgC;AAChC,uEAA+D;AAG/D,iDAA4D;AAC5D,oDAAgD;AAChD,oEAAgE;AAEhE,KAAK,UAAU,IAAI;IACjB,MAAM,oBAAoB,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9E,MAAM,IAAA,eAAM,EAAC,oBAAoB,CAAC,CAAC;IACnC,MAAM,IAAA,+BAAqB,EAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;IACnE,MAAM,iBAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEzB,MAAM,YAAY,GAAgC,EAAE,CAAC;IACrD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,KAAK,MAAM,aAAa,IAAI,MAAM,iBAAG,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACpE,MAAM,SAAS,GAAc,IAAI,CAAC,KAAK,CAAC,MAAM,aAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;QAElF,KAAK,MAAM,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7E,IACE,UAAU,CAAC,UAAU,CAAC,yBAAyB,CAAC;gBAChD,UAAU,CAAC,UAAU,CAAC,mCAAmC,CAAC,EAC1D,CAAC;gBACD,MAAM,kBAAkB,GAAG,CAAC,YAAY,CAAC,UAAU,MAAvB,YAAY,CAAC,UAAU,IAAM,IAAI,GAAG,EAAE,EAAC,CAAC;gBACpE,KAAK,MAAM,GAAG,IAAI,IAAA,eAAO,EAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC;oBAClD,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAChF,IACE,UAAU,CAAC,UAAU,CAAC,yBAAyB,CAAC;gBAChD,UAAU,CAAC,UAAU,CAAC,mCAAmC,CAAC,EAC1D,CAAC;gBACD,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAA0B;QACvC,OAAO,EAAP,sBAAO;QACP,OAAO;QACP,YAAY,EAAE,IAAA,sBAAS,EAAC,IAAA,sCAAiB,EAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC7E,CAAC;IAEF,MAAM,aAAE,CAAC,SAAS,CAAC,6BAA6B,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../src/scripts/prepare.ts"],"names":[],"mappings":";;;;;AAAA,2BAAoC;AACpC,gDAAwB;AACxB,sDAA0B;AAE1B,8CAA6C;AAC7C,mCAAgC;AAChC,uEAA+D;AAG/D,iDAA4D;AAC5D,oDAAgD;AAChD,oEAAgE;AAEhE,KAAK,UAAU,IAAI;IACjB,MAAM,oBAAoB,GAAG,cAAI,CAAC,IAAI,CAAC,iBAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9E,MAAM,IAAA,eAAM,EAAC,oBAAoB,CAAC,CAAC;IACnC,MAAM,IAAA,+BAAqB,EAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;IACnE,MAAM,iBAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEzB,MAAM,YAAY,GAAgC,EAAE,CAAC;IACrD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,KAAK,MAAM,aAAa,IAAI,MAAM,iBAAG,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACpE,MAAM,SAAS,GAAc,IAAI,CAAC,KAAK,CAAC,MAAM,aAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;QAElF,KAAK,MAAM,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7E,IACE,UAAU,CAAC,UAAU,CAAC,yBAAyB,CAAC;gBAChD,UAAU,CAAC,UAAU,CAAC,mCAAmC,CAAC,EAC1D,CAAC;gBACD,MAAM,kBAAkB,GAAG,CAAC,YAAY,CAAC,UAAU,MAAvB,YAAY,CAAC,UAAU,IAAM,IAAI,GAAG,EAAE,EAAC,CAAC;gBACpE,KAAK,MAAM,GAAG,IAAI,IAAA,eAAO,EAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC;oBAClD,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAChF,IACE,UAAU,CAAC,UAAU,CAAC,yBAAyB,CAAC;gBAChD,UAAU,CAAC,UAAU,CAAC,mCAAmC,CAAC,EAC1D,CAAC;gBACD,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAA0B;QACvC,OAAO,EAAP,sBAAO;QACP,OAAO;QACP,YAAY,EAAE,IAAA,sBAAS,EAAC,IAAA,sCAAiB,EAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC7E,CAAC;IAEF,MAAM,aAAE,CAAC,SAAS,CAAC,6BAA6B,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEtF,0FAA0F;IAC1F,MAAM,aAAE,CAAC,SAAS,CAAC,qCAAqC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAP,sBAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,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", "
|
|
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
|
-
|
|
15
|
+
Multisig: {
|
|
16
16
|
name: string;
|
|
17
17
|
path: string;
|
|
18
18
|
};
|
|
19
|
-
|
|
19
|
+
MultisigWeighted: {
|
|
20
20
|
name: string;
|
|
21
21
|
path: string;
|
|
22
22
|
};
|
|
23
|
-
|
|
23
|
+
P256: {
|
|
24
24
|
name: string;
|
|
25
25
|
path: string;
|
|
26
26
|
};
|
|
27
|
-
|
|
27
|
+
RSA: {
|
|
28
|
+
name: string;
|
|
29
|
+
path: string;
|
|
30
|
+
};
|
|
31
|
+
WebAuthn: {
|
|
28
32
|
name: string;
|
|
29
33
|
path: string;
|
|
30
34
|
};
|
package/dist/signer.d.ts.map
CHANGED
|
@@ -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,
|
|
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 = [
|
|
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
|
-
|
|
52
|
-
name: '
|
|
53
|
-
path: '@openzeppelin/contracts/utils/cryptography/signers/
|
|
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: {
|
package/dist/signer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"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"}
|
package/dist/stablecoin.d.ts
CHANGED
|
@@ -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
|
-
|
|
5
|
+
freezable?: boolean;
|
|
6
6
|
}
|
|
7
7
|
export declare const defaults: Required<StablecoinOptions>;
|
|
8
8
|
export declare function printStablecoin(opts?: StablecoinOptions): string;
|
package/dist/stablecoin.js
CHANGED
|
@@ -13,7 +13,7 @@ exports.defaults = {
|
|
|
13
13
|
name: 'MyStablecoin',
|
|
14
14
|
symbol: 'MST',
|
|
15
15
|
restrictions: false,
|
|
16
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
39
|
-
|
|
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
|
|
67
|
-
const
|
|
68
|
-
name: '
|
|
69
|
-
path: '@openzeppelin/community-contracts/token/ERC20/extensions/
|
|
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(
|
|
72
|
-
c.addOverride(
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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
|
-
|
|
112
|
-
kind: '
|
|
113
|
-
args: [
|
|
114
|
-
|
|
115
|
-
|
|
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',
|
package/dist/stablecoin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stablecoin.js","sourceRoot":"","sources":["../src/stablecoin.ts"],"names":[],"mappings":";;;AAoCA,0CAEC;AAED,0DAEC;AAED,0CAiBC;AA3DD,
|
|
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);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface OpenZeppelinContractsVersion {
|
|
2
|
+
/**
|
|
3
|
+
* Version of `@openzeppelin/contracts` and `@openzeppelin/contracts-upgradeable`
|
|
4
|
+
*/
|
|
5
|
+
version: string;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
declare const contractsVersion: OpenZeppelinContractsVersion;
|
|
9
|
+
|
|
10
|
+
export default contractsVersion;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openzeppelin/wizard",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.3",
|
|
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",
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
"NOTICE",
|
|
12
12
|
"/dist",
|
|
13
13
|
"/src",
|
|
14
|
+
"openzeppelin-contracts-version.json",
|
|
15
|
+
"openzeppelin-contracts-version.d.ts",
|
|
14
16
|
"!**/*.test.*"
|
|
15
17
|
],
|
|
16
18
|
"scripts": {
|
|
@@ -39,4 +41,4 @@
|
|
|
39
41
|
"ts-node": "^10.4.0",
|
|
40
42
|
"typescript": "^5.0.0"
|
|
41
43
|
}
|
|
42
|
-
}
|
|
44
|
+
}
|
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
|
|
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
|
|
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 `
|
|
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) {
|
package/src/generate/account.ts
CHANGED
|
@@ -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', '
|
|
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,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CommonOptions } from './common-options';
|
|
2
|
+
import contractsVersion from '../openzeppelin-contracts-version';
|
|
3
|
+
|
|
4
|
+
export function getVersionedRemappings(opts?: CommonOptions): string[] {
|
|
5
|
+
const remappings = [`@openzeppelin/contracts/=@openzeppelin/contracts@${contractsVersion.version}/`];
|
|
6
|
+
if (opts?.upgradeable) {
|
|
7
|
+
remappings.push(
|
|
8
|
+
`@openzeppelin/contracts-upgradeable/=@openzeppelin/contracts-upgradeable@${contractsVersion.version}/`,
|
|
9
|
+
);
|
|
10
|
+
}
|
|
11
|
+
return remappings;
|
|
12
|
+
}
|
package/src/scripts/prepare.ts
CHANGED
|
@@ -52,6 +52,9 @@ async function main() {
|
|
|
52
52
|
};
|
|
53
53
|
|
|
54
54
|
await fs.writeFile('openzeppelin-contracts.json', JSON.stringify(contracts, null, 2));
|
|
55
|
+
|
|
56
|
+
// Generate a separate file with only the version field, to be included in the NPM package
|
|
57
|
+
await fs.writeFile('openzeppelin-contracts-version.json', JSON.stringify({ version }, null, 2));
|
|
55
58
|
}
|
|
56
59
|
|
|
57
60
|
main().catch(e => {
|
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 = [
|
|
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
|
-
|
|
58
|
-
name: '
|
|
59
|
-
path: '@openzeppelin/contracts/utils/cryptography/signers/
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
54
|
-
|
|
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
|
|
91
|
-
const
|
|
92
|
-
name: '
|
|
93
|
-
path: '@openzeppelin/community-contracts/token/ERC20/extensions/
|
|
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(
|
|
97
|
-
c.addOverride(
|
|
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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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
|
-
|
|
143
|
-
kind: '
|
|
144
|
-
args: [
|
|
145
|
-
|
|
146
|
-
|
|
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);
|