@openzeppelin/wizard 0.10.6 → 0.10.7

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.
@@ -10,7 +10,7 @@
10
10
  "license": "ISC",
11
11
  "devDependencies": {
12
12
  "@nomicfoundation/hardhat-toolbox": "^6.1.0",
13
- "@openzeppelin/contracts": "^5.5.0",
13
+ "@openzeppelin/contracts": "^5.6.0",
14
14
  "hardhat": "^2.22.0"
15
15
  }
16
16
  },
@@ -1219,9 +1219,9 @@
1219
1219
  }
1220
1220
  },
1221
1221
  "node_modules/@openzeppelin/contracts": {
1222
- "version": "5.5.0",
1223
- "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.5.0.tgz",
1224
- "integrity": "sha512-R8hq4zmKKWP2c7OxeRgAcjZwvF5W0Qq2OIX7degrtdM52Q9xYr4MLJdUAVPKGUewNJ1qo+M6YiZLLnNUnjP/gg==",
1222
+ "version": "5.6.0",
1223
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.6.0.tgz",
1224
+ "integrity": "sha512-eZJSS8+RbWzX/7oDJPi+lYzfeuWwHXSsw336Yff35pTkmLEwRWKde2PQMW2objjMi1C1hNn9QiHjGktEJPSSWQ==",
1225
1225
  "dev": true,
1226
1226
  "license": "MIT"
1227
1227
  },
@@ -10,7 +10,7 @@
10
10
  "license": "ISC",
11
11
  "devDependencies": {
12
12
  "@nomicfoundation/hardhat-toolbox": "^6.1.0",
13
- "@openzeppelin/contracts": "^5.5.0",
13
+ "@openzeppelin/contracts": "^5.6.0",
14
14
  "hardhat": "^2.22.0"
15
15
  }
16
16
  }
@@ -10,8 +10,8 @@
10
10
  "license": "ISC",
11
11
  "devDependencies": {
12
12
  "@nomicfoundation/hardhat-toolbox": "^6.1.0",
13
- "@openzeppelin/contracts": "^5.5.0",
14
- "@openzeppelin/contracts-upgradeable": "^5.5.0",
13
+ "@openzeppelin/contracts": "^5.6.0",
14
+ "@openzeppelin/contracts-upgradeable": "^5.6.0",
15
15
  "@openzeppelin/hardhat-upgrades": "^3.0.0",
16
16
  "hardhat": "^2.22.0"
17
17
  }
@@ -1924,20 +1924,20 @@
1924
1924
  }
1925
1925
  },
1926
1926
  "node_modules/@openzeppelin/contracts": {
1927
- "version": "5.5.0",
1928
- "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.5.0.tgz",
1929
- "integrity": "sha512-R8hq4zmKKWP2c7OxeRgAcjZwvF5W0Qq2OIX7degrtdM52Q9xYr4MLJdUAVPKGUewNJ1qo+M6YiZLLnNUnjP/gg==",
1927
+ "version": "5.6.0",
1928
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.6.0.tgz",
1929
+ "integrity": "sha512-eZJSS8+RbWzX/7oDJPi+lYzfeuWwHXSsw336Yff35pTkmLEwRWKde2PQMW2objjMi1C1hNn9QiHjGktEJPSSWQ==",
1930
1930
  "dev": true,
1931
1931
  "license": "MIT"
1932
1932
  },
1933
1933
  "node_modules/@openzeppelin/contracts-upgradeable": {
1934
- "version": "5.5.0",
1935
- "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.5.0.tgz",
1936
- "integrity": "sha512-Va5hKG5oaK0EE5bXTVWugcGimMHazxL+SL523dH6WVbGiuLXwuWr9oxtLyPHQSVGtgmlIgtKNR5V+OUpCIUwFQ==",
1934
+ "version": "5.6.0",
1935
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.6.0.tgz",
1936
+ "integrity": "sha512-pJ4Qb4EGjemdvP/pbBZ+etXDB5PQJJf1tbIBDQqfQZMK3Lk8UuNCK+cWDluHZ28UfwH2WAwJLftyhJid4w63QA==",
1937
1937
  "dev": true,
1938
1938
  "license": "MIT",
1939
1939
  "peerDependencies": {
1940
- "@openzeppelin/contracts": "5.5.0"
1940
+ "@openzeppelin/contracts": "5.6.0"
1941
1941
  }
1942
1942
  },
1943
1943
  "node_modules/@openzeppelin/defender-sdk-base-client": {
@@ -10,8 +10,8 @@
10
10
  "license": "ISC",
11
11
  "devDependencies": {
12
12
  "@nomicfoundation/hardhat-toolbox": "^6.1.0",
13
- "@openzeppelin/contracts": "^5.5.0",
14
- "@openzeppelin/contracts-upgradeable": "^5.5.0",
13
+ "@openzeppelin/contracts": "^5.6.0",
14
+ "@openzeppelin/contracts-upgradeable": "^5.6.0",
15
15
  "@openzeppelin/hardhat-upgrades": "^3.0.0",
16
16
  "hardhat": "^2.22.0"
17
17
  }
package/dist/erc20.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ContractBuilder } from './contract';
2
2
  import type { CommonOptions } from './common-options';
3
3
  import type { ClockMode } from './set-clock-mode';
4
- export declare const crossChainBridgingOptions: readonly [false, "custom", "superchain"];
4
+ export declare const crossChainBridgingOptions: readonly [false, "custom", "erc7786native", "superchain"];
5
5
  export type CrossChainBridging = (typeof crossChainBridgingOptions)[number];
