@openzeppelin/wizard 0.1.1 → 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 (87) hide show
  1. package/README.md +2 -0
  2. package/dist/environments/hardhat/package-lock.json +14913 -0
  3. package/dist/environments/hardhat/package.json +34 -0
  4. package/dist/environments/hardhat/upgradeable/package-lock.json +15333 -0
  5. package/dist/environments/hardhat/upgradeable/package.json +35 -0
  6. package/dist/erc721.js +2 -0
  7. package/dist/erc721.js.map +1 -1
  8. package/dist/governor.js +1 -1
  9. package/dist/governor.js.map +1 -1
  10. package/dist/print.d.ts.map +1 -1
  11. package/dist/print.js +5 -2
  12. package/dist/print.js.map +1 -1
  13. package/dist/solidity-version.json +1 -0
  14. package/dist/utils/format-lines.d.ts +1 -0
  15. package/dist/utils/format-lines.d.ts.map +1 -1
  16. package/dist/utils/format-lines.js +9 -5
  17. package/dist/utils/format-lines.js.map +1 -1
  18. package/dist/zip-hardhat.d.ts +5 -0
  19. package/dist/zip-hardhat.d.ts.map +1 -0
  20. package/dist/zip-hardhat.js +187 -0
  21. package/dist/zip-hardhat.js.map +1 -0
  22. package/dist/zip.js +1 -1
  23. package/dist/zip.js.map +1 -1
  24. package/package.json +8 -6
  25. package/src/environments/hardhat/package-lock.json +14913 -0
  26. package/src/environments/hardhat/package.json +34 -0
  27. package/src/environments/hardhat/upgradeable/package-lock.json +15333 -0
  28. package/src/environments/hardhat/upgradeable/package.json +35 -0
  29. package/src/erc721.ts +2 -0
  30. package/src/governor.ts +1 -1
  31. package/src/print.ts +1 -2
  32. package/src/solidity-version.json +1 -0
  33. package/src/utils/format-lines.ts +8 -3
  34. package/src/zip-hardhat.ts +186 -0
  35. package/src/zip.ts +1 -1
  36. package/dist/contract.test.d.ts +0 -2
  37. package/dist/contract.test.d.ts.map +0 -1
  38. package/dist/contract.test.js +0 -147
  39. package/dist/contract.test.js.map +0 -1
  40. package/dist/custom.test.d.ts +0 -2
  41. package/dist/custom.test.d.ts.map +0 -1
  42. package/dist/custom.test.js +0 -70
  43. package/dist/custom.test.js.map +0 -1
  44. package/dist/erc1155.test.d.ts +0 -2
  45. package/dist/erc1155.test.d.ts.map +0 -1
  46. package/dist/erc1155.test.js +0 -91
  47. package/dist/erc1155.test.js.map +0 -1
  48. package/dist/erc20.test.d.ts +0 -2
  49. package/dist/erc20.test.d.ts.map +0 -1
  50. package/dist/erc20.test.js +0 -133
  51. package/dist/erc20.test.js.map +0 -1
  52. package/dist/erc721.test.d.ts +0 -2
  53. package/dist/erc721.test.d.ts.map +0 -1
  54. package/dist/erc721.test.js +0 -112
  55. package/dist/erc721.test.js.map +0 -1
  56. package/dist/governor.test.d.ts +0 -2
  57. package/dist/governor.test.d.ts.map +0 -1
  58. package/dist/governor.test.js +0 -108
  59. package/dist/governor.test.js.map +0 -1
  60. package/dist/utils/to-identifier.test.d.ts +0 -2
  61. package/dist/utils/to-identifier.test.d.ts.map +0 -1
  62. package/dist/utils/to-identifier.test.js +0 -21
  63. package/dist/utils/to-identifier.test.js.map +0 -1
  64. package/dist/zip.test.d.ts +0 -2
  65. package/dist/zip.test.d.ts.map +0 -1
  66. package/dist/zip.test.js +0 -37
  67. package/dist/zip.test.js.map +0 -1
  68. package/src/contract.test.ts +0 -164
  69. package/src/contract.test.ts.md +0 -272
  70. package/src/contract.test.ts.snap +0 -0
  71. package/src/custom.test.ts +0 -80
  72. package/src/custom.test.ts.md +0 -154
  73. package/src/custom.test.ts.snap +0 -0
  74. package/src/erc1155.test.ts +0 -103
  75. package/src/erc1155.test.ts.md +0 -432
  76. package/src/erc1155.test.ts.snap +0 -0
  77. package/src/erc20.test.ts +0 -152
  78. package/src/erc20.test.ts.md +0 -571
  79. package/src/erc20.test.ts.snap +0 -0
  80. package/src/erc721.test.ts +0 -129
  81. package/src/erc721.test.ts.md +0 -517
  82. package/src/erc721.test.ts.snap +0 -0
  83. package/src/governor.test.ts +0 -125
  84. package/src/governor.test.ts.md +0 -1419
  85. package/src/governor.test.ts.snap +0 -0
  86. package/src/utils/to-identifier.test.ts +0 -20
  87. package/src/zip.test.ts +0 -35
