@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.
- package/README.md +28 -1
- package/dist/add-pausable.d.ts.map +1 -1
- package/dist/add-pausable.js +2 -2
- package/dist/add-pausable.js.map +1 -1
- package/dist/api.d.ts +8 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +15 -5
- package/dist/api.js.map +1 -1
- package/dist/build-generic.d.ts +4 -0
- package/dist/build-generic.d.ts.map +1 -1
- package/dist/build-generic.js +3 -0
- package/dist/build-generic.js.map +1 -1
- package/dist/common-options.js +2 -2
- package/dist/common-options.js.map +1 -1
- package/dist/custom.d.ts +11 -0
- package/dist/custom.d.ts.map +1 -0
- package/dist/custom.js +47 -0
- package/dist/custom.js.map +1 -0
- package/dist/environments/hardhat/package-lock.json +14913 -0
- package/dist/environments/hardhat/package.json +34 -0
- package/dist/environments/hardhat/upgradeable/package-lock.json +15333 -0
- package/dist/environments/hardhat/upgradeable/package.json +35 -0
- package/dist/erc1155.d.ts +2 -0
- package/dist/erc1155.d.ts.map +1 -1
- package/dist/erc1155.js +16 -7
- package/dist/erc1155.js.map +1 -1
- package/dist/erc20.d.ts +1 -0
- package/dist/erc20.d.ts.map +1 -1
- package/dist/erc20.js +8 -3
- package/dist/erc20.js.map +1 -1
- package/dist/erc721.d.ts +1 -0
- package/dist/erc721.d.ts.map +1 -1
- package/dist/erc721.js +9 -2
- package/dist/erc721.js.map +1 -1
- package/dist/generate/custom.d.ts +3 -0
- package/dist/generate/custom.d.ts.map +1 -0
- package/dist/generate/custom.js +20 -0
- package/dist/generate/custom.js.map +1 -0
- package/dist/generate/erc1155.d.ts.map +1 -1
- package/dist/generate/erc1155.js +1 -0
- package/dist/generate/erc1155.js.map +1 -1
- package/dist/generate/sources.d.ts.map +1 -1
- package/dist/generate/sources.js +5 -1
- package/dist/generate/sources.js.map +1 -1
- package/dist/governor.d.ts +1 -0
- package/dist/governor.d.ts.map +1 -1
- package/dist/governor.js +8 -2
- package/dist/governor.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/kind.js +1 -0
- package/dist/kind.js.map +1 -1
- package/dist/print.d.ts.map +1 -1
- package/dist/print.js +21 -14
- package/dist/print.js.map +1 -1
- package/dist/set-access-control.d.ts +9 -2
- package/dist/set-access-control.d.ts.map +1 -1
- package/dist/set-access-control.js +27 -6
- package/dist/set-access-control.js.map +1 -1
- package/dist/set-upgradeable.d.ts.map +1 -1
- package/dist/set-upgradeable.js +1 -1
- package/dist/set-upgradeable.js.map +1 -1
- package/dist/solidity-version.json +1 -0
- package/dist/test.js +30 -1
- package/dist/test.js.map +1 -1
- package/dist/utils/format-lines.d.ts +1 -0
- package/dist/utils/format-lines.d.ts.map +1 -1
- package/dist/utils/format-lines.js +9 -5
- package/dist/utils/format-lines.js.map +1 -1
- package/dist/zip-hardhat.d.ts +5 -0
- package/dist/zip-hardhat.d.ts.map +1 -0
- package/dist/zip-hardhat.js +187 -0
- package/dist/zip-hardhat.js.map +1 -0
- package/dist/zip.js +1 -1
- package/dist/zip.js.map +1 -1
- package/package.json +8 -6
- package/src/add-pausable.ts +3 -3
- package/src/api.ts +25 -8
- package/src/build-generic.ts +5 -0
- package/src/common-options.ts +2 -2
- package/src/custom.ts +55 -0
- package/src/environments/hardhat/package-lock.json +14913 -0
- package/src/environments/hardhat/package.json +34 -0
- package/src/environments/hardhat/upgradeable/package-lock.json +15333 -0
- package/src/environments/hardhat/upgradeable/package.json +35 -0
- package/src/erc1155.ts +17 -7
- package/src/erc20.ts +8 -4
- package/src/erc721.ts +9 -3
- package/src/generate/custom.ts +19 -0
- package/src/generate/erc1155.ts +1 -0
- package/src/generate/sources.ts +6 -1
- package/src/governor.ts +7 -2
- package/src/index.ts +1 -1
- package/src/kind.ts +1 -0
- package/src/print.ts +18 -14
- package/src/set-access-control.ts +27 -4
- package/src/set-upgradeable.ts +2 -2
- package/src/solidity-version.json +1 -0
- package/src/test.ts +34 -2
- package/src/utils/format-lines.ts +8 -3
- package/src/zip-hardhat.ts +186 -0
- package/src/zip.ts +1 -1
- package/dist/contract.test.d.ts +0 -2
- package/dist/contract.test.d.ts.map +0 -1
- package/dist/contract.test.js +0 -147
- package/dist/contract.test.js.map +0 -1
- package/dist/erc1155.test.d.ts +0 -2
- package/dist/erc1155.test.d.ts.map +0 -1
- package/dist/erc1155.test.js +0 -80
- package/dist/erc1155.test.js.map +0 -1
- package/dist/erc20.test.d.ts +0 -2
- package/dist/erc20.test.d.ts.map +0 -1
- package/dist/erc20.test.js +0 -126
- package/dist/erc20.test.js.map +0 -1
- package/dist/erc721.test.d.ts +0 -2
- package/dist/erc721.test.d.ts.map +0 -1
- package/dist/erc721.test.js +0 -106
- package/dist/erc721.test.js.map +0 -1
- package/dist/general.d.ts +0 -8
- package/dist/general.d.ts.map +0 -1
- package/dist/general.js +0 -22
- package/dist/general.js.map +0 -1
- package/dist/general.test.d.ts +0 -2
- package/dist/general.test.d.ts.map +0 -1
- package/dist/general.test.js +0 -42
- package/dist/general.test.js.map +0 -1
- package/dist/governor.test.d.ts +0 -2
- package/dist/governor.test.d.ts.map +0 -1
- package/dist/governor.test.js +0 -104
- package/dist/governor.test.js.map +0 -1
- package/dist/utils/to-identifier.test.d.ts +0 -2
- package/dist/utils/to-identifier.test.d.ts.map +0 -1
- package/dist/utils/to-identifier.test.js +0 -21
- package/dist/utils/to-identifier.test.js.map +0 -1
- package/dist/zip.test.d.ts +0 -2
- package/dist/zip.test.d.ts.map +0 -1
- package/dist/zip.test.js +0 -37
- package/dist/zip.test.js.map +0 -1
- package/src/contract.test.ts +0 -164
- package/src/contract.test.ts.md +0 -272
- package/src/contract.test.ts.snap +0 -0
- package/src/erc1155.test.ts +0 -90
- package/src/erc1155.test.ts.md +0 -416
- package/src/erc1155.test.ts.snap +0 -0
- package/src/erc20.test.ts +0 -144
- package/src/erc20.test.ts.md +0 -571
- package/src/erc20.test.ts.snap +0 -0
- package/src/erc721.test.ts +0 -122
- package/src/erc721.test.ts.md +0 -517
- package/src/erc721.test.ts.snap +0 -0
- package/src/governor.test.ts +0 -120
- package/src/governor.test.ts.md +0 -1419
- package/src/governor.test.ts.snap +0 -0
- package/src/utils/to-identifier.test.ts +0 -20
- package/src/zip.test.ts +0 -35
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import JSZip from "jszip";
|
|
2
|
+
import type { GenericOptions } from "./build-generic";
|
|
3
|
+
import type { Contract } from "./contract";
|
|
4
|
+
import { printContract } from "./print";
|
|
5
|
+
import SOLIDITY_VERSION from './solidity-version.json';
|
|
6
|
+
import { formatLinesWithSpaces, Lines, spaceBetween } from "./utils/format-lines";
|
|
7
|
+
|
|
8
|
+
const hardhatConfig = (upgradeable: boolean) => `\
|
|
9
|
+
import { HardhatUserConfig } from "hardhat/config";
|
|
10
|
+
import "@nomicfoundation/hardhat-toolbox";
|
|
11
|
+
${upgradeable ? `import "@openzeppelin/hardhat-upgrades";` : ''}
|
|
12
|
+
|
|
13
|
+
const config: HardhatUserConfig = {
|
|
14
|
+
solidity: {
|
|
15
|
+
version: "${SOLIDITY_VERSION}",
|
|
16
|
+
settings: {
|
|
17
|
+
optimizer: {
|
|
18
|
+
enabled: true,
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default config;
|
|
25
|
+
`;
|
|
26
|
+
|
|
27
|
+
const tsConfig = `\
|
|
28
|
+
{
|
|
29
|
+
"compilerOptions": {
|
|
30
|
+
"target": "es2020",
|
|
31
|
+
"module": "commonjs",
|
|
32
|
+
"esModuleInterop": true,
|
|
33
|
+
"forceConsistentCasingInFileNames": true,
|
|
34
|
+
"strict": true,
|
|
35
|
+
"skipLibCheck": true
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
`;
|
|
39
|
+
|
|
40
|
+
const gitIgnore = `\
|
|
41
|
+
node_modules
|
|
42
|
+
.env
|
|
43
|
+
coverage
|
|
44
|
+
coverage.json
|
|
45
|
+
typechain
|
|
46
|
+
typechain-types
|
|
47
|
+
|
|
48
|
+
#Hardhat files
|
|
49
|
+
cache
|
|
50
|
+
artifacts
|
|
51
|
+
`;
|
|
52
|
+
|
|
53
|
+
const test = (c: Contract, opts?: GenericOptions) => {
|
|
54
|
+
return formatLinesWithSpaces(
|
|
55
|
+
2,
|
|
56
|
+
...spaceBetween(
|
|
57
|
+
getImports(c),
|
|
58
|
+
getTestCase(c),
|
|
59
|
+
),
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
function getTestCase(c: Contract) {
|
|
63
|
+
return [
|
|
64
|
+
`describe("${c.name}", function () {`,
|
|
65
|
+
[
|
|
66
|
+
'it("Test contract", async function () {',
|
|
67
|
+
spaceBetween(
|
|
68
|
+
[
|
|
69
|
+
`const ContractFactory = await ethers.getContractFactory("${c.name}");`,
|
|
70
|
+
],
|
|
71
|
+
[
|
|
72
|
+
`const instance = await ${c.upgradeable ? 'upgrades.deployProxy(ContractFactory)' : 'ContractFactory.deploy()'};`,
|
|
73
|
+
'await instance.deployed();'
|
|
74
|
+
],
|
|
75
|
+
getContractSpecificExpects(),
|
|
76
|
+
),
|
|
77
|
+
'});'
|
|
78
|
+
],
|
|
79
|
+
'});',
|
|
80
|
+
];
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function getImports(c: Contract) {
|
|
84
|
+
return [
|
|
85
|
+
'import { expect } from "chai";',
|
|
86
|
+
`import { ${getHardhatPlugins(c).join(', ')} } from "hardhat";`,
|
|
87
|
+
];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function getContractSpecificExpects(): Lines[] {
|
|
91
|
+
if (opts !== undefined) {
|
|
92
|
+
switch (opts.kind) {
|
|
93
|
+
case 'ERC20':
|
|
94
|
+
case 'ERC721':
|
|
95
|
+
return [`expect(await instance.name()).to.equal("${opts.name}");`];
|
|
96
|
+
|
|
97
|
+
case 'ERC1155':
|
|
98
|
+
return [`expect(await instance.uri(0)).to.equal("${opts.uri}");`];
|
|
99
|
+
|
|
100
|
+
case 'Governor':
|
|
101
|
+
case 'Custom':
|
|
102
|
+
break;
|
|
103
|
+
|
|
104
|
+
default:
|
|
105
|
+
throw new Error('Unknown ERC');
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
const script = (c: Contract) => `\
|
|
113
|
+
import { ${getHardhatPlugins(c).join(', ')} } from "hardhat";
|
|
114
|
+
|
|
115
|
+
async function main() {
|
|
116
|
+
const ContractFactory = await ethers.getContractFactory("${c.name}");
|
|
117
|
+
|
|
118
|
+
const instance = await ${c.upgradeable ? 'upgrades.deployProxy(ContractFactory)' : 'ContractFactory.deploy()'};
|
|
119
|
+
await instance.deployed();
|
|
120
|
+
|
|
121
|
+
console.log(\`${c.upgradeable ? 'Proxy' : 'Contract'} deployed to \${instance.address}\`);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// We recommend this pattern to be able to use async/await everywhere
|
|
125
|
+
// and properly handle errors.
|
|
126
|
+
main().catch((error) => {
|
|
127
|
+
console.error(error);
|
|
128
|
+
process.exitCode = 1;
|
|
129
|
+
});
|
|
130
|
+
`;
|
|
131
|
+
|
|
132
|
+
const readme = `\
|
|
133
|
+
# Sample Hardhat Project
|
|
134
|
+
|
|
135
|
+
This project demonstrates a basic Hardhat use case. It comes with a contract generated by [OpenZeppelin Wizard](https://wizard.openzeppelin.com/), a test for that contract, and a script that deploys that contract.
|
|
136
|
+
|
|
137
|
+
## Installing dependencies
|
|
138
|
+
|
|
139
|
+
\`\`\`
|
|
140
|
+
npm install
|
|
141
|
+
\`\`\`
|
|
142
|
+
|
|
143
|
+
## Testing the contract
|
|
144
|
+
|
|
145
|
+
\`\`\`
|
|
146
|
+
npm test
|
|
147
|
+
\`\`\`
|
|
148
|
+
|
|
149
|
+
## Deploying the contract
|
|
150
|
+
|
|
151
|
+
You can target any network from your Hardhat config using:
|
|
152
|
+
|
|
153
|
+
\`\`\`
|
|
154
|
+
npx hardhat run --network <network-name> scripts/deploy.ts
|
|
155
|
+
\`\`\`
|
|
156
|
+
`;
|
|
157
|
+
|
|
158
|
+
function getHardhatPlugins(c: Contract) {
|
|
159
|
+
let plugins = ['ethers'];
|
|
160
|
+
if (c.upgradeable) {
|
|
161
|
+
plugins.push('upgrades');
|
|
162
|
+
}
|
|
163
|
+
return plugins;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export async function zipHardhat(c: Contract, opts?: GenericOptions) {
|
|
167
|
+
const zip = new JSZip();
|
|
168
|
+
|
|
169
|
+
const { default: packageJson } = c.upgradeable ? await import("./environments/hardhat/upgradeable/package.json") : await import("./environments/hardhat/package.json");
|
|
170
|
+
packageJson.license = c.license;
|
|
171
|
+
|
|
172
|
+
const { default: packageLock } = c.upgradeable ? await import("./environments/hardhat/upgradeable/package-lock.json") : await import("./environments/hardhat/package-lock.json");
|
|
173
|
+
packageLock.packages[''].license = c.license;
|
|
174
|
+
|
|
175
|
+
zip.file(`contracts/${c.name}.sol`, printContract(c));
|
|
176
|
+
zip.file('test/test.ts', test(c, opts));
|
|
177
|
+
zip.file('scripts/deploy.ts', script(c));
|
|
178
|
+
zip.file('.gitignore', gitIgnore);
|
|
179
|
+
zip.file('hardhat.config.ts', hardhatConfig(c.upgradeable));
|
|
180
|
+
zip.file('package.json', JSON.stringify(packageJson, null, 2));
|
|
181
|
+
zip.file(`package-lock.json`, JSON.stringify(packageLock, null, 2));
|
|
182
|
+
zip.file('README.md', readme);
|
|
183
|
+
zip.file('tsconfig.json', tsConfig);
|
|
184
|
+
|
|
185
|
+
return zip;
|
|
186
|
+
}
|
package/src/zip.ts
CHANGED
|
@@ -29,7 +29,7 @@ export function zipContract(c: Contract): JSZip {
|
|
|
29
29
|
const fileName = c.name + '.sol';
|
|
30
30
|
|
|
31
31
|
const dependencies = {
|
|
32
|
-
[fileName]: c.
|
|
32
|
+
[fileName]: c.imports.map(i => transformImport(i)),
|
|
33
33
|
...contracts.dependencies,
|
|
34
34
|
};
|
|
35
35
|
|
package/dist/contract.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contract.test.d.ts","sourceRoot":"","sources":["../src/contract.test.ts"],"names":[],"mappings":""}
|
package/dist/contract.test.js
DELETED
|
@@ -1,147 +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 contract_1 = require("./contract");
|
|
8
|
-
const print_1 = require("./print");
|
|
9
|
-
const set_info_1 = require("./set-info");
|
|
10
|
-
(0, ava_1.default)('contract basics', t => {
|
|
11
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
12
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
13
|
-
});
|
|
14
|
-
(0, ava_1.default)('contract with a parent', t => {
|
|
15
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
16
|
-
const Bar = { name: 'Bar', path: './Bar.sol' };
|
|
17
|
-
Foo.addParent(Bar);
|
|
18
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
19
|
-
});
|
|
20
|
-
(0, ava_1.default)('contract with two parents', t => {
|
|
21
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
22
|
-
const Bar = { name: 'Bar', path: './Bar.sol' };
|
|
23
|
-
const Quux = { name: 'Quux', path: './Quux.sol' };
|
|
24
|
-
Foo.addParent(Bar);
|
|
25
|
-
Foo.addParent(Quux);
|
|
26
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
27
|
-
});
|
|
28
|
-
(0, ava_1.default)('contract with a parent with parameters', t => {
|
|
29
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
30
|
-
const Bar = { name: 'Bar', path: './Bar.sol' };
|
|
31
|
-
Foo.addParent(Bar, ["param1", "param2"]);
|
|
32
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
33
|
-
});
|
|
34
|
-
(0, ava_1.default)('contract with two parents only one with parameters', t => {
|
|
35
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
36
|
-
const Bar = { name: 'Bar', path: './Bar.sol' };
|
|
37
|
-
const Quux = { name: 'Quux', path: './Quux.sol' };
|
|
38
|
-
Foo.addParent(Bar, ["param1", "param2"]);
|
|
39
|
-
Foo.addParent(Quux);
|
|
40
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
41
|
-
});
|
|
42
|
-
(0, ava_1.default)('contract with one override', t => {
|
|
43
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
44
|
-
const _beforeTokenTransfer = {
|
|
45
|
-
name: '_beforeTokenTransfer',
|
|
46
|
-
kind: 'internal',
|
|
47
|
-
args: [
|
|
48
|
-
{ name: 'from', type: 'address' },
|
|
49
|
-
{ name: 'to', type: 'address' },
|
|
50
|
-
{ name: 'amount', type: 'uint256' },
|
|
51
|
-
],
|
|
52
|
-
};
|
|
53
|
-
Foo.addOverride('ERC20', _beforeTokenTransfer);
|
|
54
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
55
|
-
});
|
|
56
|
-
(0, ava_1.default)('contract with two overrides', t => {
|
|
57
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
58
|
-
Foo.addOverride('ERC20', _beforeTokenTransfer);
|
|
59
|
-
Foo.addOverride('ERC20Snapshot', _beforeTokenTransfer);
|
|
60
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
61
|
-
});
|
|
62
|
-
(0, ava_1.default)('contract with two different overrides', t => {
|
|
63
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
64
|
-
Foo.addOverride('ERC20', _beforeTokenTransfer);
|
|
65
|
-
Foo.addOverride('OtherParent', _beforeTokenTransfer);
|
|
66
|
-
Foo.addOverride('ERC20', _otherFunction);
|
|
67
|
-
Foo.addOverride('OtherParent', _otherFunction);
|
|
68
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
69
|
-
});
|
|
70
|
-
(0, ava_1.default)('contract with a modifier', t => {
|
|
71
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
72
|
-
Foo.addModifier('whenNotPaused', _otherFunction);
|
|
73
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
74
|
-
});
|
|
75
|
-
(0, ava_1.default)('contract with a modifier and override', t => {
|
|
76
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
77
|
-
Foo.addModifier('whenNotPaused', _otherFunction);
|
|
78
|
-
Foo.addOverride('ERC20', _otherFunction);
|
|
79
|
-
Foo.addOverride('OtherParent', _otherFunction);
|
|
80
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
81
|
-
});
|
|
82
|
-
(0, ava_1.default)('contract with constructor code', t => {
|
|
83
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
84
|
-
Foo.addConstructorCode('_mint(msg.sender, 10 ether);');
|
|
85
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
86
|
-
});
|
|
87
|
-
(0, ava_1.default)('contract with constructor code and a parent', t => {
|
|
88
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
89
|
-
const Bar = { name: 'Bar', path: './Bar.sol' };
|
|
90
|
-
Foo.addParent(Bar, ["param1", "param2"]);
|
|
91
|
-
Foo.addConstructorCode('_mint(msg.sender, 10 ether);');
|
|
92
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
93
|
-
});
|
|
94
|
-
(0, ava_1.default)('contract with function code', t => {
|
|
95
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
96
|
-
Foo.addFunctionCode('_mint(msg.sender, 10 ether);', _otherFunction);
|
|
97
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
98
|
-
});
|
|
99
|
-
(0, ava_1.default)('contract with overriden function with code', t => {
|
|
100
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
101
|
-
Foo.addOverride('Bar', _otherFunction);
|
|
102
|
-
Foo.addFunctionCode('_mint(msg.sender, 10 ether);', _otherFunction);
|
|
103
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
104
|
-
});
|
|
105
|
-
(0, ava_1.default)('contract with one variable', t => {
|
|
106
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
107
|
-
Foo.addVariable('uint value = 42;');
|
|
108
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
109
|
-
});
|
|
110
|
-
(0, ava_1.default)('contract with two variables', t => {
|
|
111
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
112
|
-
Foo.addVariable('uint value = 42;');
|
|
113
|
-
Foo.addVariable('string name = "john";');
|
|
114
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
115
|
-
});
|
|
116
|
-
(0, ava_1.default)('name with special characters', t => {
|
|
117
|
-
const Foo = new contract_1.ContractBuilder('foo bar baz');
|
|
118
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
119
|
-
});
|
|
120
|
-
(0, ava_1.default)('using for statement', t => {
|
|
121
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
122
|
-
Foo.addUsing({
|
|
123
|
-
name: 'Counters',
|
|
124
|
-
path: './Counters.sol',
|
|
125
|
-
}, 'Counters.Counter');
|
|
126
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
127
|
-
});
|
|
128
|
-
(0, ava_1.default)('contract with info', t => {
|
|
129
|
-
const Foo = new contract_1.ContractBuilder('Foo');
|
|
130
|
-
Foo.addNatspecTag(set_info_1.TAG_SECURITY_CONTACT, 'security@example.com');
|
|
131
|
-
t.snapshot((0, print_1.printContract)(Foo));
|
|
132
|
-
});
|
|
133
|
-
const _beforeTokenTransfer = {
|
|
134
|
-
name: '_beforeTokenTransfer',
|
|
135
|
-
kind: 'internal',
|
|
136
|
-
args: [
|
|
137
|
-
{ name: 'from', type: 'address' },
|
|
138
|
-
{ name: 'to', type: 'address' },
|
|
139
|
-
{ name: 'amount', type: 'uint256' },
|
|
140
|
-
],
|
|
141
|
-
};
|
|
142
|
-
const _otherFunction = {
|
|
143
|
-
name: '_otherFunction',
|
|
144
|
-
kind: 'internal',
|
|
145
|
-
args: [],
|
|
146
|
-
};
|
|
147
|
-
//# sourceMappingURL=contract.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contract.test.js","sourceRoot":"","sources":["../src/contract.test.ts"],"names":[],"mappings":"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"}
|
package/dist/erc1155.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"erc1155.test.d.ts","sourceRoot":"","sources":["../src/erc1155.test.ts"],"names":[],"mappings":""}
|
package/dist/erc1155.test.js
DELETED
|
@@ -1,80 +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 erc1155_1 = require("./erc1155");
|
|
9
|
-
const print_1 = require("./print");
|
|
10
|
-
function testERC1155(title, opts) {
|
|
11
|
-
(0, ava_1.default)(title, t => {
|
|
12
|
-
const c = (0, erc1155_1.buildERC1155)({
|
|
13
|
-
name: 'MyToken',
|
|
14
|
-
uri: 'https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/',
|
|
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.erc1155.print(opts), (0, print_1.printContract)((0, erc1155_1.buildERC1155)({
|
|
26
|
-
name: 'MyToken',
|
|
27
|
-
uri: '',
|
|
28
|
-
...opts,
|
|
29
|
-
})));
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
testERC1155('basic', {});
|
|
33
|
-
testERC1155('basic + roles', {
|
|
34
|
-
access: 'roles',
|
|
35
|
-
});
|
|
36
|
-
testERC1155('burnable', {
|
|
37
|
-
burnable: true,
|
|
38
|
-
});
|
|
39
|
-
testERC1155('pausable', {
|
|
40
|
-
pausable: true,
|
|
41
|
-
});
|
|
42
|
-
testERC1155('mintable', {
|
|
43
|
-
mintable: true,
|
|
44
|
-
});
|
|
45
|
-
testERC1155('mintable + roles', {
|
|
46
|
-
mintable: true,
|
|
47
|
-
access: 'roles',
|
|
48
|
-
});
|
|
49
|
-
testERC1155('supply tracking', {
|
|
50
|
-
supply: true,
|
|
51
|
-
});
|
|
52
|
-
testERC1155('full upgradeable transparent', {
|
|
53
|
-
mintable: true,
|
|
54
|
-
access: 'roles',
|
|
55
|
-
burnable: true,
|
|
56
|
-
pausable: true,
|
|
57
|
-
upgradeable: 'transparent',
|
|
58
|
-
});
|
|
59
|
-
testERC1155('full upgradeable uups', {
|
|
60
|
-
mintable: true,
|
|
61
|
-
access: 'roles',
|
|
62
|
-
burnable: true,
|
|
63
|
-
pausable: true,
|
|
64
|
-
upgradeable: 'uups',
|
|
65
|
-
});
|
|
66
|
-
testAPIEquivalence('API default');
|
|
67
|
-
testAPIEquivalence('API basic', { name: 'CustomToken', uri: 'https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/' });
|
|
68
|
-
testAPIEquivalence('API full upgradeable', {
|
|
69
|
-
name: 'CustomToken',
|
|
70
|
-
uri: 'https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/',
|
|
71
|
-
mintable: true,
|
|
72
|
-
access: 'roles',
|
|
73
|
-
burnable: true,
|
|
74
|
-
pausable: true,
|
|
75
|
-
upgradeable: 'uups',
|
|
76
|
-
});
|
|
77
|
-
(0, ava_1.default)('API assert defaults', async (t) => {
|
|
78
|
-
t.is(_1.erc1155.print(_1.erc1155.defaults), _1.erc1155.print());
|
|
79
|
-
});
|
|
80
|
-
//# sourceMappingURL=erc1155.test.js.map
|
package/dist/erc1155.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"erc1155.test.js","sourceRoot":"","sources":["../src/erc1155.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AACvB,wBAA4B;AAE5B,uCAAyD;AACzD,mCAAwC;AAExC,SAAS,WAAW,CAAC,KAAa,EAAE,IAA6B;IAC/D,IAAA,aAAI,EAAC,KAAK,EAAE,CAAC,CAAC,EAAE;QACd,MAAM,CAAC,GAAG,IAAA,sBAAY,EAAC;YACrB,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,mFAAmF;YACxF,GAAG,IAAI;SACR,CAAC,CAAC;QACH,CAAC,CAAC,QAAQ,CAAC,IAAA,qBAAa,EAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACF,SAAS,kBAAkB,CAAC,KAAa,EAAE,IAAqB;IAC/D,IAAA,aAAI,EAAC,KAAK,EAAE,CAAC,CAAC,EAAE;QACd,CAAC,CAAC,EAAE,CAAC,UAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAA,qBAAa,EAAC,IAAA,sBAAY,EAAC;YACnD,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,EAAE;YACP,GAAG,IAAI;SACR,CAAC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC;AAED,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAEzB,WAAW,CAAC,eAAe,EAAE;IAC3B,MAAM,EAAE,OAAO;CAChB,CAAC,CAAC;AAEH,WAAW,CAAC,UAAU,EAAE;IACtB,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH,WAAW,CAAC,UAAU,EAAE;IACtB,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH,WAAW,CAAC,UAAU,EAAE;IACtB,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH,WAAW,CAAC,kBAAkB,EAAE;IAC9B,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,OAAO;CAChB,CAAC,CAAC;AAEH,WAAW,CAAC,iBAAiB,EAAE;IAC7B,MAAM,EAAE,IAAI;CACb,CAAC,CAAC;AAEH,WAAW,CAAC,8BAA8B,EAAE;IAC1C,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,aAAa;CAC3B,CAAC,CAAC;AAEH,WAAW,CAAC,uBAAuB,EAAE;IACnC,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,MAAM;CACpB,CAAC,CAAC;AAEH,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAElC,kBAAkB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,mFAAmF,EAAE,CAAC,CAAC;AAEnJ,kBAAkB,CAAC,sBAAsB,EAAE;IACzC,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,mFAAmF;IACxF,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,MAAM;CACpB,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,qBAAqB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACpC,CAAC,CAAC,EAAE,CAAC,UAAO,CAAC,KAAK,CAAC,UAAO,CAAC,QAAQ,CAAC,EAAE,UAAO,CAAC,KAAK,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC"}
|
package/dist/erc20.test.d.ts
DELETED
package/dist/erc20.test.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"erc20.test.d.ts","sourceRoot":"","sources":["../src/erc20.test.ts"],"names":[],"mappings":""}
|
package/dist/erc20.test.js
DELETED
|
@@ -1,126 +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
|
-
//# sourceMappingURL=erc20.test.js.map
|
package/dist/erc20.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"erc20.test.js","sourceRoot":"","sources":["../src/erc20.test.ts"],"names":[],"mappings":"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"}
|
package/dist/erc721.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"erc721.test.d.ts","sourceRoot":"","sources":["../src/erc721.test.ts"],"names":[],"mappings":""}
|