6
6
  export interface ERC20Options extends CommonOptions {
7
7
  name: string;
@@ -20,6 +20,7 @@ export interface ERC20Options extends CommonOptions {
20
20
  votes?: boolean | ClockMode;
21
21
  flashmint?: boolean;
22
22
  crossChainBridging?: CrossChainBridging;
23
+ crossChainLinkAllowOverride?: boolean;
23
24
  namespacePrefix?: string;
24
25
  }
25
26
  export declare const defaults: Required<ERC20Options>;
@@ -37,5 +38,5 @@ export interface PremintCalculation {
37
38
  decimalPlace: number;
38
39
  }
39
40
  export declare function calculatePremint(amount: string): PremintCalculation | undefined;
40
- export declare const functions: Record<"pause" | "unpause" | "_update" | "_approve" | "mint" | "snapshot" | "nonces" | "_checkTokenBridge", import("./contract").BaseFunction>;
41
+ export declare const functions: Record<"pause" | "unpause" | "_update" | "_approve" | "mint" | "snapshot" | "nonces" | "_checkTokenBridge" | "setTokenBridge" | "setLink", import("./contract").BaseFunction>;
41
42
  //# sourceMappingURL=erc20.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../src/erc20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAK7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAOlD,eAAO,MAAM,yBAAyB,0CAA2C,CAAC;AAClF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAelC,CAAC;AAEX,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAgBvE;AAED,wBAAgB,UAAU,CAAC,IAAI,GAAE,YAAuB,GAAG,MAAM,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAE5E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,eAAe,CAoD9D;AA+BD,eAAO,MAAM,cAAc,QAAmC,CAAC;AAE/D,eAAO,MAAM,cAAc,QAAoB,CAAC;AAEhD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAsB/E;AA+OD,eAAO,MAAM,SAAS,gJAsDpB,CAAC"}
1
+ {"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../src/erc20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAK7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAOlD,eAAO,MAAM,yBAAyB,2DAA4D,CAAC;AACnG,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAgBlC,CAAC;AAEX,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAiBvE;AAED,wBAAgB,UAAU,CAAC,IAAI,GAAE,YAAuB,GAAG,MAAM,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAQ5E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,eAAe,CA0D9D;AA+BD,eAAO,MAAM,cAAc,QAAmC,CAAC;AAE/D,eAAO,MAAM,cAAc,QAAoB,CAAC;AAEhD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAsB/E;AAgTD,eAAO,MAAM,SAAS,+KAmEpB,CAAC"}
package/dist/erc20.js CHANGED
@@ -21,7 +21,7 @@ const common_functions_1 = require("./common-functions");
21
21
  const error_1 = require("./error");
22
22
  const convert_strings_1 = require("./utils/convert-strings");
23
23
  const set_namespaced_storage_1 = require("./set-namespaced-storage");
24
- exports.crossChainBridgingOptions = [false, 'custom', 'superchain'];
24
+ exports.crossChainBridgingOptions = [false, 'custom', 'erc7786native', 'superchain'];
25
25
  exports.defaults = {
26
26
  ...common_options_1.defaults,
27
27
  name: 'MyToken',
@@ -36,6 +36,7 @@ exports.defaults = {
36
36
  votes: false,
37
37
  flashmint: false,
38
38
  crossChainBridging: false,
39
+ crossChainLinkAllowOverride: false,
39
40
  namespacePrefix: 'myProject',
40
41
  };
41
42
  function withDefaults(opts) {
@@ -52,6 +53,7 @@ function withDefaults(opts) {
52
53
  votes: opts.votes ?? exports.defaults.votes,
53
54
  flashmint: opts.flashmint ?? exports.defaults.flashmint,
54
55
  crossChainBridging: opts.crossChainBridging ?? exports.defaults.crossChainBridging,
56
+ crossChainLinkAllowOverride: opts.crossChainLinkAllowOverride ?? exports.defaults.crossChainLinkAllowOverride,
55
57
  namespacePrefix: opts.namespacePrefix ?? exports.defaults.namespacePrefix,
56
58
  };
57
59
  }
@@ -59,7 +61,11 @@ function printERC20(opts = exports.defaults) {
59
61
  return (0, print_1.printContract)(buildERC20(opts));
60
62
  }
61
63
  function isAccessControlRequired(opts) {
62
- return opts.mintable || opts.pausable || opts.upgradeable === 'uups';
64
+ return (opts.mintable ||
65
+ opts.pausable ||
66
+ opts.upgradeable === 'uups' ||
67
+ opts.crossChainBridging === 'custom' ||
68
+ opts.crossChainBridging === 'erc7786native');
63
69
  }
64
70
  function buildERC20(opts) {
65
71
  const allOpts = withDefaults(opts);
@@ -67,7 +73,7 @@ function buildERC20(opts) {
67
73
  const { access, upgradeable, info } = allOpts;
68
74
  addBase(c, allOpts.name, allOpts.symbol);
69
75
  if (allOpts.crossChainBridging) {
70
- addCrossChainBridging(c, allOpts.crossChainBridging, access, upgradeable, allOpts.namespacePrefix);
76
+ addCrossChainBridging(c, allOpts.crossChainBridging, allOpts.crossChainLinkAllowOverride, access, upgradeable, allOpts.namespacePrefix);
71
77
  }
72
78
  if (allOpts.premint) {
73
79
  addPremint(c, allOpts.premint, allOpts.premintChainId, allOpts.crossChainBridging);
@@ -84,13 +90,12 @@ function buildERC20(opts) {
84
90
  if (allOpts.callback) {
85
91
  addCallback(c);
86
92
  }
87
- // Note: Votes requires Permit
88
- if (allOpts.permit || allOpts.votes) {
93
+ if (allOpts.permit) {
89
94
  addPermit(c, allOpts.name);
90
95
  }
91
96
  if (allOpts.votes) {
92
97
  const clockMode = allOpts.votes === true ? set_clock_mode_1.clockModeDefault : allOpts.votes;
93
- addVotes(c, clockMode);
98
+ addVotes(c, allOpts.name, clockMode);
94
99
  }
95
100
  if (allOpts.flashmint) {
96
101
  addFlashMint(c);
@@ -223,9 +228,14 @@ function addPermit(c, name) {
223
228
  c.addParent(ERC20Permit, [name]);
224
229
  c.addOverride(ERC20Permit, exports.functions.nonces);
225
230
  }
226
- function addVotes(c, clockMode) {
231
+ function addVotes(c, name, clockMode) {
227
232
  if (!c.parents.some(p => p.contract.name === 'ERC20Permit')) {
228
- throw new Error('Missing ERC20Permit requirement for ERC20Votes');
233
+ // ERC20Permit initializes the EIP712 domain separator. If ERC20Permit is not a parent, we need to do it here.
234
+ const EIP712 = {
235
+ name: 'EIP712',
236
+ path: '@openzeppelin/contracts/utils/cryptography/EIP712.sol',
237
+ };
238
+ c.addParent(EIP712, [name, '1']);
229
239
  }
230
240
  const ERC20Votes = {
231
241
  name: 'ERC20Votes',
@@ -248,7 +258,28 @@ function addFlashMint(c) {
248
258
  path: '@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol',
249
259
  });
250
260
  }
251
- function addCrossChainBridging(c, crossChainBridging, access, upgradeable, namespacePrefix) {
261
+ function addCrossChainBridging(c, crossChainBridging, crossChainLinkAllowOverride, access, upgradeable, namespacePrefix) {
262
+ if (crossChainBridging === 'erc7786native') {
263
+ addERC20Crosschain(c, crossChainLinkAllowOverride, access);
264
+ }
265
+ else {
266
+ addERC20Bridgeable(c, crossChainBridging, access, upgradeable, namespacePrefix);
267
+ }
268
+ }
269
+ function addERC20Crosschain(c, crossChainLinkAllowOverride, access) {
270
+ c.addParent({
271
+ name: 'ERC20Crosschain',
272
+ path: '@openzeppelin/contracts/token/ERC20/extensions/ERC20Crosschain.sol',
273
+ });
274
+ c.addConstructionOnly({
275
+ name: 'CrosschainLinked',
276
+ path: '@openzeppelin/contracts/crosschain/CrosschainLinked.sol',
277
+ }, [{ lit: 'links' }]);
278
+ c.addConstructorArgument({ type: 'CrosschainLinked.Link[] memory', name: 'links' });
279
+ (0, set_access_control_1.requireAccessControl)(c, exports.functions.setLink, access, 'CROSSCHAIN_LINKER', 'crosschainLinker');
280
+ c.addFunctionCode(`_setLink(gateway, counterpart, ${crossChainLinkAllowOverride});`, exports.functions.setLink);
281
+ }
282
+ function addERC20Bridgeable(c, crossChainBridging, access, upgradeable, namespacePrefix) {
252
283
  const ERC20Bridgeable = {
253
284
  name: 'ERC20Bridgeable',
254
285
  path: `@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol`,
@@ -271,25 +302,47 @@ function addCrossChainBridging(c, crossChainBridging, access, upgradeable, names
271
302
  c.addConstantOrImmutableOrErrorDefinition('error Unauthorized();');
272
303
  }
273
304
  function addCustomBridging(c, access, upgradeable, namespacePrefix) {
305
+ if (access === false) {
306
+ access = 'ownable';
307
+ }
274
308
  switch (access) {
275
- case false:
276
309
  case 'ownable': {
277
310
  if (!upgradeable) {
311
+ const LINES_CHECK_AND_SET_TOKEN_BRIDGE = [
312
+ `require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");`,
313
+ `tokenBridge = tokenBridge_;`,
314
+ ];
315
+ // Add variable and constructor logic using state variable
278
316
  const addedBridge = c.addStateVariable(`address public tokenBridge;`, false);
279
317
  if (addedBridge) {
280
318
  c.addConstructorArgument({ type: 'address', name: 'tokenBridge_' });
281
- c.addConstructorCode(`require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");`);
282
- c.addConstructorCode(`tokenBridge = tokenBridge_;`);
319
+ LINES_CHECK_AND_SET_TOKEN_BRIDGE.forEach(line => {
320
+ c.addConstructorCode(line);
321
+ });
283
322
  }
284
323
  c.setFunctionBody([`if (caller != tokenBridge) revert Unauthorized();`], exports.functions._checkTokenBridge, 'view');
324
+ // Add bridge setter
325
+ (0, set_access_control_1.requireAccessControl)(c, exports.functions.setTokenBridge, access, 'TOKEN_BRIDGE_SETTER', 'tokenBridgeSetter');
326
+ LINES_CHECK_AND_SET_TOKEN_BRIDGE.forEach(line => {
327
+ c.addFunctionCode(line, exports.functions.setTokenBridge);
328
+ });
285
329
  }
286
330
  else {
331
+ const LINES_CHECK_AND_SET_TOKEN_BRIDGE = [
332
+ `require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");`,
333
+ (0, set_namespaced_storage_1.toStorageStructInstantiation)(c.name),
334
+ '$.tokenBridge = tokenBridge_;',
335
+ ];
336
+ // Add variable and constructor logic using namespaced storage
287
337
  (0, set_namespaced_storage_1.setNamespacedStorage)(c, ['address tokenBridge;'], namespacePrefix);
288
338
  c.addConstructorArgument({ type: 'address', name: 'tokenBridge_' });
289
- c.addConstructorCode(`require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");`);
290
- c.addConstructorCode((0, set_namespaced_storage_1.toStorageStructInstantiation)(c.name));
291
- c.addConstructorCode(`$.tokenBridge = tokenBridge_;`);
339
+ LINES_CHECK_AND_SET_TOKEN_BRIDGE.forEach(line => {
340
+ c.addConstructorCode(line);
341
+ });
292
342
  c.setFunctionBody([(0, set_namespaced_storage_1.toStorageStructInstantiation)(c.name), `if (caller != $.tokenBridge) revert Unauthorized();`], exports.functions._checkTokenBridge, 'view');
343
+ // Add bridge setter
344
+ (0, set_access_control_1.requireAccessControl)(c, exports.functions.setTokenBridge, access, 'TOKEN_BRIDGE_SETTER', 'tokenBridgeSetter');
345
+ c.setFunctionBody(LINES_CHECK_AND_SET_TOKEN_BRIDGE, exports.functions.setTokenBridge);
293
346
  }
294
347
  break;
295
348
  }
@@ -381,5 +434,16 @@ exports.functions = (0, define_functions_1.defineFunctions)({
381
434
  kind: 'internal',
382
435
  args: [{ name: 'caller', type: 'address' }],
383
436
  },
437
+ setTokenBridge: {
438
+ kind: 'public',
439
+ args: [{ name: 'tokenBridge_', type: 'address' }],
440
+ },
441
+ setLink: {
442
+ kind: 'public',
443
+ args: [
444
+ { name: 'gateway', type: 'address' },
445
+ { name: 'counterpart', type: 'bytes memory' },
446
+ ],
447
+ },
384
448
  });
385
449
  //# sourceMappingURL=erc20.js.map
package/dist/erc20.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"erc20.js","sourceRoot":"","sources":["../src/erc20.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"erc20.js","sourceRoot":"","sources":["../src/erc20.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../../src/generate/erc20.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AA4BxE,wBAAiB,oBAAoB,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAOzE"}
1
+ {"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../../src/generate/erc20.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAyCxE,wBAAiB,oBAAoB,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAezE"}
@@ -8,26 +8,45 @@ const set_info_1 = require("../set-info");
8
8
  const set_upgradeable_1 = require("../set-upgradeable");
9
9
  const alternatives_1 = require("./alternatives");
10
10
  const booleans = [true, false];
11
- const blueprint = {
11
+ const blueprintWithoutBasicFeatures = {
12
12
  name: ['MyToken'],
13
13
  symbol: ['MTK'],
14
- burnable: booleans,
15
14
  pausable: booleans,
16
15
  mintable: booleans,
17
- callback: booleans,
18
- permit: booleans,
19
16
  votes: [...booleans, ...set_clock_mode_1.clockModeOptions],
20
- flashmint: booleans,
21
17
  premint: ['1'],
22
18
  premintChainId: ['10'],
23
19
  crossChainBridging: erc20_1.crossChainBridgingOptions,
20
+ crossChainLinkAllowOverride: [false],
24
21
  access: set_access_control_1.accessOptions,
25
22
  upgradeable: set_upgradeable_1.upgradeableOptions,
26
23
  namespacePrefix: ['myProject'],
27
24
  info: set_info_1.infoOptions,
28
25
  };
26
+ // Basic features that do not depend on other features like access control
27
+ const basicFeatures = {
28
+ OFF: {
29
+ burnable: [false],
30
+ callback: [false],
31
+ permit: [false],
32
+ flashmint: [false],
33
+ },
34
+ ON: {
35
+ burnable: [true],
36
+ callback: [true],
37
+ permit: [true],
38
+ flashmint: [true],
39
+ },
40
+ };
29
41
  function* generateERC20Options() {
30
- for (const opts of (0, alternatives_1.generateAlternatives)(blueprint)) {
42
+ // Separate generation steps with basic features OFF and ON to avoid having too many combinations
43
+ for (const opts of (0, alternatives_1.generateAlternatives)({ ...blueprintWithoutBasicFeatures, ...basicFeatures.OFF })) {
44
+ // crossChainBridging does not currently support upgradeable
45
+ if (!(opts.crossChainBridging && opts.upgradeable)) {
46
+ yield opts;
47
+ }
48
+ }
49
+ for (const opts of (0, alternatives_1.generateAlternatives)({ ...blueprintWithoutBasicFeatures, ...basicFeatures.ON })) {
31
50
  // crossChainBridging does not currently support upgradeable
32
51
  if (!(opts.crossChainBridging && opts.upgradeable)) {
33
52
  yield opts;
@@ -1 +1 @@
1
- {"version":3,"file":"erc20.js","sourceRoot":"","sources":["../../src/generate/erc20.ts"],"names":[],"mappings":";;AA4BA,oDAOC;AAnCD,oCAAwE;AACxE,8DAAsD;AACtD,sDAAqD;AACrD,0CAA0C;AAC1C,wDAAwD;AACxD,iDAAsD;AAEtD,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAE/B,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,CAAC,SAAS,CAAC;IACjB,MAAM,EAAE,CAAC,KAAK,CAAC;IACf,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,iCAAgB,CAAU;IAClD,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,cAAc,EAAE,CAAC,IAAI,CAAC;IACtB,kBAAkB,EAAE,iCAAyB;IAC7C,MAAM,EAAE,kCAAa;IACrB,WAAW,EAAE,oCAAkB;IAC/B,eAAe,EAAE,CAAC,WAAW,CAAC;IAC9B,IAAI,EAAE,sBAAW;CAClB,CAAC;AAEF,QAAe,CAAC,CAAC,oBAAoB;IACnC,KAAK,MAAM,IAAI,IAAI,IAAA,mCAAoB,EAAC,SAAS,CAAC,EAAE,CAAC;QACnD,4DAA4D;QAC5D,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,CAAC;QACb,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"erc20.js","sourceRoot":"","sources":["../../src/generate/erc20.ts"],"names":[],"mappings":";;AAyCA,oDAeC;AAxDD,oCAAwE;AACxE,8DAAsD;AACtD,sDAAqD;AACrD,0CAA0C;AAC1C,wDAAwD;AACxD,iDAAsD;AAEtD,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAE/B,MAAM,6BAA6B,GAAG;IACpC,IAAI,EAAE,CAAC,SAAS,CAAC;IACjB,MAAM,EAAE,CAAC,KAAK,CAAC;IACf,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,iCAAgB,CAAU;IAClD,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,cAAc,EAAE,CAAC,IAAI,CAAC;IACtB,kBAAkB,EAAE,iCAAyB;IAC7C,2BAA2B,EAAE,CAAC,KAAK,CAAC;IACpC,MAAM,EAAE,kCAAa;IACrB,WAAW,EAAE,oCAAkB;IAC/B,eAAe,EAAE,CAAC,WAAW,CAAC;IAC9B,IAAI,EAAE,sBAAW;CAClB,CAAC;AAEF,0EAA0E;AAC1E,MAAM,aAAa,GAAG;IACpB,GAAG,EAAE;QACH,QAAQ,EAAE,CAAC,KAAK,CAAC;QACjB,QAAQ,EAAE,CAAC,KAAK,CAAC;QACjB,MAAM,EAAE,CAAC,KAAK,CAAC;QACf,SAAS,EAAE,CAAC,KAAK,CAAC;KACnB;IACD,EAAE,EAAE;QACF,QAAQ,EAAE,CAAC,IAAI,CAAC;QAChB,QAAQ,EAAE,CAAC,IAAI,CAAC;QAChB,MAAM,EAAE,CAAC,IAAI,CAAC;QACd,SAAS,EAAE,CAAC,IAAI,CAAC;KAClB;CACF,CAAC;AAEF,QAAe,CAAC,CAAC,oBAAoB;IACnC,iGAAiG;IACjG,KAAK,MAAM,IAAI,IAAI,IAAA,mCAAoB,EAAC,EAAE,GAAG,6BAA6B,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QACpG,4DAA4D;QAC5D,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,CAAC;QACb,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,IAAA,mCAAoB,EAAC,EAAE,GAAG,6BAA6B,EAAE,GAAG,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACnG,4DAA4D;QAC5D,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,CAAC;QACb,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stablecoin.d.ts","sourceRoot":"","sources":["../../src/generate/stablecoin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AA+CvD,wBAAiB,yBAAyB,IAAI,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAGnF"}
1
+ {"version":3,"file":"stablecoin.d.ts","sourceRoot":"","sources":["../../src/generate/stablecoin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAiDvD,wBAAiB,yBAAyB,IAAI,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAGnF"}
@@ -19,6 +19,7 @@ const erc20Basic = {
19
19
  premint: ['1'],
20
20
  premintChainId: [''],
21
21
  crossChainBridging: [false],
22
+ crossChainLinkAllowOverride: [false],
22
23
  access: [false],
23
24
  info: [{}],
24
25
  namespacePrefix: ['myProject'],
@@ -36,6 +37,7 @@ const erc20Full = {
36
37
  premint: ['1'],
37
38
  premintChainId: ['10'],
38
39
  crossChainBridging: erc20_1.crossChainBridgingOptions,
40
+ crossChainLinkAllowOverride: [true],
39
41
  access: set_access_control_1.accessOptions,
40
42
  info: set_info_1.infoOptions,
41
43
  namespacePrefix: ['myProject'],
@@ -1 +1 @@
1
- {"version":3,"file":"stablecoin.js","sourceRoot":"","sources":["../../src/generate/stablecoin.ts"],"names":[],"mappings":";;AAkDA,8DAGC;AArDD,oCAAqD;AACrD,8DAAsD;AACtD,0CAA0C;AAE1C,iDAAsD;AAEtD,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAE/B,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,CAAC,cAAc,CAAC;IACtB,MAAM,EAAE,CAAC,KAAK,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,CAAU;IAC1B,QAAQ,EAAE,CAAC,KAAK,CAAU;IAC1B,QAAQ,EAAE,CAAC,KAAK,CAAU;IAC1B,QAAQ,EAAE,CAAC,KAAK,CAAU;IAC1B,MAAM,EAAE,CAAC,KAAK,CAAU;IACxB,KAAK,EAAE,CAAC,KAAK,CAAU;IACvB,SAAS,EAAE,CAAC,KAAK,CAAU;IAC3B,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,cAAc,EAAE,CAAC,EAAE,CAAC;IACpB,kBAAkB,EAAE,CAAC,KAAK,CAAU;IACpC,MAAM,EAAE,CAAC,KAAK,CAAU;IACxB,IAAI,EAAE,CAAC,EAAE,CAAU;IACnB,eAAe,EAAE,CAAC,WAAW,CAAC;CAC/B,CAAC;AAEF,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,CAAC,cAAc,CAAC;IACtB,MAAM,EAAE,CAAC,KAAK,CAAC;IACf,QAAQ,EAAE,CAAC,IAAI,CAAU;IACzB,QAAQ,EAAE,CAAC,IAAI,CAAU;IACzB,QAAQ,EAAE,CAAC,IAAI,CAAU;IACzB,QAAQ,EAAE,CAAC,IAAI,CAAU;IACzB,MAAM,EAAE,CAAC,IAAI,CAAU;IACvB,KAAK,EAAE,CAAC,WAAW,CAAU;IAC7B,SAAS,EAAE,CAAC,IAAI,CAAU;IAC1B,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,cAAc,EAAE,CAAC,IAAI,CAAC;IACtB,kBAAkB,EAAE,iCAAyB;IAC7C,MAAM,EAAE,kCAAa;IACrB,IAAI,EAAE,sBAAW;IACjB,eAAe,EAAE,CAAC,WAAW,CAAC;CAC/B,CAAC;AAEF,MAAM,oBAAoB,GAAG;IAC3B,YAAY,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAU;IACxD,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,CAAC,KAAK,CAAU;CAC9B,CAAC;AAEF,QAAe,CAAC,CAAC,yBAAyB;IACxC,KAAK,CAAC,CAAC,IAAA,mCAAoB,EAAC,EAAE,GAAG,UAAU,EAAE,GAAG,oBAAoB,EAAE,CAAC,CAAC;IACxE,KAAK,CAAC,CAAC,IAAA,mCAAoB,EAAC,EAAE,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"stablecoin.js","sourceRoot":"","sources":["../../src/generate/stablecoin.ts"],"names":[],"mappings":";;AAoDA,8DAGC;AAvDD,oCAAqD;AACrD,8DAAsD;AACtD,0CAA0C;AAE1C,iDAAsD;AAEtD,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAE/B,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,CAAC,cAAc,CAAC;IACtB,MAAM,EAAE,CAAC,KAAK,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,CAAU;IAC1B,QAAQ,EAAE,CAAC,KAAK,CAAU;IAC1B,QAAQ,EAAE,CAAC,KAAK,CAAU;IAC1B,QAAQ,EAAE,CAAC,KAAK,CAAU;IAC1B,MAAM,EAAE,CAAC,KAAK,CAAU;IACxB,KAAK,EAAE,CAAC,KAAK,CAAU;IACvB,SAAS,EAAE,CAAC,KAAK,CAAU;IAC3B,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,cAAc,EAAE,CAAC,EAAE,CAAC;IACpB,kBAAkB,EAAE,CAAC,KAAK,CAAU;IACpC,2BAA2B,EAAE,CAAC,KAAK,CAAU;IAC7C,MAAM,EAAE,CAAC,KAAK,CAAU;IACxB,IAAI,EAAE,CAAC,EAAE,CAAU;IACnB,eAAe,EAAE,CAAC,WAAW,CAAC;CAC/B,CAAC;AAEF,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,CAAC,cAAc,CAAC;IACtB,MAAM,EAAE,CAAC,KAAK,CAAC;IACf,QAAQ,EAAE,CAAC,IAAI,CAAU;IACzB,QAAQ,EAAE,CAAC,IAAI,CAAU;IACzB,QAAQ,EAAE,CAAC,IAAI,CAAU;IACzB,QAAQ,EAAE,CAAC,IAAI,CAAU;IACzB,MAAM,EAAE,CAAC,IAAI,CAAU;IACvB,KAAK,EAAE,CAAC,WAAW,CAAU;IAC7B,SAAS,EAAE,CAAC,IAAI,CAAU;IAC1B,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,cAAc,EAAE,CAAC,IAAI,CAAC;IACtB,kBAAkB,EAAE,iCAAyB;IAC7C,2BAA2B,EAAE,CAAC,IAAI,CAAU;IAC5C,MAAM,EAAE,kCAAa;IACrB,IAAI,EAAE,sBAAW;IACjB,eAAe,EAAE,CAAC,WAAW,CAAC;CAC/B,CAAC;AAEF,MAAM,oBAAoB,GAAG;IAC3B,YAAY,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAU;IACxD,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,CAAC,KAAK,CAAU;CAC9B,CAAC;AAEF,QAAe,CAAC,CAAC,yBAAyB;IACxC,KAAK,CAAC,CAAC,IAAA,mCAAoB,EAAC,EAAE,GAAG,UAAU,EAAE,GAAG,oBAAoB,EAAE,CAAC,CAAC;IACxE,KAAK,CAAC,CAAC,IAAA,mCAAoB,EAAC,EAAE,GAAG,SAAS,EAAE,GAAG,oBAAoB,EAAE,CAAC,CAAC;AACzE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stablecoin.d.ts","sourceRoot":"","sources":["../src/stablecoin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AAK5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQ5C,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAEpD,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,YAAY,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,CAAC;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAMvC,CAAC;AAYX,wBAAgB,eAAe,CAAC,IAAI,GAAE,iBAA4B,GAAG,MAAM,CAE1E;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAEjF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,QAAQ,CAiBjE"}
1
+ {"version":3,"file":"stablecoin.d.ts","sourceRoot":"","sources":["../src/stablecoin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AAK5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAS5C,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAEpD,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,YAAY,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,CAAC;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAMvC,CAAC;AAYX,wBAAgB,eAAe,CAAC,IAAI,GAAE,iBAA4B,GAAG,MAAM,CAE1E;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAEjF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,QAAQ,CAiBjE"}
@@ -28,7 +28,7 @@ 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.freezable || opts.pausable || opts.upgradeable === 'uups';
31
+ return (0, erc20_1.isAccessControlRequired)(opts) || !!opts.restrictions || !!opts.freezable;
32
32
  }
33
33
  function buildStablecoin(opts) {
34
34
  const allOpts = withDefaults(opts);
@@ -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":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Semantic version string representing of the minimum compatible version of Contracts to display in output.
3
3
  */
4
- export declare const compatibleContractsSemver = "^5.5.0";
4
+ export declare const compatibleContractsSemver = "^5.6.0";
5
5
  //# sourceMappingURL=version.d.ts.map
@@ -4,5 +4,5 @@ exports.compatibleContractsSemver = void 0;
4
4
  /**
5
5
  * Semantic version string representing of the minimum compatible version of Contracts to display in output.
6
6
  */
7
- exports.compatibleContractsSemver = '^5.5.0';
7
+ exports.compatibleContractsSemver = '^5.6.0';
8
8
  //# sourceMappingURL=version.js.map
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.5.0"
2
+ "version": "5.6.0"
3
3
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openzeppelin/wizard",
3
- "version": "0.10.6",
3
+ "version": "0.10.7",
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",
@@ -16,20 +16,20 @@
16
16
  "!**/*.test.*"
17
17
  ],
18
18
  "scripts": {
19
- "prepare": "tsc && node dist/scripts/prepare.js",
20
19
  "prepublish": "rimraf dist *.tsbuildinfo && hardhat clean",
21
20
  "test": "ava",
22
21
  "test:update-snapshots": "ava --update-snapshots",
23
22
  "test:watch": "ava --watch",
24
- "update-env": "rm ./src/environments/hardhat/package-lock.json && npm install --package-lock-only --prefix ./src/environments/hardhat && rm ./src/environments/hardhat/upgradeable/package-lock.json && npm install --package-lock-only --prefix ./src/environments/hardhat/upgradeable"
23
+ "update-env": "rm ./src/environments/hardhat/package-lock.json && npm install --package-lock-only --prefix ./src/environments/hardhat && rm ./src/environments/hardhat/upgradeable/package-lock.json && npm install --package-lock-only --prefix ./src/environments/hardhat/upgradeable",
24
+ "prepare": "tsc && node dist/scripts/prepare.js"
25
25
  },
26
26
  "dependencies": {
27
27
  "ethereum-cryptography": "^3.2.0"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@openzeppelin/community-contracts": "git+https://github.com/OpenZeppelin/openzeppelin-community-contracts.git#b0ddd27",
31
- "@openzeppelin/contracts": "^5.5.0",
32
- "@openzeppelin/contracts-upgradeable": "^5.5.0",
31
+ "@openzeppelin/contracts": "^5.6.0",
32
+ "@openzeppelin/contracts-upgradeable": "^5.6.0",
33
33
  "@types/node": "^20.0.0",
34
34
  "@types/semver": "^7.5.7",
35
35
  "ava": "^6.0.0",
@@ -10,7 +10,7 @@
10
10
  "license": "ISC",
11
11
  "devDependencies": {
12
12
  "@nomicfoundation/hardhat-toolbox": "^6.1.0",
13
- "@openzeppelin/contracts": "^5.5.0",
13
+ "@openzeppelin/contracts": "^5.6.0",
14
14
  "hardhat": "^2.22.0"
15
15
  }
16
16
  },
@@ -1219,9 +1219,9 @@
1219
1219
  }
1220
1220
  },
1221
1221
  "node_modules/@openzeppelin/contracts": {
1222
- "version": "5.5.0",
1223
- "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.5.0.tgz",
1224
- "integrity": "sha512-R8hq4zmKKWP2c7OxeRgAcjZwvF5W0Qq2OIX7degrtdM52Q9xYr4MLJdUAVPKGUewNJ1qo+M6YiZLLnNUnjP/gg==",
1222
+ "version": "5.6.0",
1223
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.6.0.tgz",
1224
+ "integrity": "sha512-eZJSS8+RbWzX/7oDJPi+lYzfeuWwHXSsw336Yff35pTkmLEwRWKde2PQMW2objjMi1C1hNn9QiHjGktEJPSSWQ==",
1225
1225
  "dev": true,
1226
1226
  "license": "MIT"
1227
1227
  },
@@ -10,7 +10,7 @@
10
10
  "license": "ISC",
11
11
  "devDependencies": {
12
12
  "@nomicfoundation/hardhat-toolbox": "^6.1.0",
13
- "@openzeppelin/contracts": "^5.5.0",
13
+ "@openzeppelin/contracts": "^5.6.0",
14
14
  "hardhat": "^2.22.0"
15
15
  }
16
16
  }
@@ -10,8 +10,8 @@
10
10
  "license": "ISC",
11
11
  "devDependencies": {
12
12
  "@nomicfoundation/hardhat-toolbox": "^6.1.0",
13
- "@openzeppelin/contracts": "^5.5.0",
14
- "@openzeppelin/contracts-upgradeable": "^5.5.0",
13
+ "@openzeppelin/contracts": "^5.6.0",
14
+ "@openzeppelin/contracts-upgradeable": "^5.6.0",
15
15
  "@openzeppelin/hardhat-upgrades": "^3.0.0",
16
16
  "hardhat": "^2.22.0"
17
17
  }
@@ -1924,20 +1924,20 @@
1924
1924
  }
1925
1925
  },
1926
1926
  "node_modules/@openzeppelin/contracts": {
1927
- "version": "5.5.0",
1928
- "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.5.0.tgz",
1929
- "integrity": "sha512-R8hq4zmKKWP2c7OxeRgAcjZwvF5W0Qq2OIX7degrtdM52Q9xYr4MLJdUAVPKGUewNJ1qo+M6YiZLLnNUnjP/gg==",
1927
+ "version": "5.6.0",
1928
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.6.0.tgz",
1929
+ "integrity": "sha512-eZJSS8+RbWzX/7oDJPi+lYzfeuWwHXSsw336Yff35pTkmLEwRWKde2PQMW2objjMi1C1hNn9QiHjGktEJPSSWQ==",
1930
1930
  "dev": true,
1931
1931
  "license": "MIT"
1932
1932
  },
1933
1933
  "node_modules/@openzeppelin/contracts-upgradeable": {
1934
- "version": "5.5.0",
1935
- "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.5.0.tgz",
1936
- "integrity": "sha512-Va5hKG5oaK0EE5bXTVWugcGimMHazxL+SL523dH6WVbGiuLXwuWr9oxtLyPHQSVGtgmlIgtKNR5V+OUpCIUwFQ==",
1934
+ "version": "5.6.0",
1935
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.6.0.tgz",
1936
+ "integrity": "sha512-pJ4Qb4EGjemdvP/pbBZ+etXDB5PQJJf1tbIBDQqfQZMK3Lk8UuNCK+cWDluHZ28UfwH2WAwJLftyhJid4w63QA==",
1937
1937
  "dev": true,
1938
1938
  "license": "MIT",
1939
1939
  "peerDependencies": {
1940
- "@openzeppelin/contracts": "5.5.0"
1940
+ "@openzeppelin/contracts": "5.6.0"
1941
1941
  }
1942
1942
  },
1943
1943
  "node_modules/@openzeppelin/defender-sdk-base-client": {
@@ -10,8 +10,8 @@
10
10
  "license": "ISC",
11
11
  "devDependencies": {
12
12
  "@nomicfoundation/hardhat-toolbox": "^6.1.0",
13
- "@openzeppelin/contracts": "^5.5.0",
14
- "@openzeppelin/contracts-upgradeable": "^5.5.0",
13
+ "@openzeppelin/contracts": "^5.6.0",
14
+ "@openzeppelin/contracts-upgradeable": "^5.6.0",
15
15
  "@openzeppelin/hardhat-upgrades": "^3.0.0",
16
16
  "hardhat": "^2.22.0"
17
17
  }
package/src/erc20.ts CHANGED
@@ -16,7 +16,7 @@ import { OptionsError } from './error';
16
16
  import { toUint256, UINT256_MAX } from './utils/convert-strings';
17
17
  import { setNamespacedStorage, toStorageStructInstantiation } from './set-namespaced-storage';
18
18
 
19
- export const crossChainBridgingOptions = [false, 'custom', 'superchain'] as const;
19
+ export const crossChainBridgingOptions = [false, 'custom', 'erc7786native', 'superchain'] as const;
20
20
  export type CrossChainBridging = (typeof crossChainBridgingOptions)[number];
21
21
 
22
22
  export interface ERC20Options extends CommonOptions {
@@ -36,6 +36,7 @@ export interface ERC20Options extends CommonOptions {
36
36
  votes?: boolean | ClockMode;
37
37
  flashmint?: boolean;
38
38
  crossChainBridging?: CrossChainBridging;
39
+ crossChainLinkAllowOverride?: boolean;
39
40
  namespacePrefix?: string;
40
41
  }
41
42
 
@@ -53,6 +54,7 @@ export const defaults: Required<ERC20Options> = {
53
54
  votes: false,
54
55
  flashmint: false,
55
56
  crossChainBridging: false,
57
+ crossChainLinkAllowOverride: false,
56
58
  namespacePrefix: 'myProject',
57
59
  } as const;
58
60
 
@@ -70,6 +72,7 @@ export function withDefaults(opts: ERC20Options): Required<ERC20Options> {
70
72
  votes: opts.votes ?? defaults.votes,
71
73
  flashmint: opts.flashmint ?? defaults.flashmint,
72
74
  crossChainBridging: opts.crossChainBridging ?? defaults.crossChainBridging,
75
+ crossChainLinkAllowOverride: opts.crossChainLinkAllowOverride ?? defaults.crossChainLinkAllowOverride,
73
76
  namespacePrefix: opts.namespacePrefix ?? defaults.namespacePrefix,
74
77
  };
75
78
  }
@@ -79,7 +82,13 @@ export function printERC20(opts: ERC20Options = defaults): string {
79
82
  }
80
83
 
81
84
  export function isAccessControlRequired(opts: Partial<ERC20Options>): boolean {
82
- return opts.mintable || opts.pausable || opts.upgradeable === 'uups';
85
+ return (
86
+ opts.mintable ||
87
+ opts.pausable ||
88
+ opts.upgradeable === 'uups' ||
89
+ opts.crossChainBridging === 'custom' ||
90
+ opts.crossChainBridging === 'erc7786native'
91
+ );
83
92
  }
84
93
 
85
94
  export function buildERC20(opts: ERC20Options): ContractBuilder {
@@ -92,7 +101,14 @@ export function buildERC20(opts: ERC20Options): ContractBuilder {
92
101
  addBase(c, allOpts.name, allOpts.symbol);
93
102
 
94
103
  if (allOpts.crossChainBridging) {
95
- addCrossChainBridging(c, allOpts.crossChainBridging, access, upgradeable, allOpts.namespacePrefix);
104
+ addCrossChainBridging(
105
+ c,
106
+ allOpts.crossChainBridging,
107
+ allOpts.crossChainLinkAllowOverride,
108
+ access,
109
+ upgradeable,
110
+ allOpts.namespacePrefix,
111
+ );
96
112
  }
97
113
 
98
114
  if (allOpts.premint) {
@@ -115,14 +131,13 @@ export function buildERC20(opts: ERC20Options): ContractBuilder {
115
131
  addCallback(c);
116
132
  }
117
133
 
118
- // Note: Votes requires Permit
119
- if (allOpts.permit || allOpts.votes) {
134
+ if (allOpts.permit) {
120
135
  addPermit(c, allOpts.name);
121
136
  }
122
137
 
123
138
  if (allOpts.votes) {
124
139
  const clockMode = allOpts.votes === true ? clockModeDefault : allOpts.votes;
125
- addVotes(c, clockMode);
140
+ addVotes(c, allOpts.name, clockMode);
126
141
  }
127
142
 
128
143
  if (allOpts.flashmint) {
@@ -293,9 +308,14 @@ function addPermit(c: ContractBuilder, name: string) {
293
308
  c.addOverride(ERC20Permit, functions.nonces);
294
309
  }
295
310
 
296
- function addVotes(c: ContractBuilder, clockMode: ClockMode) {
311
+ function addVotes(c: ContractBuilder, name: string, clockMode: ClockMode) {
297
312
  if (!c.parents.some(p => p.contract.name === 'ERC20Permit')) {
298
- throw new Error('Missing ERC20Permit requirement for ERC20Votes');
313
+ // ERC20Permit initializes the EIP712 domain separator. If ERC20Permit is not a parent, we need to do it here.
314
+ const EIP712 = {
315
+ name: 'EIP712',
316
+ path: '@openzeppelin/contracts/utils/cryptography/EIP712.sol',
317
+ };
318
+ c.addParent(EIP712, [name, '1']);
299
319
  }
300
320
 
301
321
  const ERC20Votes = {
@@ -327,6 +347,40 @@ function addFlashMint(c: ContractBuilder) {
327
347
  }
328
348
 
329
349
  function addCrossChainBridging(
350
+ c: ContractBuilder,
351
+ crossChainBridging: 'custom' | 'erc7786native' | 'superchain',
352
+ crossChainLinkAllowOverride: boolean,
353
+ access: Access,
354
+ upgradeable: Upgradeable,
355
+ namespacePrefix: string,
356
+ ) {
357
+ if (crossChainBridging === 'erc7786native') {
358
+ addERC20Crosschain(c, crossChainLinkAllowOverride, access);
359
+ } else {
360
+ addERC20Bridgeable(c, crossChainBridging, access, upgradeable, namespacePrefix);
361
+ }
362
+ }
363
+
364
+ function addERC20Crosschain(c: ContractBuilder, crossChainLinkAllowOverride: boolean, access: Access) {
365
+ c.addParent({
366
+ name: 'ERC20Crosschain',
367
+ path: '@openzeppelin/contracts/token/ERC20/extensions/ERC20Crosschain.sol',
368
+ });
369
+
370
+ c.addConstructionOnly(
371
+ {
372
+ name: 'CrosschainLinked',
373
+ path: '@openzeppelin/contracts/crosschain/CrosschainLinked.sol',
374
+ },
375
+ [{ lit: 'links' }],
376
+ );
377
+ c.addConstructorArgument({ type: 'CrosschainLinked.Link[] memory', name: 'links' });
378
+
379
+ requireAccessControl(c, functions.setLink, access, 'CROSSCHAIN_LINKER', 'crosschainLinker');
380
+ c.addFunctionCode(`_setLink(gateway, counterpart, ${crossChainLinkAllowOverride});`, functions.setLink);
381
+ }
382
+
383
+ function addERC20Bridgeable(
330
384
  c: ContractBuilder,
331
385
  crossChainBridging: 'custom' | 'superchain',
332
386
  access: Access,
@@ -358,31 +412,57 @@ function addCrossChainBridging(
358
412
  }
359
413
 
360
414
  function addCustomBridging(c: ContractBuilder, access: Access, upgradeable: Upgradeable, namespacePrefix: string) {
415
+ if (access === false) {
416
+ access = 'ownable';
417
+ }
418
+
361
419
  switch (access) {
362
- case false:
363
420
  case 'ownable': {
364
421
  if (!upgradeable) {
422
+ const LINES_CHECK_AND_SET_TOKEN_BRIDGE = [
423
+ `require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");`,
424
+ `tokenBridge = tokenBridge_;`,
425
+ ];
426
+
427
+ // Add variable and constructor logic using state variable
365
428
  const addedBridge = c.addStateVariable(`address public tokenBridge;`, false);
366
429
  if (addedBridge) {
367
430
  c.addConstructorArgument({ type: 'address', name: 'tokenBridge_' });
368
- c.addConstructorCode(`require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");`);
369
- c.addConstructorCode(`tokenBridge = tokenBridge_;`);
431
+ LINES_CHECK_AND_SET_TOKEN_BRIDGE.forEach(line => {
432
+ c.addConstructorCode(line);
433
+ });
370
434
  }
371
435
  c.setFunctionBody([`if (caller != tokenBridge) revert Unauthorized();`], functions._checkTokenBridge, 'view');
436
+
437
+ // Add bridge setter
438
+ requireAccessControl(c, functions.setTokenBridge, access, 'TOKEN_BRIDGE_SETTER', 'tokenBridgeSetter');
439
+ LINES_CHECK_AND_SET_TOKEN_BRIDGE.forEach(line => {
440
+ c.addFunctionCode(line, functions.setTokenBridge);
441
+ });
372
442
  } else {
443
+ const LINES_CHECK_AND_SET_TOKEN_BRIDGE = [
444
+ `require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");`,
445
+ toStorageStructInstantiation(c.name),
446
+ '$.tokenBridge = tokenBridge_;',
447
+ ];
448
+
449
+ // Add variable and constructor logic using namespaced storage
373
450
  setNamespacedStorage(c, ['address tokenBridge;'], namespacePrefix);
374
451
 
375
452
  c.addConstructorArgument({ type: 'address', name: 'tokenBridge_' });
376
- c.addConstructorCode(`require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");`);
377
-
378
- c.addConstructorCode(toStorageStructInstantiation(c.name));
379
- c.addConstructorCode(`$.tokenBridge = tokenBridge_;`);
453
+ LINES_CHECK_AND_SET_TOKEN_BRIDGE.forEach(line => {
454
+ c.addConstructorCode(line);
455
+ });
380
456
 
381
457
  c.setFunctionBody(
382
458
  [toStorageStructInstantiation(c.name), `if (caller != $.tokenBridge) revert Unauthorized();`],
383
459
  functions._checkTokenBridge,
384
460
  'view',
385
461
  );
462
+
463
+ // Add bridge setter
464
+ requireAccessControl(c, functions.setTokenBridge, access, 'TOKEN_BRIDGE_SETTER', 'tokenBridgeSetter');
465
+ c.setFunctionBody(LINES_CHECK_AND_SET_TOKEN_BRIDGE, functions.setTokenBridge);
386
466
  }
387
467
  break;
388
468
  }
@@ -502,4 +582,17 @@ export const functions = defineFunctions({
502
582
  kind: 'internal' as const,
503
583
  args: [{ name: 'caller', type: 'address' }],
504
584
  },
585
+
586
+ setTokenBridge: {
587
+ kind: 'public' as const,
588
+ args: [{ name: 'tokenBridge_', type: 'address' }],
589
+ },
590
+
591
+ setLink: {
592
+ kind: 'public' as const,
593
+ args: [
594
+ { name: 'gateway', type: 'address' },
595
+ { name: 'counterpart', type: 'bytes memory' },
596
+ ],
597
+ },
505
598
  });
@@ -7,27 +7,48 @@ import { generateAlternatives } from './alternatives';
7
7
 
8
8
  const booleans = [true, false];
9
9
 
10
- const blueprint = {
10
+ const blueprintWithoutBasicFeatures = {
11
11
  name: ['MyToken'],
12
12
  symbol: ['MTK'],
13
- burnable: booleans,
14
13
  pausable: booleans,
15
14
  mintable: booleans,
16
- callback: booleans,
17
- permit: booleans,
18
15
  votes: [...booleans, ...clockModeOptions] as const,
19
- flashmint: booleans,
20
16
  premint: ['1'],
21
17
  premintChainId: ['10'],
22
18
  crossChainBridging: crossChainBridgingOptions,
19
+ crossChainLinkAllowOverride: [false],
23
20
  access: accessOptions,
24
21
  upgradeable: upgradeableOptions,
25
22
  namespacePrefix: ['myProject'],
26
23
  info: infoOptions,
27
24
  };
28
25
 
26
+ // Basic features that do not depend on other features like access control
27
+ const basicFeatures = {
28
+ OFF: {
29
+ burnable: [false],
30
+ callback: [false],
31
+ permit: [false],
32
+ flashmint: [false],
33
+ },
34
+ ON: {
35
+ burnable: [true],
36
+ callback: [true],
37
+ permit: [true],
38
+ flashmint: [true],
39
+ },
40
+ };
41
+
29
42
  export function* generateERC20Options(): Generator<Required<ERC20Options>> {
30
- for (const opts of generateAlternatives(blueprint)) {
43
+ // Separate generation steps with basic features OFF and ON to avoid having too many combinations
44
+ for (const opts of generateAlternatives({ ...blueprintWithoutBasicFeatures, ...basicFeatures.OFF })) {
45
+ // crossChainBridging does not currently support upgradeable
46
+ if (!(opts.crossChainBridging && opts.upgradeable)) {
47
+ yield opts;
48
+ }
49
+ }
50
+
51
+ for (const opts of generateAlternatives({ ...blueprintWithoutBasicFeatures, ...basicFeatures.ON })) {
31
52
  // crossChainBridging does not currently support upgradeable
32
53
  if (!(opts.crossChainBridging && opts.upgradeable)) {
33
54
  yield opts;
@@ -19,6 +19,7 @@ const erc20Basic = {
19
19
  premint: ['1'],
20
20
  premintChainId: [''],
21
21
  crossChainBridging: [false] as const,
22
+ crossChainLinkAllowOverride: [false] as const,
22
23
  access: [false] as const,
23
24
  info: [{}] as const,
24
25
  namespacePrefix: ['myProject'],
@@ -37,6 +38,7 @@ const erc20Full = {
37
38
  premint: ['1'],
38
39
  premintChainId: ['10'],
39
40
  crossChainBridging: crossChainBridgingOptions,
41
+ crossChainLinkAllowOverride: [true] as const,
40
42
  access: accessOptions,
41
43
  info: infoOptions,
42
44
  namespacePrefix: ['myProject'],
package/src/stablecoin.ts CHANGED
@@ -9,6 +9,7 @@ import {
9
9
  defaults as erc20defaults,
10
10
  withDefaults as withERC20Defaults,
11
11
  functions as erc20functions,
12
+ isAccessControlRequired as erc20isAccessControlRequired,
12
13
  } from './erc20';
13
14
 
14
15
  export type Limitations = 'allowlist' | 'blocklist';
@@ -41,7 +42,7 @@ export function printStablecoin(opts: StablecoinOptions = defaults): string {
41
42
  }
42
43
 
43
44
  export function isAccessControlRequired(opts: Partial<StablecoinOptions>): boolean {
44
- return opts.mintable || opts.restrictions !== false || opts.freezable || opts.pausable || opts.upgradeable === 'uups';
45
+ return erc20isAccessControlRequired(opts) || !!opts.restrictions || !!opts.freezable;
45
46
  }
46
47
 
47
48
  export function buildStablecoin(opts: StablecoinOptions): Contract {
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Semantic version string representing of the minimum compatible version of Contracts to display in output.
3
3
  */
4
- export const compatibleContractsSemver = '^5.5.0';
4
+ export const compatibleContractsSemver = '^5.6.0';