@openzeppelin/wizard 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/README.md +28 -1
  2. package/dist/add-pausable.d.ts.map +1 -1
  3. package/dist/add-pausable.js +2 -2
  4. package/dist/add-pausable.js.map +1 -1
  5. package/dist/api.d.ts +8 -0
  6. package/dist/api.d.ts.map +1 -1
  7. package/dist/api.js +15 -5
  8. package/dist/api.js.map +1 -1
  9. package/dist/build-generic.d.ts +4 -0
  10. package/dist/build-generic.d.ts.map +1 -1
  11. package/dist/build-generic.js +3 -0
  12. package/dist/build-generic.js.map +1 -1
  13. package/dist/common-options.js +2 -2
  14. package/dist/common-options.js.map +1 -1
  15. package/dist/custom.d.ts +11 -0
  16. package/dist/custom.d.ts.map +1 -0
  17. package/dist/custom.js +47 -0
  18. package/dist/custom.js.map +1 -0
  19. package/dist/environments/hardhat/package-lock.json +14913 -0
  20. package/dist/environments/hardhat/package.json +34 -0
  21. package/dist/environments/hardhat/upgradeable/package-lock.json +15333 -0
  22. package/dist/environments/hardhat/upgradeable/package.json +35 -0
  23. package/dist/erc1155.d.ts +2 -0
  24. package/dist/erc1155.d.ts.map +1 -1
  25. package/dist/erc1155.js +16 -7
  26. package/dist/erc1155.js.map +1 -1
  27. package/dist/erc20.d.ts +1 -0
  28. package/dist/erc20.d.ts.map +1 -1
  29. package/dist/erc20.js +8 -3
  30. package/dist/erc20.js.map +1 -1
  31. package/dist/erc721.d.ts +1 -0
  32. package/dist/erc721.d.ts.map +1 -1
  33. package/dist/erc721.js +9 -2
  34. package/dist/erc721.js.map +1 -1
  35. package/dist/generate/custom.d.ts +3 -0
  36. package/dist/generate/custom.d.ts.map +1 -0
  37. package/dist/generate/custom.js +20 -0
  38. package/dist/generate/custom.js.map +1 -0
  39. package/dist/generate/erc1155.d.ts.map +1 -1
  40. package/dist/generate/erc1155.js +1 -0
  41. package/dist/generate/erc1155.js.map +1 -1
  42. package/dist/generate/sources.d.ts.map +1 -1
  43. package/dist/generate/sources.js +5 -1
  44. package/dist/generate/sources.js.map +1 -1
  45. package/dist/governor.d.ts +1 -0
  46. package/dist/governor.d.ts.map +1 -1
  47. package/dist/governor.js +8 -2
  48. package/dist/governor.js.map +1 -1
  49. package/dist/index.d.ts +1 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +2 -1
  52. package/dist/index.js.map +1 -1
  53. package/dist/kind.js +1 -0
  54. package/dist/kind.js.map +1 -1
  55. package/dist/print.d.ts.map +1 -1
  56. package/dist/print.js +21 -14
  57. package/dist/print.js.map +1 -1
  58. package/dist/set-access-control.d.ts +9 -2
  59. package/dist/set-access-control.d.ts.map +1 -1
  60. package/dist/set-access-control.js +27 -6
  61. package/dist/set-access-control.js.map +1 -1
  62. package/dist/set-upgradeable.d.ts.map +1 -1
  63. package/dist/set-upgradeable.js +1 -1
  64. package/dist/set-upgradeable.js.map +1 -1
  65. package/dist/solidity-version.json +1 -0
  66. package/dist/test.js +30 -1
  67. package/dist/test.js.map +1 -1
  68. package/dist/utils/format-lines.d.ts +1 -0
  69. package/dist/utils/format-lines.d.ts.map +1 -1
  70. package/dist/utils/format-lines.js +9 -5
  71. package/dist/utils/format-lines.js.map +1 -1
  72. package/dist/zip-hardhat.d.ts +5 -0
  73. package/dist/zip-hardhat.d.ts.map +1 -0
  74. package/dist/zip-hardhat.js +187 -0
  75. package/dist/zip-hardhat.js.map +1 -0
  76. package/dist/zip.js +1 -1
  77. package/dist/zip.js.map +1 -1
  78. package/package.json +8 -6
  79. package/src/add-pausable.ts +3 -3
  80. package/src/api.ts +25 -8
  81. package/src/build-generic.ts +5 -0
  82. package/src/common-options.ts +2 -2
  83. package/src/custom.ts +55 -0
  84. package/src/environments/hardhat/package-lock.json +14913 -0
  85. package/src/environments/hardhat/package.json +34 -0
  86. package/src/environments/hardhat/upgradeable/package-lock.json +15333 -0
  87. package/src/environments/hardhat/upgradeable/package.json +35 -0
  88. package/src/erc1155.ts +17 -7
  89. package/src/erc20.ts +8 -4
  90. package/src/erc721.ts +9 -3
  91. package/src/generate/custom.ts +19 -0
  92. package/src/generate/erc1155.ts +1 -0
  93. package/src/generate/sources.ts +6 -1
  94. package/src/governor.ts +7 -2
  95. package/src/index.ts +1 -1
  96. package/src/kind.ts +1 -0
  97. package/src/print.ts +18 -14
  98. package/src/set-access-control.ts +27 -4
  99. package/src/set-upgradeable.ts +2 -2
  100. package/src/solidity-version.json +1 -0
  101. package/src/test.ts +34 -2
  102. package/src/utils/format-lines.ts +8 -3
  103. package/src/zip-hardhat.ts +186 -0
  104. package/src/zip.ts +1 -1
  105. package/dist/contract.test.d.ts +0 -2
  106. package/dist/contract.test.d.ts.map +0 -1
  107. package/dist/contract.test.js +0 -147
  108. package/dist/contract.test.js.map +0 -1
  109. package/dist/erc1155.test.d.ts +0 -2
  110. package/dist/erc1155.test.d.ts.map +0 -1
  111. package/dist/erc1155.test.js +0 -80
  112. package/dist/erc1155.test.js.map +0 -1
  113. package/dist/erc20.test.d.ts +0 -2
  114. package/dist/erc20.test.d.ts.map +0 -1
  115. package/dist/erc20.test.js +0 -126
  116. package/dist/erc20.test.js.map +0 -1
  117. package/dist/erc721.test.d.ts +0 -2
  118. package/dist/erc721.test.d.ts.map +0 -1
  119. package/dist/erc721.test.js +0 -106
  120. package/dist/erc721.test.js.map +0 -1
  121. package/dist/general.d.ts +0 -8
  122. package/dist/general.d.ts.map +0 -1
  123. package/dist/general.js +0 -22
  124. package/dist/general.js.map +0 -1
  125. package/dist/general.test.d.ts +0 -2
  126. package/dist/general.test.d.ts.map +0 -1
  127. package/dist/general.test.js +0 -42
  128. package/dist/general.test.js.map +0 -1
  129. package/dist/governor.test.d.ts +0 -2
  130. package/dist/governor.test.d.ts.map +0 -1
  131. package/dist/governor.test.js +0 -104
  132. package/dist/governor.test.js.map +0 -1
  133. package/dist/utils/to-identifier.test.d.ts +0 -2
  134. package/dist/utils/to-identifier.test.d.ts.map +0 -1
  135. package/dist/utils/to-identifier.test.js +0 -21
  136. package/dist/utils/to-identifier.test.js.map +0 -1
  137. package/dist/zip.test.d.ts +0 -2
  138. package/dist/zip.test.d.ts.map +0 -1
  139. package/dist/zip.test.js +0 -37
  140. package/dist/zip.test.js.map +0 -1
  141. package/src/contract.test.ts +0 -164
  142. package/src/contract.test.ts.md +0 -272
  143. package/src/contract.test.ts.snap +0 -0
  144. package/src/erc1155.test.ts +0 -90
  145. package/src/erc1155.test.ts.md +0 -416
  146. package/src/erc1155.test.ts.snap +0 -0
  147. package/src/erc20.test.ts +0 -144
  148. package/src/erc20.test.ts.md +0 -571
  149. package/src/erc20.test.ts.snap +0 -0
  150. package/src/erc721.test.ts +0 -122
  151. package/src/erc721.test.ts.md +0 -517
  152. package/src/erc721.test.ts.snap +0 -0
  153. package/src/governor.test.ts +0 -120
  154. package/src/governor.test.ts.md +0 -1419
  155. package/src/governor.test.ts.snap +0 -0
  156. package/src/utils/to-identifier.test.ts +0 -20
  157. package/src/zip.test.ts +0 -35
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # OpenZeppelin Contracts Wizard for Solidity
2
2
 
