@openzeppelin/wizard 0.7.0 → 0.7.1
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/dist/print.d.ts.map +1 -1
- package/dist/print.js +16 -1
- package/dist/print.js.map +1 -1
- package/dist/utils/community-contracts-git-commit.d.ts +16 -0
- package/dist/utils/community-contracts-git-commit.d.ts.map +1 -0
- package/dist/utils/community-contracts-git-commit.js +37 -0
- package/dist/utils/community-contracts-git-commit.js.map +1 -0
- package/dist/utils/imports-libraries.d.ts +3 -0
- package/dist/utils/imports-libraries.d.ts.map +1 -0
- package/dist/utils/imports-libraries.js +7 -0
- package/dist/utils/imports-libraries.js.map +1 -0
- package/package.json +2 -2
- package/src/print.ts +16 -1
- package/src/utils/community-contracts-git-commit.ts +38 -0
- package/src/utils/imports-libraries.ts +5 -0
package/dist/print.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../src/print.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EAIR,KAAK,EAGN,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../src/print.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EAIR,KAAK,EAGN,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,WAAW,CAAC;AAalD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAkCxE;AA8FD,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAkB/C"}
|
package/dist/print.js
CHANGED
|
@@ -12,13 +12,15 @@ const solidity_version_json_1 = __importDefault(require("./solidity-version.json
|
|
|
12
12
|
const infer_transpiled_1 = require("./infer-transpiled");
|
|
13
13
|
const version_1 = require("./utils/version");
|
|
14
14
|
const sanitize_1 = require("./utils/sanitize");
|
|
15
|
+
const imports_libraries_1 = require("./utils/imports-libraries");
|
|
16
|
+
const community_contracts_git_commit_1 = require("./utils/community-contracts-git-commit");
|
|
15
17
|
function printContract(contract, opts) {
|
|
16
18
|
const helpers = (0, options_1.withHelpers)(contract, opts);
|
|
17
19
|
const fns = (0, map_values_1.mapValues)(sortedFunctions(contract), fns => fns.map(fn => printFunction(fn, helpers)));
|
|
18
20
|
const hasOverrides = fns.override.some(l => l.length > 0);
|
|
19
21
|
return (0, format_lines_1.formatLines)(...(0, format_lines_1.spaceBetween)([
|
|
20
22
|
`// SPDX-License-Identifier: ${contract.license}`,
|
|
21
|
-
|
|
23
|
+
printCompatibleLibraryVersions(contract),
|
|
22
24
|
`pragma solidity ^${solidity_version_json_1.default};`,
|
|
23
25
|
], printImports(contract.imports, helpers), [
|
|
24
26
|
...printNatspecTags(contract.natspecTags),
|
|
@@ -27,6 +29,19 @@ function printContract(contract, opts) {
|
|
|
27
29
|
`}`,
|
|
28
30
|
]));
|
|
29
31
|
}
|
|
32
|
+
function printCompatibleLibraryVersions(contract) {
|
|
33
|
+
let result = `// Compatible with OpenZeppelin Contracts ${version_1.compatibleContractsSemver}`;
|
|
34
|
+
if ((0, imports_libraries_1.importsCommunityContracts)(contract)) {
|
|
35
|
+
try {
|
|
36
|
+
const commit = (0, community_contracts_git_commit_1.getCommunityContractsGitCommit)();
|
|
37
|
+
result += ` and Community Contracts commit ${commit}`;
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
console.error(e);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
30
45
|
function printInheritance(contract, { transformName }) {
|
|
31
46
|
if (contract.parents.length > 0) {
|
|
32
47
|
return ['is ' + contract.parents.map(p => transformName(p.contract)).join(', ')];
|
package/dist/print.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"print.js","sourceRoot":"","sources":["../src/print.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"print.js","sourceRoot":"","sources":["../src/print.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @returns The git commit hash of the @openzeppelin/community-contracts package dependency.
|
|
3
|
+
* @throws Error if the @openzeppelin/community-contracts package dependency is not found in devDependencies.
|
|
4
|
+
*/
|
|
5
|
+
export declare function getCommunityContractsGitCommit(): string;
|
|
6
|
+
/**
|
|
7
|
+
* Extracts the git commit hash from a package dependency version string.
|
|
8
|
+
* The expected format is `git+<url>#<commit-hash>`.
|
|
9
|
+
*
|
|
10
|
+
* @param dependencyName The name of the package dependency.
|
|
11
|
+
* @param dependencyVersion The version string of the package dependency.
|
|
12
|
+
* @returns The git commit hash, normalized to lowercase.
|
|
13
|
+
* @throws Error if the version string or commit hash is not in the expected format.
|
|
14
|
+
*/
|
|
15
|
+
export declare function extractGitCommitHash(dependencyName: string, dependencyVersion: string): string;
|
|
16
|
+
//# sourceMappingURL=community-contracts-git-commit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"community-contracts-git-commit.d.ts","sourceRoot":"","sources":["../../src/utils/community-contracts-git-commit.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CAMvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAc9F"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCommunityContractsGitCommit = getCommunityContractsGitCommit;
|
|
4
|
+
exports.extractGitCommitHash = extractGitCommitHash;
|
|
5
|
+
const package_json_1 = require("../../package.json");
|
|
6
|
+
/**
|
|
7
|
+
* @returns The git commit hash of the @openzeppelin/community-contracts package dependency.
|
|
8
|
+
* @throws Error if the @openzeppelin/community-contracts package dependency is not found in devDependencies.
|
|
9
|
+
*/
|
|
10
|
+
function getCommunityContractsGitCommit() {
|
|
11
|
+
const communityContractsVersion = package_json_1.devDependencies['@openzeppelin/community-contracts'];
|
|
12
|
+
if (!communityContractsVersion) {
|
|
13
|
+
throw new Error('@openzeppelin/community-contracts not found in devDependencies');
|
|
14
|
+
}
|
|
15
|
+
return extractGitCommitHash('@openzeppelin/community-contracts', communityContractsVersion);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Extracts the git commit hash from a package dependency version string.
|
|
19
|
+
* The expected format is `git+<url>#<commit-hash>`.
|
|
20
|
+
*
|
|
21
|
+
* @param dependencyName The name of the package dependency.
|
|
22
|
+
* @param dependencyVersion The version string of the package dependency.
|
|
23
|
+
* @returns The git commit hash, normalized to lowercase.
|
|
24
|
+
* @throws Error if the version string or commit hash is not in the expected format.
|
|
25
|
+
*/
|
|
26
|
+
function extractGitCommitHash(dependencyName, dependencyVersion) {
|
|
27
|
+
const split = dependencyVersion.split('#');
|
|
28
|
+
if (!dependencyVersion.startsWith('git+') || split.length !== 2) {
|
|
29
|
+
throw new Error(`Expected package dependency for ${dependencyName} in format git+<url>#<commit-hash>, but got ${dependencyVersion}`);
|
|
30
|
+
}
|
|
31
|
+
const hash = split[1];
|
|
32
|
+
if (!/^[a-fA-F0-9]{7,40}$/.test(hash)) {
|
|
33
|
+
throw new Error(`Expected git commit hash for package dependency ${dependencyName} to have between 7 and 40 hex chars, but got ${hash}`);
|
|
34
|
+
}
|
|
35
|
+
return hash.toLowerCase();
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=community-contracts-git-commit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"community-contracts-git-commit.js","sourceRoot":"","sources":["../../src/utils/community-contracts-git-commit.ts"],"names":[],"mappings":";;AAMA,wEAMC;AAWD,oDAcC;AArCD,qDAAqD;AAErD;;;GAGG;AACH,SAAgB,8BAA8B;IAC5C,MAAM,yBAAyB,GAAG,8BAAe,CAAC,mCAAmC,CAAC,CAAC;IACvF,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,oBAAoB,CAAC,mCAAmC,EAAE,yBAAyB,CAAC,CAAC;AAC9F,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,oBAAoB,CAAC,cAAsB,EAAE,iBAAyB;IACpF,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,mCAAmC,cAAc,+CAA+C,iBAAiB,EAAE,CACpH,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IACvB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,mDAAmD,cAAc,gDAAgD,IAAI,EAAE,CACxH,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports-libraries.d.ts","sourceRoot":"","sources":["../../src/utils/imports-libraries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,WAE3D"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.importsCommunityContracts = importsCommunityContracts;
|
|
4
|
+
function importsCommunityContracts(contract) {
|
|
5
|
+
return contract.imports.some(i => i.path.startsWith('@openzeppelin/community-contracts/'));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=imports-libraries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports-libraries.js","sourceRoot":"","sources":["../../src/utils/imports-libraries.ts"],"names":[],"mappings":";;AAEA,8DAEC;AAFD,SAAgB,yBAAyB,CAAC,QAAkB;IAC1D,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,oCAAoC,CAAC,CAAC,CAAC;AAC7F,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openzeppelin/wizard",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.1",
|
|
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",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"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
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@openzeppelin/community-contracts": "https://github.com/OpenZeppelin/openzeppelin-community-contracts",
|
|
25
|
+
"@openzeppelin/community-contracts": "git+https://github.com/OpenZeppelin/openzeppelin-community-contracts.git#de17c8e",
|
|
26
26
|
"@openzeppelin/contracts": "^5.4.0",
|
|
27
27
|
"@openzeppelin/contracts-upgradeable": "^5.4.0",
|
|
28
28
|
"@types/node": "^20.0.0",
|
package/src/print.ts
CHANGED
|
@@ -17,6 +17,8 @@ import SOLIDITY_VERSION from './solidity-version.json';
|
|
|
17
17
|
import { inferTranspiled } from './infer-transpiled';
|
|
18
18
|
import { compatibleContractsSemver } from './utils/version';
|
|
19
19
|
import { stringifyUnicodeSafe } from './utils/sanitize';
|
|
20
|
+
import { importsCommunityContracts } from './utils/imports-libraries';
|
|
21
|
+
import { getCommunityContractsGitCommit } from './utils/community-contracts-git-commit';
|
|
20
22
|
|
|
21
23
|
export function printContract(contract: Contract, opts?: Options): string {
|
|
22
24
|
const helpers = withHelpers(contract, opts);
|
|
@@ -29,7 +31,7 @@ export function printContract(contract: Contract, opts?: Options): string {
|
|
|
29
31
|
...spaceBetween(
|
|
30
32
|
[
|
|
31
33
|
`// SPDX-License-Identifier: ${contract.license}`,
|
|
32
|
-
|
|
34
|
+
printCompatibleLibraryVersions(contract),
|
|
33
35
|
`pragma solidity ^${SOLIDITY_VERSION};`,
|
|
34
36
|
],
|
|
35
37
|
|
|
@@ -54,6 +56,19 @@ export function printContract(contract: Contract, opts?: Options): string {
|
|
|
54
56
|
);
|
|
55
57
|
}
|
|
56
58
|
|
|
59
|
+
function printCompatibleLibraryVersions(contract: Contract): string {
|
|
60
|
+
let result = `// Compatible with OpenZeppelin Contracts ${compatibleContractsSemver}`;
|
|
61
|
+
if (importsCommunityContracts(contract)) {
|
|
62
|
+
try {
|
|
63
|
+
const commit = getCommunityContractsGitCommit();
|
|
64
|
+
result += ` and Community Contracts commit ${commit}`;
|
|
65
|
+
} catch (e) {
|
|
66
|
+
console.error(e);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
|
|
57
72
|
function printInheritance(contract: Contract, { transformName }: Helpers): [] | [string] {
|
|
58
73
|
if (contract.parents.length > 0) {
|
|
59
74
|
return ['is ' + contract.parents.map(p => transformName(p.contract)).join(', ')];
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { devDependencies } from '../../package.json';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @returns The git commit hash of the @openzeppelin/community-contracts package dependency.
|
|
5
|
+
* @throws Error if the @openzeppelin/community-contracts package dependency is not found in devDependencies.
|
|
6
|
+
*/
|
|
7
|
+
export function getCommunityContractsGitCommit(): string {
|
|
8
|
+
const communityContractsVersion = devDependencies['@openzeppelin/community-contracts'];
|
|
9
|
+
if (!communityContractsVersion) {
|
|
10
|
+
throw new Error('@openzeppelin/community-contracts not found in devDependencies');
|
|
11
|
+
}
|
|
12
|
+
return extractGitCommitHash('@openzeppelin/community-contracts', communityContractsVersion);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Extracts the git commit hash from a package dependency version string.
|
|
17
|
+
* The expected format is `git+<url>#<commit-hash>`.
|
|
18
|
+
*
|
|
19
|
+
* @param dependencyName The name of the package dependency.
|
|
20
|
+
* @param dependencyVersion The version string of the package dependency.
|
|
21
|
+
* @returns The git commit hash, normalized to lowercase.
|
|
22
|
+
* @throws Error if the version string or commit hash is not in the expected format.
|
|
23
|
+
*/
|
|
24
|
+
export function extractGitCommitHash(dependencyName: string, dependencyVersion: string): string {
|
|
25
|
+
const split = dependencyVersion.split('#');
|
|
26
|
+
if (!dependencyVersion.startsWith('git+') || split.length !== 2) {
|
|
27
|
+
throw new Error(
|
|
28
|
+
`Expected package dependency for ${dependencyName} in format git+<url>#<commit-hash>, but got ${dependencyVersion}`,
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
const hash = split[1]!;
|
|
32
|
+
if (!/^[a-fA-F0-9]{7,40}$/.test(hash)) {
|
|
33
|
+
throw new Error(
|
|
34
|
+
`Expected git commit hash for package dependency ${dependencyName} to have between 7 and 40 hex chars, but got ${hash}`,
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
return hash.toLowerCase();
|
|
38
|
+
}
|