@@ -1,133 +0,0 @@
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
- const ava_1 = __importDefault(require("ava"));
7
- const _1 = require(".");
8
- const erc20_1 = require("./erc20");
9
- const print_1 = require("./print");
10
- function testERC20(title, opts) {
11
- (0, ava_1.default)(title, t => {
12
- const c = (0, erc20_1.buildERC20)({
13
- name: 'MyToken',
14
- symbol: 'MTK',
15
- ...opts,
16
- });
17
- t.snapshot((0, print_1.printContract)(c));
18
- });
19
- }
20
- /**
21
- * Tests external API for equivalence with internal API
22
- */
23
- function testAPIEquivalence(title, opts) {
24
- (0, ava_1.default)(title, t => {
25
- t.is(_1.erc20.print(opts), (0, print_1.printContract)((0, erc20_1.buildERC20)({
26
- name: 'MyToken',
27
- symbol: 'MTK',
28
- ...opts,
29
- })));
30
- });
31
- }
32
- testERC20('basic erc20', {});
33
- testERC20('erc20 with snapshots', {
34
- snapshots: true,
35
- });
36
- testERC20('erc20 burnable', {
37
- burnable: true,
38
- });
39
- testERC20('erc20 burnable with snapshots', {
40
- burnable: true,
41
- snapshots: true,
42
- });
43
- testERC20('erc20 pausable', {
44
- pausable: true,
45
- access: 'ownable',
46
- });
47
- testERC20('erc20 pausable with roles', {
48
- pausable: true,
49
- access: 'roles',
50
- });
51
- testERC20('erc20 burnable pausable', {
52
- burnable: true,
53
- pausable: true,
54
- });
55
- testERC20('erc20 burnable pausable with snapshots', {
56
- burnable: true,
57
- pausable: true,
58
- snapshots: true,
59
- });
60
- testERC20('erc20 preminted', {
61
- premint: '1000',
62
- });
63
- testERC20('erc20 premint of 0', {
64
- premint: '0',
65
- });
66
- testERC20('erc20 mintable', {
67
- mintable: true,
68
- access: 'ownable',
69
- });
70
- testERC20('erc20 mintable with roles', {
71
- mintable: true,
72
- access: 'roles',
73
- });
74
- testERC20('erc20 permit', {
75
- permit: true,
76
- });
77
- testERC20('erc20 votes', {
78
- votes: true,
79
- });
80
- testERC20('erc20 flashmint', {
81
- flashmint: true,
82
- });
83
- testERC20('erc20 full upgradeable transparent', {
84
- premint: '2000',
85
- access: 'roles',
86
- burnable: true,
87
- mintable: true,
88
- pausable: true,
89
- snapshots: true,
90
- permit: true,
91
- votes: true,
92
- flashmint: true,
93
- upgradeable: 'transparent',
94
- });
95
- testERC20('erc20 full upgradeable uups', {
96
- premint: '2000',
97
- access: 'roles',
98
- burnable: true,
99
- mintable: true,
100
- pausable: true,
101
- snapshots: true,
102
- permit: true,
103
- votes: true,
104
- flashmint: true,
105
- upgradeable: 'uups',
106
- });
107
- testAPIEquivalence('erc20 API default');
108
- testAPIEquivalence('erc20 API basic', { name: 'CustomToken', symbol: 'CTK' });
109
- testAPIEquivalence('erc20 API full upgradeable', {
110
- name: 'CustomToken',
111
- symbol: 'CTK',
112
- premint: '2000',
113
- access: 'roles',
114
- burnable: true,
115
- mintable: true,
116
- pausable: true,
117
- snapshots: true,
118
- permit: true,
119
- votes: true,
120
- flashmint: true,
121
- upgradeable: 'uups',
122
- });
123
- (0, ava_1.default)('erc20 API assert defaults', async (t) => {
124
- t.is(_1.erc20.print(_1.erc20.defaults), _1.erc20.print());
125
- });
126
- (0, ava_1.default)('erc20 API isAccessControlRequired', async (t) => {
127
- t.is(_1.erc20.isAccessControlRequired({ mintable: true }), true);
128
- t.is(_1.erc20.isAccessControlRequired({ pausable: true }), true);
129
- t.is(_1.erc20.isAccessControlRequired({ snapshots: true }), true);
130
- t.is(_1.erc20.isAccessControlRequired({ upgradeable: 'uups' }), true);
131
- t.is(_1.erc20.isAccessControlRequired({ upgradeable: 'transparent' }), false);
132
- });
133
- //# sourceMappingURL=erc20.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"erc20.test.js","sourceRoot":"","sources":["../src/erc20.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=erc721.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"erc721.test.d.ts","sourceRoot":"","sources":["../src/erc721.test.ts"],"names":[],"mappings":""}
@@ -1,112 +0,0 @@
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
- const ava_1 = __importDefault(require("ava"));
7
- const _1 = require(".");
8
- const erc721_1 = require("./erc721");
9
- const print_1 = require("./print");
10
- function testERC721(title, opts) {
11
- (0, ava_1.default)(title, t => {
12
- const c = (0, erc721_1.buildERC721)({
13
- name: 'MyToken',
14
- symbol: 'MTK',
15
- ...opts,
16
- });
17
- t.snapshot((0, print_1.printContract)(c));
18
- });
19
- }
20
- /**
21
- * Tests external API for equivalence with internal API
22
- */
23
- function testAPIEquivalence(title, opts) {
24
- (0, ava_1.default)(title, t => {
25
- t.is(_1.erc721.print(opts), (0, print_1.printContract)((0, erc721_1.buildERC721)({
26
- name: 'MyToken',
27
- symbol: 'MTK',
28
- ...opts,
29
- })));
30
- });
31
- }
32
- testERC721('basic', {});
33
- testERC721('base uri', {
34
- baseUri: 'https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/',
35
- });
36
- testERC721('enumerable', {
37
- enumerable: true,
38
- });
39
- testERC721('uri storage', {
40
- uriStorage: true,
41
- });
42
- testERC721('mintable + uri storage', {
43
- mintable: true,
44
- uriStorage: true,
45
- });
46
- testERC721('mintable + uri storage + incremental', {
47
- mintable: true,
48
- uriStorage: true,
49
- incremental: true,
50
- });
51
- testERC721('burnable', {
52
- burnable: true,
53
- });
54
- testERC721('burnable + uri storage', {
55
- uriStorage: true,
56
- burnable: true,
57
- });
58
- testERC721('pausable', {
59
- pausable: true,
60
- });
61
- testERC721('mintable', {
62
- mintable: true,
63
- });
64
- testERC721('mintable + roles', {
65
- mintable: true,
66
- access: 'roles',
67
- });
68
- testERC721('mintable + incremental', {
69
- mintable: true,
70
- incremental: true,
71
- });
72
- testERC721('votes', {
73
- votes: true,
74
- });
75
- testERC721('full upgradeable transparent', {
76
- mintable: true,
77
- enumerable: true,
78
- pausable: true,
79
- burnable: true,
80
- votes: true,
81
- upgradeable: 'transparent',
82
- });
83
- testERC721('full upgradeable uups', {
84
- mintable: true,
85
- enumerable: true,
86
- pausable: true,
87
- burnable: true,
88
- votes: true,
89
- upgradeable: 'uups',
90
- });
91
- testAPIEquivalence('API default');
92
- testAPIEquivalence('API basic', { name: 'CustomToken', symbol: 'CTK' });
93
- testAPIEquivalence('API full upgradeable', {
94
- name: 'CustomToken',
95
- symbol: 'CTK',
96
- mintable: true,
97
- enumerable: true,
98
- pausable: true,
99
- burnable: true,
100
- votes: true,
101
- upgradeable: 'uups',
102
- });
103
- (0, ava_1.default)('API assert defaults', async (t) => {
104
- t.is(_1.erc721.print(_1.erc721.defaults), _1.erc721.print());
105
- });
106
- (0, ava_1.default)('API isAccessControlRequired', async (t) => {
107
- t.is(_1.erc721.isAccessControlRequired({ mintable: true }), true);
108
- t.is(_1.erc721.isAccessControlRequired({ pausable: true }), true);
109
- t.is(_1.erc721.isAccessControlRequired({ upgradeable: 'uups' }), true);
110
- t.is(_1.erc721.isAccessControlRequired({ upgradeable: 'transparent' }), false);
111
- });
112
- //# sourceMappingURL=erc721.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"erc721.test.js","sourceRoot":"","sources":["../src/erc721.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=governor.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"governor.test.d.ts","sourceRoot":"","sources":["../src/governor.test.ts"],"names":[],"mappings":""}
@@ -1,108 +0,0 @@
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
- const ava_1 = __importDefault(require("ava"));
7
- const _1 = require(".");
8
- const governor_1 = require("./governor");
9
- const print_1 = require("./print");
10
- function testGovernor(title, opts) {
11
- (0, ava_1.default)(title, t => {
12
- const c = (0, governor_1.buildGovernor)({
13
- name: 'MyGovernor',
14
- delay: '1 week',
15
- period: '1 week',
16
- settings: false,
17
- ...opts,
18
- });
19
- t.snapshot((0, print_1.printContract)(c));
20
- });
21
- }
22
- /**
23
- * Tests external API for equivalence with internal API
24
- */
25
- function testAPIEquivalence(title, opts) {
26
- (0, ava_1.default)(title, t => {
27
- t.is(_1.governor.print(opts), (0, print_1.printContract)((0, governor_1.buildGovernor)({
28
- name: 'MyGovernor',
29
- delay: '1 block',
30
- period: '1 week',
31
- ...opts,
32
- })));
33
- });
34
- }
35
- testGovernor('governor with proposal threshold', {
36
- proposalThreshold: '1',
37
- });
38
- testGovernor('governor with custom block time', {
39
- blockTime: 6,
40
- });
41
- testGovernor('governor with custom decimals', {
42
- decimals: 6,
43
- proposalThreshold: '1',
44
- quorumMode: 'absolute',
45
- quorumAbsolute: '1',
46
- });
47
- testGovernor('governor with 0 decimals', {
48
- decimals: 0,
49
- proposalThreshold: '1',
50
- quorumMode: 'absolute',
51
- quorumAbsolute: '1',
52
- });
53
- testGovernor('governor with settings', {
54
- settings: true,
55
- proposalThreshold: '1',
56
- });
57
- testGovernor('governor with bravo', {
58
- bravo: true,
59
- });
60
- testGovernor('governor with erc20votes', {
61
- votes: 'erc20votes',
62
- });
63
- testGovernor('governor with erc721votes', {
64
- votes: 'erc721votes',
65
- });
66
- testGovernor('governor with erc721votes omit decimals', {
67
- votes: 'erc721votes',
68
- decimals: 6,
69
- proposalThreshold: '1',
70
- quorumMode: 'absolute',
71
- quorumAbsolute: '5',
72
- });
73
- testGovernor('governor with erc721votes settings omit decimals', {
74
- votes: 'erc721votes',
75
- decimals: 6,
76
- proposalThreshold: '10',
77
- settings: true,
78
- });
79
- testGovernor('governor with comp', {
80
- votes: 'comp',
81
- quorumMode: 'absolute',
82
- quorumAbsolute: '1',
83
- });
84
- testGovernor('governor with percent quorum', {
85
- quorumMode: 'percent',
86
- quorumPercent: 6,
87
- });
88
- testGovernor('governor with fractional percent quorum', {
89
- quorumMode: 'percent',
90
- quorumPercent: 0.5,
91
- });
92
- testGovernor('governor with openzeppelin timelock', {
93
- timelock: 'openzeppelin',
94
- });
95
- testGovernor('governor with compound timelock', {
96
- timelock: 'compound',
97
- });
98
- testAPIEquivalence('API default');
99
- testAPIEquivalence('API basic', { name: 'CustomGovernor', delay: '2 weeks', period: '2 week' });
100
- testAPIEquivalence('API basic upgradeable', { name: 'CustomGovernor', delay: '2 weeks', period: '2 week', upgradeable: 'uups' });
101
- (0, ava_1.default)('API assert defaults', async (t) => {
102
- t.is(_1.governor.print(_1.governor.defaults), _1.governor.print());
103
- });
104
- (0, ava_1.default)('API isAccessControlRequired', async (t) => {
105
- t.is(_1.governor.isAccessControlRequired({ upgradeable: 'uups' }), true);
106
- t.is(_1.governor.isAccessControlRequired({}), false);
107
- });
108
- //# sourceMappingURL=governor.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"governor.test.js","sourceRoot":"","sources":["../src/governor.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=to-identifier.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"to-identifier.test.d.ts","sourceRoot":"","sources":["../../src/utils/to-identifier.test.ts"],"names":[],"mappings":""}
@@ -1,21 +0,0 @@
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
- const ava_1 = __importDefault(require("ava"));
7
- const to_identifier_1 = require("./to-identifier");
8
- (0, ava_1.default)('unmodified', t => {
9
- t.is((0, to_identifier_1.toIdentifier)('abc'), 'abc');
10
- });
11
- (0, ava_1.default)('remove leading specials', t => {
12
- t.is((0, to_identifier_1.toIdentifier)('--abc'), 'abc');
13
- });
14
- (0, ava_1.default)('remove specials and upcase next char', t => {
15
- t.is((0, to_identifier_1.toIdentifier)('abc-def'), 'abcDef');
16
- t.is((0, to_identifier_1.toIdentifier)('abc--def'), 'abcDef');
17
- });
18
- (0, ava_1.default)('capitalize', t => {
19
- t.is((0, to_identifier_1.toIdentifier)('abc', true), 'Abc');
20
- });
21
- //# sourceMappingURL=to-identifier.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"to-identifier.test.js","sourceRoot":"","sources":["../../src/utils/to-identifier.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AAEvB,mDAA+C;AAE/C,IAAA,aAAI,EAAC,YAAY,EAAE,CAAC,CAAC,EAAE;IACrB,CAAC,CAAC,EAAE,CAAC,IAAA,4BAAY,EAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,yBAAyB,EAAE,CAAC,CAAC,EAAE;IAClC,CAAC,CAAC,EAAE,CAAC,IAAA,4BAAY,EAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,sCAAsC,EAAE,CAAC,CAAC,EAAE;IAC/C,CAAC,CAAC,EAAE,CAAC,IAAA,4BAAY,EAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,EAAE,CAAC,IAAA,4BAAY,EAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,YAAY,EAAE,CAAC,CAAC,EAAE;IACrB,CAAC,CAAC,EAAE,CAAC,IAAA,4BAAY,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=zip.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zip.test.d.ts","sourceRoot":"","sources":["../src/zip.test.ts"],"names":[],"mappings":""}
package/dist/zip.test.js DELETED
@@ -1,37 +0,0 @@
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
- const ava_1 = __importDefault(require("ava"));
7
- const zip_1 = require("./zip");
8
- const erc20_1 = require("./erc20");
9
- const sources_1 = require("./generate/sources");
10
- const build_generic_1 = require("./build-generic");
11
- (0, ava_1.default)('erc20 basic', t => {
12
- const c = (0, erc20_1.buildERC20)({ name: 'MyToken', symbol: 'MTK' });
13
- const zip = (0, zip_1.zipContract)(c);
14
- const files = Object.values(zip.files).map(f => f.name).sort();
15
- t.deepEqual(files, [
16
- '@openzeppelin/',
17
- '@openzeppelin/contracts/',
18
- '@openzeppelin/contracts/README.md',
19
- '@openzeppelin/contracts/token/',
20
- '@openzeppelin/contracts/token/ERC20/',
21
- '@openzeppelin/contracts/token/ERC20/ERC20.sol',
22
- '@openzeppelin/contracts/token/ERC20/IERC20.sol',
23
- '@openzeppelin/contracts/token/ERC20/extensions/',
24
- '@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol',
25
- '@openzeppelin/contracts/utils/',
26
- '@openzeppelin/contracts/utils/Context.sol',
27
- 'MyToken.sol',
28
- ]);
29
- });
30
- (0, ava_1.default)('can zip all combinations', t => {
31
- for (const { options } of (0, sources_1.generateSources)('all')) {
32
- const c = (0, build_generic_1.buildGeneric)(options);
33
- (0, zip_1.zipContract)(c);
34
- }
35
- t.pass();
36
- });
37
- //# sourceMappingURL=zip.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zip.test.js","sourceRoot":"","sources":["../src/zip.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AAEvB,+BAAoC;AACpC,mCAAqC;AACrC,gDAAqD;AACrD,mDAA+C;AAE/C,IAAA,aAAI,EAAC,aAAa,EAAE,CAAC,CAAC,EAAE;IACtB,MAAM,CAAC,GAAG,IAAA,kBAAU,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,IAAA,iBAAW,EAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAE/D,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;QACjB,gBAAgB;QAChB,0BAA0B;QAC1B,mCAAmC;QACnC,gCAAgC;QAChC,sCAAsC;QACtC,+CAA+C;QAC/C,gDAAgD;QAChD,iDAAiD;QACjD,mEAAmE;QACnE,gCAAgC;QAChC,2CAA2C;QAC3C,aAAa;KACd,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE;IACnC,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,IAAA,yBAAe,EAAC,KAAK,CAAC,EAAE;QAChD,MAAM,CAAC,GAAG,IAAA,4BAAY,EAAC,OAAO,CAAC,CAAC;QAChC,IAAA,iBAAW,EAAC,CAAC,CAAC,CAAC;KAChB;IACD,CAAC,CAAC,IAAI,EAAE,CAAC;AACX,CAAC,CAAC,CAAC"}
@@ -1,164 +0,0 @@
1
- import test from 'ava';
2
-
3
- import { ContractBuilder } from './contract';
4
- import { printContract } from './print';
5
- import { TAG_SECURITY_CONTACT } from './set-info';
6
-
7
- test('contract basics', t => {
8
- const Foo = new ContractBuilder('Foo');
9
- t.snapshot(printContract(Foo));
10
- });
11
-
12
- test('contract with a parent', t => {
13
- const Foo = new ContractBuilder('Foo');
14
- const Bar = { name: 'Bar', path: './Bar.sol' };
15
- Foo.addParent(Bar);
16
- t.snapshot(printContract(Foo));
17
- });
18
-
19
- test('contract with two parents', t => {
20
- const Foo = new ContractBuilder('Foo');
21
- const Bar = { name: 'Bar', path: './Bar.sol' };
22
- const Quux = { name: 'Quux', path: './Quux.sol' };
23
- Foo.addParent(Bar);
24
- Foo.addParent(Quux);
25
- t.snapshot(printContract(Foo));
26
- });
27
-
28
- test('contract with a parent with parameters', t => {
29
- const Foo = new ContractBuilder('Foo');
30
- const Bar = { name: 'Bar', path: './Bar.sol' };
31
- Foo.addParent(Bar, ["param1", "param2"]);
32
- t.snapshot(printContract(Foo));
33
- });
34
-
35
- test('contract with two parents only one with parameters', t => {
36
- const Foo = new ContractBuilder('Foo');
37
- const Bar = { name: 'Bar', path: './Bar.sol' };
38
- const Quux = { name: 'Quux', path: './Quux.sol' };
39
- Foo.addParent(Bar, ["param1", "param2"]);
40
- Foo.addParent(Quux);
41
- t.snapshot(printContract(Foo));
42
- });
43
-
44
- test('contract with one override', t => {
45
- const Foo = new ContractBuilder('Foo');
46
- const _beforeTokenTransfer = {
47
- name: '_beforeTokenTransfer',
48
- kind: 'internal' as const,
49
- args: [
50
- { name: 'from', type: 'address' },
51
- { name: 'to', type: 'address' },
52
- { name: 'amount', type: 'uint256' },
53
- ],
54
- };
55
- Foo.addOverride('ERC20', _beforeTokenTransfer);
56
- t.snapshot(printContract(Foo));
57
- });
58
-
59
- test('contract with two overrides', t => {
60
- const Foo = new ContractBuilder('Foo');
61
- Foo.addOverride('ERC20', _beforeTokenTransfer);
62
- Foo.addOverride('ERC20Snapshot', _beforeTokenTransfer);
63
- t.snapshot(printContract(Foo));
64
- });
65
-
66
- test('contract with two different overrides', t => {
67
- const Foo = new ContractBuilder('Foo');
68
- Foo.addOverride('ERC20', _beforeTokenTransfer);
69
- Foo.addOverride('OtherParent', _beforeTokenTransfer);
70
- Foo.addOverride('ERC20', _otherFunction);
71
- Foo.addOverride('OtherParent', _otherFunction);
72
- t.snapshot(printContract(Foo));
73
- });
74
-
75
- test('contract with a modifier', t => {
76
- const Foo = new ContractBuilder('Foo');
77
- Foo.addModifier('whenNotPaused', _otherFunction);
78
- t.snapshot(printContract(Foo));
79
- });
80
-
81
- test('contract with a modifier and override', t => {
82
- const Foo = new ContractBuilder('Foo');
83
- Foo.addModifier('whenNotPaused', _otherFunction);
84
- Foo.addOverride('ERC20', _otherFunction);
85
- Foo.addOverride('OtherParent', _otherFunction);
86
- t.snapshot(printContract(Foo));
87
- });
88
-
89
- test('contract with constructor code', t => {
90
- const Foo = new ContractBuilder('Foo');
91
- Foo.addConstructorCode('_mint(msg.sender, 10 ether);');
92
- t.snapshot(printContract(Foo));
93
- });
94
-
95
- test('contract with constructor code and a parent', t => {
96
- const Foo = new ContractBuilder('Foo');
97
- const Bar = { name: 'Bar', path: './Bar.sol' };
98
- Foo.addParent(Bar, ["param1", "param2"]);
99
- Foo.addConstructorCode('_mint(msg.sender, 10 ether);');
100
- t.snapshot(printContract(Foo));
101
- });
102
-
103
- test('contract with function code', t => {
104
- const Foo = new ContractBuilder('Foo');
105
- Foo.addFunctionCode('_mint(msg.sender, 10 ether);', _otherFunction);
106
- t.snapshot(printContract(Foo));
107
- });
108
-
109
- test('contract with overriden function with code', t => {
110
- const Foo = new ContractBuilder('Foo');
111
- Foo.addOverride('Bar', _otherFunction);
112
- Foo.addFunctionCode('_mint(msg.sender, 10 ether);', _otherFunction);
113
- t.snapshot(printContract(Foo));
114
- });
115
-
116
- test('contract with one variable', t => {
117
- const Foo = new ContractBuilder('Foo');
118
- Foo.addVariable('uint value = 42;');
119
- t.snapshot(printContract(Foo));
120
- });
121
-
122
- test('contract with two variables', t => {
123
- const Foo = new ContractBuilder('Foo');
124
- Foo.addVariable('uint value = 42;');
125
- Foo.addVariable('string name = "john";');
126
- t.snapshot(printContract(Foo));
127
- });
128
-
129
- test('name with special characters', t => {
130
- const Foo = new ContractBuilder('foo bar baz');
131
- t.snapshot(printContract(Foo));
132
- });
133
-
134
- test('using for statement', t => {
135
- const Foo = new ContractBuilder('Foo');
136
- Foo.addUsing({
137
- name: 'Counters',
138
- path: './Counters.sol',
139
- }, 'Counters.Counter');
140
- t.snapshot(printContract(Foo));
141
- });
142
-
143
- test('contract with info', t => {
144
- const Foo = new ContractBuilder('Foo');
145
- Foo.addNatspecTag(TAG_SECURITY_CONTACT, 'security@example.com');
146
- t.snapshot(printContract(Foo));
147
- });
148
-
149
-
150
- const _beforeTokenTransfer = {
151
- name: '_beforeTokenTransfer',
152
- kind: 'internal' as const,
153
- args: [
154
- { name: 'from', type: 'address' },
155
- { name: 'to', type: 'address' },
156
- { name: 'amount', type: 'uint256' },
157
- ],
158
- };
159
-
160
- const _otherFunction = {
161
- name: '_otherFunction',
162
- kind: 'internal' as const,
163
- args: [],
164
- };