3
+ [![NPM Package](https://img.shields.io/npm/v/@openzeppelin/wizard?color=%234e5de4)](https://www.npmjs.com/package/@openzeppelin/wizard)
4
+
3
5
  Interactively build a contract out of components from OpenZeppelin Contracts. Provide parameters and desired features for the kind of contract that you want, and the Wizard will generate all of the code necessary. The resulting code is ready to be compiled and deployed, or it can serve as a starting point and customized further with application specific logic.
4
6
 
5
7
  This package provides a programmatic API. For a web interface, see https://wizard.openzeppelin.com
@@ -15,8 +17,9 @@ The following contract types are supported:
15
17
  - `erc721`
16
18
  - `erc1155`
17
19
  - `governor`
20
+ - `custom`
18
21
 
19
- Each contract type has a `print` function and a `defaults` constant as defined below.
22
+ Each contract type has functions/constants as defined below.
20
23
 
21
24
  ### Functions
22
25
 
@@ -33,6 +36,9 @@ function print(opts?: ERC1155Options): string
33
36
  ```js
34
37
  function print(opts?: GovernorOptions): string
35
38
  ```
39
+ ```js
40
+ function print(opts?: CustomOptions): string
41
+ ```
36
42
  Returns a string representation of a contract generated using the provided options. If `opts` is not provided, uses [`defaults`](#defaults).
37
43
 
38
44
  #### `defaults`
@@ -48,8 +54,29 @@ const defaults: Required<ERC1155Options>
48
54
  ```js
49
55
  const defaults: Required<GovernorOptions>
50
56
  ```
57
+ ```js
58
+ const defaults: Required<CustomOptions>
59
+ ```
51
60
  The default options that are used for [`print`](#print).
52
61
 
62
+ #### `isAccessControlRequired`
63
+ ```js
64
+ function isAccessControlRequired(opts: Partial<ERC20Options>): boolean
65
+ ```
66
+ ```js
67
+ function isAccessControlRequired(opts: Partial<ERC721Options>): boolean
68
+ ```
69
+ ```js
70
+ function isAccessControlRequired(opts: Partial<ERC1155Options>): boolean
71
+ ```
72
+ ```js
73
+ function isAccessControlRequired(opts: Partial<GovernorOptions>): boolean
74
+ ```
75
+ ```js
76
+ function isAccessControlRequired(opts: Partial<CustomOptions>): boolean
77
+ ```
78
+ 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`.
79
+
53
80
  ### Examples
54
81
 
55
82
  Import the contract type(s) that you want to use from the `@openzeppelin/wizard` package:
@@ -1 +1 @@
1
- {"version":3,"file":"add-pausable.d.ts","sourceRoot":"","sources":["../src/add-pausable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,MAAM,EAAoB,MAAM,sBAAsB,CAAC;AAGhE,wBAAgB,WAAW,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,QAe1F"}
1
+ {"version":3,"file":"add-pausable.d.ts","sourceRoot":"","sources":["../src/add-pausable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,MAAM,EAAwB,MAAM,sBAAsB,CAAC;AAGpE,wBAAgB,WAAW,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,QAe1F"}
@@ -11,9 +11,9 @@ function addPausable(c, access, pausableFns) {
11
11
  for (const fn of pausableFns) {
12
12
  c.addModifier('whenNotPaused', fn);
13
13
  }
14
- (0, set_access_control_1.setAccessControl)(c, functions.pause, access, 'PAUSER');
14
+ (0, set_access_control_1.requireAccessControl)(c, functions.pause, access, 'PAUSER');
15
15
  c.addFunctionCode('_pause();', functions.pause);
16
- (0, set_access_control_1.setAccessControl)(c, functions.unpause, access, 'PAUSER');
16
+ (0, set_access_control_1.requireAccessControl)(c, functions.unpause, access, 'PAUSER');
17
17
  c.addFunctionCode('_unpause();', functions.unpause);
18
18
  }
19
19
  exports.addPausable = addPausable;
@@ -1 +1 @@
1
- {"version":3,"file":"add-pausable.js","sourceRoot":"","sources":["../src/add-pausable.ts"],"names":[],"mappings":";;;AACA,6DAAgE;AAChE,+DAA2D;AAE3D,SAAgB,WAAW,CAAC,CAAkB,EAAE,MAAc,EAAE,WAA2B;IACzF,CAAC,CAAC,SAAS,CAAC;QACV,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,+CAA+C;KACtD,CAAC,CAAC;IAEH,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE;QAC5B,CAAC,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;KACpC;IAED,IAAA,qCAAgB,EAAC,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAEhD,IAAA,qCAAgB,EAAC,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC,CAAC,eAAe,CAAC,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC;AAfD,kCAeC;AAED,MAAM,SAAS,GAAG,IAAA,kCAAe,EAAC;IAChC,KAAK,EAAE;QACL,IAAI,EAAE,QAAiB;QACvB,IAAI,EAAE,EAAE;KACT;IAED,OAAO,EAAE;QACP,IAAI,EAAE,QAAiB;QACvB,IAAI,EAAE,EAAE;KACT;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"add-pausable.js","sourceRoot":"","sources":["../src/add-pausable.ts"],"names":[],"mappings":";;;AACA,6DAAoE;AACpE,+DAA2D;AAE3D,SAAgB,WAAW,CAAC,CAAkB,EAAE,MAAc,EAAE,WAA2B;IACzF,CAAC,CAAC,SAAS,CAAC;QACV,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,+CAA+C;KACtD,CAAC,CAAC;IAEH,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE;QAC5B,CAAC,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;KACpC;IAED,IAAA,yCAAoB,EAAC,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAEhD,IAAA,yCAAoB,EAAC,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC,CAAC,eAAe,CAAC,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC;AAfD,kCAeC;AAED,MAAM,SAAS,GAAG,IAAA,kCAAe,EAAC;IAChC,KAAK,EAAE;QACL,IAAI,EAAE,QAAiB;QACvB,IAAI,EAAE,EAAE;KACT;IAED,OAAO,EAAE;QACP,IAAI,EAAE,QAAiB;QACvB,IAAI,EAAE,EAAE;KACT;CACF,CAAC,CAAC"}
package/dist/api.d.ts CHANGED
@@ -3,6 +3,7 @@ import { ERC20Options } from './erc20';
3
3
  import { ERC721Options } from './erc721';
4
4
  import { ERC1155Options } from './erc1155';
5
5
  import { GovernorOptions } from './governor';
6
+ import { CustomOptions } from './custom';
6
7
  export interface WizardContractAPI<Options extends CommonOptions> {
7
8
  /**
8
9
  * Returns a string representation of a contract generated using the provided options. If opts is not provided, uses `defaults`.
@@ -12,13 +13,20 @@ export interface WizardContractAPI<Options extends CommonOptions> {
12
13
  * The default options that are used for `print`.
13
14
  */
14
15
  defaults: Required<Options>;
16
+ /**
17
+ * Whether any of the provided options require access control to be enabled. If this returns `true`, then calling `print` with the
18
+ * same options would cause the `access` option to default to `'ownable'` if it was `undefined` or `false`.
19
+ */
20
+ isAccessControlRequired: (opts: Partial<Options>) => boolean;
15
21
  }
16
22
  export declare type ERC20 = WizardContractAPI<ERC20Options>;
17
23
  export declare type ERC721 = WizardContractAPI<ERC721Options>;
18
24
  export declare type ERC1155 = WizardContractAPI<ERC1155Options>;
19
25
  export declare type Governor = WizardContractAPI<GovernorOptions>;
26
+ export declare type Custom = WizardContractAPI<CustomOptions>;
20
27
  export declare const erc20: ERC20;
21
28
  export declare const erc721: ERC721;
22
29
  export declare const erc1155: ERC1155;
23
30
  export declare const governor: Governor;
31
+ export declare const custom: Custom;
24
32
  //# sourceMappingURL=api.d.ts.map
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,EAAyC,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EAA2C,aAAa,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,EAA6C,cAAc,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,EAA+C,eAAe,EAAE,MAAM,YAAY,CAAC;AAE1F,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,aAAa;IAC9D;;OAEG;IACH,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED,oBAAY,KAAK,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACpD,oBAAY,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AACtD,oBAAY,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACxD,oBAAY,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;AAE1D,eAAO,MAAM,KAAK,EAAE,KAGnB,CAAA;AACD,eAAO,MAAM,MAAM,EAAE,MAGpB,CAAA;AACD,eAAO,MAAM,OAAO,EAAE,OAGrB,CAAA;AACD,eAAO,MAAM,QAAQ,EAAE,QAGtB,CAAA"}
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,EAAkG,YAAY,EAAE,MAAM,SAAS,CAAC;AACvI,OAAO,EAAqG,aAAa,EAAE,MAAM,UAAU,CAAC;AAC5I,OAAO,EAAwG,cAAc,EAAE,MAAM,WAAW,CAAC;AACjJ,OAAO,EAA2G,eAAe,EAAE,MAAM,YAAY,CAAC;AACtJ,OAAO,EAAqG,aAAa,EAAE,MAAM,UAAU,CAAC;AAE5I,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,aAAa;IAC9D;;OAEG;IACH,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE5B;;;OAGG;IACH,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC;CAC9D;AAED,oBAAY,KAAK,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACpD,oBAAY,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AACtD,oBAAY,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACxD,oBAAY,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;AAC1D,oBAAY,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAEtD,eAAO,MAAM,KAAK,EAAE,KAInB,CAAA;AACD,eAAO,MAAM,MAAM,EAAE,MAIpB,CAAA;AACD,eAAO,MAAM,OAAO,EAAE,OAIrB,CAAA;AACD,eAAO,MAAM,QAAQ,EAAE,QAItB,CAAA;AACD,eAAO,MAAM,MAAM,EAAE,MAIpB,CAAA"}
package/dist/api.js CHANGED
@@ -1,24 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.governor = exports.erc1155 = exports.erc721 = exports.erc20 = void 0;
3
+ exports.custom = exports.governor = exports.erc1155 = exports.erc721 = exports.erc20 = void 0;
4
4
  const erc20_1 = require("./erc20");
5
5
  const erc721_1 = require("./erc721");
6
6
  const erc1155_1 = require("./erc1155");
7
7
  const governor_1 = require("./governor");
8
+ const custom_1 = require("./custom");
8
9
  exports.erc20 = {
9
10
  print: erc20_1.printERC20,
10
- defaults: erc20_1.defaults
11
+ defaults: erc20_1.defaults,
12
+ isAccessControlRequired: erc20_1.isAccessControlRequired
11
13
  };
12
14
  exports.erc721 = {
13
15
  print: erc721_1.printERC721,
14
- defaults: erc721_1.defaults
16
+ defaults: erc721_1.defaults,
17
+ isAccessControlRequired: erc721_1.isAccessControlRequired
15
18
  };
16
19
  exports.erc1155 = {
17
20
  print: erc1155_1.printERC1155,
18
- defaults: erc1155_1.defaults
21
+ defaults: erc1155_1.defaults,
22
+ isAccessControlRequired: erc1155_1.isAccessControlRequired
19
23
  };
20
24
  exports.governor = {
21
25
  print: governor_1.printGovernor,
22
- defaults: governor_1.defaults
26
+ defaults: governor_1.defaults,
27
+ isAccessControlRequired: governor_1.isAccessControlRequired
28
+ };
29
+ exports.custom = {
30
+ print: custom_1.printCustom,
31
+ defaults: custom_1.defaults,
32
+ isAccessControlRequired: custom_1.isAccessControlRequired
23
33
  };
24
34
  //# sourceMappingURL=api.js.map
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;AACA,mCAA8E;AAC9E,qCAAkF;AAClF,uCAAsF;AACtF,yCAA0F;AAmB7E,QAAA,KAAK,GAAU;IAC1B,KAAK,EAAE,kBAAU;IACjB,QAAQ,EAAE,gBAAa;CACxB,CAAA;AACY,QAAA,MAAM,GAAW;IAC5B,KAAK,EAAE,oBAAW;IAClB,QAAQ,EAAE,iBAAc;CACzB,CAAA;AACY,QAAA,OAAO,GAAY;IAC9B,KAAK,EAAE,sBAAY;IACnB,QAAQ,EAAE,kBAAe;CAC1B,CAAA;AACY,QAAA,QAAQ,GAAa;IAChC,KAAK,EAAE,wBAAa;IACpB,QAAQ,EAAE,mBAAgB;CAC3B,CAAA"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;AACA,mCAAuI;AACvI,qCAA4I;AAC5I,uCAAiJ;AACjJ,yCAAsJ;AACtJ,qCAA4I;AA0B/H,QAAA,KAAK,GAAU;IAC1B,KAAK,EAAE,kBAAU;IACjB,QAAQ,EAAE,gBAAa;IACvB,uBAAuB,EAAE,+BAA4B;CACtD,CAAA;AACY,QAAA,MAAM,GAAW;IAC5B,KAAK,EAAE,oBAAW;IAClB,QAAQ,EAAE,iBAAc;IACxB,uBAAuB,EAAE,gCAA6B;CACvD,CAAA;AACY,QAAA,OAAO,GAAY;IAC9B,KAAK,EAAE,sBAAY;IACnB,QAAQ,EAAE,kBAAe;IACzB,uBAAuB,EAAE,iCAA8B;CACxD,CAAA;AACY,QAAA,QAAQ,GAAa;IAChC,KAAK,EAAE,wBAAa;IACpB,QAAQ,EAAE,mBAAgB;IAC1B,uBAAuB,EAAE,kCAA+B;CACzD,CAAA;AACY,QAAA,MAAM,GAAW;IAC5B,KAAK,EAAE,oBAAW;IAClB,QAAQ,EAAE,iBAAc;IACxB,uBAAuB,EAAE,gCAA6B;CACvD,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { CustomOptions } from './custom';
1
2
  import { ERC20Options } from './erc20';
2
3
  import { ERC721Options } from './erc721';
3
4
  import { ERC1155Options } from './erc1155';
@@ -15,6 +16,9 @@ export interface KindedOptions {
15
16
  Governor: {
16
17
  kind: 'Governor';
17
18
  } & GovernorOptions;
19
+ Custom: {
20
+ kind: 'Custom';
21
+ } & CustomOptions;
18
22
  }
19
23
  export declare type GenericOptions = KindedOptions[keyof KindedOptions];
20
24
  export declare function buildGeneric(opts: GenericOptions): import("./contract").Contract;
@@ -1 +1 @@
1
- {"version":3,"file":"build-generic.d.ts","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAe,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,cAAc,EAAgB,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,eAAe,EAAiB,MAAM,YAAY,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAK;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAAM,YAAY,CAAC;IAC9C,MAAM,EAAI;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAK,aAAa,CAAC;IAC/C,OAAO,EAAG;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,GAAI,cAAc,CAAC;IAChD,QAAQ,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG,eAAe,CAAC;CAClD;AAED,oBAAY,cAAc,GAAG,aAAa,CAAC,MAAM,aAAa,CAAC,CAAC;AAEhE,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,iCAkBhD"}
1
+ {"version":3,"file":"build-generic.d.ts","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAe,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,YAAY,EAAc,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAe,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,cAAc,EAAgB,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,eAAe,EAAiB,MAAM,YAAY,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAK;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAAM,YAAY,CAAC;IAC9C,MAAM,EAAI;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAK,aAAa,CAAC;IAC/C,OAAO,EAAG;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,GAAI,cAAc,CAAC;IAChD,QAAQ,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG,eAAe,CAAC;IACjD,MAAM,EAAG;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAI,aAAa,CAAC;CAC9C;AAED,oBAAY,cAAc,GAAG,aAAa,CAAC,MAAM,aAAa,CAAC,CAAC;AAEhE,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,iCAqBhD"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildGeneric = void 0;
4
+ const custom_1 = require("./custom");
4
5
  const erc20_1 = require("./erc20");
5
6
  const erc721_1 = require("./erc721");
6
7
  const erc1155_1 = require("./erc1155");
@@ -15,6 +16,8 @@ function buildGeneric(opts) {
15
16
  return (0, erc1155_1.buildERC1155)(opts);
16
17
  case 'Governor':
17
18
  return (0, governor_1.buildGovernor)(opts);
19
+ case 'Custom':
20
+ return (0, custom_1.buildCustom)(opts);
18
21
  default:
19
22
  const _ = opts;
20
23
  throw new Error('Unknown ERC');
@@ -1 +1 @@
1
- {"version":3,"file":"build-generic.js","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":";;;AAAA,mCAAmD;AACnD,qCAAsD;AACtD,uCAAyD;AACzD,yCAA4D;AAW5D,SAAgB,YAAY,CAAC,IAAoB;IAC/C,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,OAAO;YACV,OAAO,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC;QAE1B,KAAK,QAAQ;YACX,OAAO,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAE3B,KAAK,SAAS;YACZ,OAAO,IAAA,sBAAY,EAAC,IAAI,CAAC,CAAC;QAE5B,KAAK,UAAU;YACb,OAAO,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC;QAE7B;YACE,MAAM,CAAC,GAAU,IAAI,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAClC;AACH,CAAC;AAlBD,oCAkBC"}
1
+ {"version":3,"file":"build-generic.js","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":";;;AAAA,qCAAsD;AACtD,mCAAmD;AACnD,qCAAsD;AACtD,uCAAyD;AACzD,yCAA4D;AAY5D,SAAgB,YAAY,CAAC,IAAoB;IAC/C,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,OAAO;YACV,OAAO,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC;QAE1B,KAAK,QAAQ;YACX,OAAO,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAE3B,KAAK,SAAS;YACZ,OAAO,IAAA,sBAAY,EAAC,IAAI,CAAC,CAAC;QAE5B,KAAK,UAAU;YACb,OAAO,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC;QAE7B,KAAK,QAAQ;YACX,OAAO,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAE3B;YACE,MAAM,CAAC,GAAU,IAAI,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAClC;AACH,CAAC;AArBD,oCAqBC"}
@@ -3,14 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.withCommonDefaults = exports.defaults = void 0;
4
4
  const set_info_1 = require("./set-info");
5
5
  exports.defaults = {
6
- access: 'ownable',
6
+ access: false,
7
7
  upgradeable: false,
8
8
  info: set_info_1.defaults,
9
9
  };
10
10
  function withCommonDefaults(opts) {
11
11
  var _a, _b, _c;
12
12
  return {
13
- access: (_a = opts.access) !== null && _a !== void 0 ? _a : 'ownable',
13
+ access: (_a = opts.access) !== null && _a !== void 0 ? _a : false,
14
14
  upgradeable: (_b = opts.upgradeable) !== null && _b !== void 0 ? _b : false,
15
15
  info: (_c = opts.info) !== null && _c !== void 0 ? _c : {},
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"common-options.js","sourceRoot":"","sources":["../src/common-options.ts"],"names":[],"mappings":";;;AAEA,yCAAsD;AAGzC,QAAA,QAAQ,GAA4B;IAC/C,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,KAAK;IAClB,IAAI,EAAE,mBAAY;CACV,CAAC;AAQX,SAAgB,kBAAkB,CAAC,IAAmB;;IACpD,OAAO;QACL,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,SAAS;QAChC,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,KAAK;QACtC,IAAI,EAAE,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE;KACtB,CAAC;AACJ,CAAC;AAND,gDAMC"}
1
+ {"version":3,"file":"common-options.js","sourceRoot":"","sources":["../src/common-options.ts"],"names":[],"mappings":";;;AAEA,yCAAsD;AAGzC,QAAA,QAAQ,GAA4B;IAC/C,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,KAAK;IAClB,IAAI,EAAE,mBAAY;CACV,CAAC;AAQX,SAAgB,kBAAkB,CAAC,IAAmB;;IACpD,OAAO;QACL,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,KAAK;QAC5B,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,KAAK;QACtC,IAAI,EAAE,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE;KACtB,CAAC;AACJ,CAAC;AAND,gDAMC"}
@@ -0,0 +1,11 @@
1
+ import { Contract } from './contract';
2
+ import { CommonOptions } from './common-options';
3
+ export interface CustomOptions extends CommonOptions {
4
+ name: string;
5
+ pausable?: boolean;
6
+ }
7
+ export declare const defaults: Required<CustomOptions>;
8
+ export declare function printCustom(opts?: CustomOptions): string;
9
+ export declare function isAccessControlRequired(opts: Partial<CustomOptions>): boolean;
10
+ export declare function buildCustom(opts: CustomOptions): Contract;
11
+ //# sourceMappingURL=custom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../src/custom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,aAAa,EAAkD,MAAM,kBAAkB,CAAC;AAOjG,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAMnC,CAAC;AAUX,wBAAgB,WAAW,CAAC,IAAI,GAAE,aAAwB,GAAG,MAAM,CAElE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAE7E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,QAAQ,CAgBzD"}
package/dist/custom.js ADDED
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildCustom = exports.isAccessControlRequired = exports.printCustom = exports.defaults = void 0;
4
+ const contract_1 = require("./contract");
5
+ const common_options_1 = require("./common-options");
6
+ const set_upgradeable_1 = require("./set-upgradeable");
7
+ const set_info_1 = require("./set-info");
8
+ const set_access_control_1 = require("./set-access-control");
9
+ const add_pausable_1 = require("./add-pausable");
10
+ const print_1 = require("./print");
11
+ exports.defaults = {
12
+ name: 'MyContract',
13
+ pausable: false,
14
+ access: common_options_1.defaults.access,
15
+ upgradeable: common_options_1.defaults.upgradeable,
16
+ info: common_options_1.defaults.info,
17
+ };
18
+ function withDefaults(opts) {
19
+ var _a;
20
+ return {
21
+ ...opts,
22
+ ...(0, common_options_1.withCommonDefaults)(opts),
23
+ pausable: (_a = opts.pausable) !== null && _a !== void 0 ? _a : exports.defaults.pausable,
24
+ };
25
+ }
26
+ function printCustom(opts = exports.defaults) {
27
+ return (0, print_1.printContract)(buildCustom(opts));
28
+ }
29
+ exports.printCustom = printCustom;
30
+ function isAccessControlRequired(opts) {
31
+ return opts.pausable || opts.upgradeable === 'uups';
32
+ }
33
+ exports.isAccessControlRequired = isAccessControlRequired;
34
+ function buildCustom(opts) {
35
+ const allOpts = withDefaults(opts);
36
+ const c = new contract_1.ContractBuilder(allOpts.name);
37
+ const { access, upgradeable, info } = allOpts;
38
+ if (allOpts.pausable) {
39
+ (0, add_pausable_1.addPausable)(c, access, []);
40
+ }
41
+ (0, set_access_control_1.setAccessControl)(c, access);
42
+ (0, set_upgradeable_1.setUpgradeable)(c, upgradeable, access);
43
+ (0, set_info_1.setInfo)(c, info);
44
+ return c;
45
+ }
46
+ exports.buildCustom = buildCustom;
47
+ //# sourceMappingURL=custom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom.js","sourceRoot":"","sources":["../src/custom.ts"],"names":[],"mappings":";;;AAAA,yCAAuD;AACvD,qDAAiG;AACjG,uDAAmD;AACnD,yCAAqC;AACrC,6DAAwD;AACxD,iDAA6C;AAC7C,mCAAwC;AAO3B,QAAA,QAAQ,GAA4B;IAC/C,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,yBAAc,CAAC,MAAM;IAC7B,WAAW,EAAE,yBAAc,CAAC,WAAW;IACvC,IAAI,EAAE,yBAAc,CAAC,IAAI;CACjB,CAAC;AAEX,SAAS,YAAY,CAAC,IAAmB;;IACvC,OAAO;QACL,GAAG,IAAI;QACP,GAAG,IAAA,mCAAkB,EAAC,IAAI,CAAC;QAC3B,QAAQ,EAAE,MAAA,IAAI,CAAC,QAAQ,mCAAI,gBAAQ,CAAC,QAAQ;KAC7C,CAAC;AACJ,CAAC;AAED,SAAgB,WAAW,CAAC,OAAsB,gBAAQ;IACxD,OAAO,IAAA,qBAAa,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC;AAFD,kCAEC;AAED,SAAgB,uBAAuB,CAAC,IAA4B;IAClE,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC;AACtD,CAAC;AAFD,0DAEC;AAED,SAAgB,WAAW,CAAC,IAAmB;IAC7C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEnC,MAAM,CAAC,GAAG,IAAI,0BAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAE9C,IAAI,OAAO,CAAC,QAAQ,EAAE;QACpB,IAAA,0BAAW,EAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;KAC5B;IAED,IAAA,qCAAgB,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5B,IAAA,gCAAc,EAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACvC,IAAA,kBAAO,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAEjB,OAAO,CAAC,CAAC;AACX,CAAC;AAhBD,kCAgBC"}