@openzeppelin/wizard-stellar 0.2.1 → 0.2.2
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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/print.d.ts +2 -0
- package/dist/print.d.ts.map +1 -1
- package/dist/print.js +5 -1
- package/dist/print.js.map +1 -1
- package/dist/utils/version.d.ts +4 -0
- package/dist/utils/version.d.ts.map +1 -1
- package/dist/utils/version.js +5 -1
- package/dist/utils/version.js.map +1 -1
- package/dist/zip-scaffold.d.ts +8 -0
- package/dist/zip-scaffold.d.ts.map +1 -0
- package/dist/zip-scaffold.js +335 -0
- package/dist/zip-scaffold.js.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +3 -0
- package/src/print.ts +8 -1
- package/src/utils/version.ts +5 -0
- package/src/zip-scaffold.ts +348 -0
package/dist/index.d.ts
CHANGED
|
@@ -14,4 +14,6 @@ export { sanitizeKind } from './kind';
|
|
|
14
14
|
export { contractsVersion, contractsVersionTag, compatibleContractsSemver } from './utils/version';
|
|
15
15
|
export { fungible } from './api';
|
|
16
16
|
export { nonFungible } from './api';
|
|
17
|
+
export type { FungibleOptions } from './fungible';
|
|
18
|
+
export type { NonFungibleOptions } from './non-fungible';
|
|
17
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,YAAY,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,YAAY,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAEnG,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,YAAY,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,YAAY,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAEnG,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/print.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { Contract } from './contract';
|
|
2
|
+
export declare const createLevelAttributes: string[];
|
|
3
|
+
export declare const removeCreateLevelAttributes: (printedContract: string) => string;
|
|
2
4
|
export declare function printContract(contract: Contract): string;
|
|
3
5
|
//# sourceMappingURL=print.d.ts.map
|
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,EAAE,QAAQ,EAAyD,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../src/print.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAyD,MAAM,YAAY,CAAC;AAWlG,eAAO,MAAM,qBAAqB,UAAiB,CAAC;AAEpD,eAAO,MAAM,2BAA2B,oBAAqB,MAAM,WAIhE,CAAC;AAEJ,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAkBxD"}
|
package/dist/print.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.removeCreateLevelAttributes = exports.createLevelAttributes = void 0;
|
|
3
4
|
exports.printContract = printContract;
|
|
4
5
|
const format_lines_1 = require("./utils/format-lines");
|
|
5
6
|
const common_options_1 = require("./common-options");
|
|
@@ -8,11 +9,14 @@ const DEFAULT_SECTION = '1. with no section';
|
|
|
8
9
|
const STANDALONE_IMPORTS_GROUP = 'Standalone Imports';
|
|
9
10
|
const MAX_USE_CLAUSE_LINE_LENGTH = 90;
|
|
10
11
|
const TAB = ' ';
|
|
12
|
+
exports.createLevelAttributes = [`#![no_std]`];
|
|
13
|
+
const removeCreateLevelAttributes = (printedContract) => exports.createLevelAttributes.reduce((cleanedPrintedContract, createLevelAttribute) => cleanedPrintedContract.replace(createLevelAttribute, ''), printedContract);
|
|
14
|
+
exports.removeCreateLevelAttributes = removeCreateLevelAttributes;
|
|
11
15
|
function printContract(contract) {
|
|
12
16
|
return (0, format_lines_1.formatLines)(...(0, format_lines_1.spaceBetween)([
|
|
13
17
|
`// SPDX-License-Identifier: ${contract.license}`,
|
|
14
18
|
`// Compatible with OpenZeppelin Stellar Soroban Contracts ${version_1.compatibleContractsSemver}`,
|
|
15
|
-
|
|
19
|
+
...exports.createLevelAttributes,
|
|
16
20
|
], (0, format_lines_1.spaceBetween)(printUseClauses(contract), printVariables(contract), printContractStruct(contract), printContractErrors(contract), printContractFunctions(contract), printImplementedTraits(contract))));
|
|
17
21
|
}
|
|
18
22
|
function printContractStruct(contract) {
|
package/dist/print.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"print.js","sourceRoot":"","sources":["../src/print.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"print.js","sourceRoot":"","sources":["../src/print.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/version.d.ts
CHANGED
|
@@ -7,4 +7,8 @@ export declare const contractsVersionTag = "v0.2.0";
|
|
|
7
7
|
* Semantic version string representing of the minimum compatible version of Contracts to display in output.
|
|
8
8
|
*/
|
|
9
9
|
export declare const compatibleContractsSemver = "^0.2.0";
|
|
10
|
+
/**
|
|
11
|
+
* The Soroban version for which compilation and testing have passing tests
|
|
12
|
+
*/
|
|
13
|
+
export declare const compatibleSorobanVersion = "22.0.8";
|
|
10
14
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,mBAAmB,WAAyB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,yBAAyB,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,mBAAmB,WAAyB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,yBAAyB,WAAW,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,wBAAwB,WAAW,CAAC"}
|
package/dist/utils/version.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.compatibleContractsSemver = exports.contractsVersionTag = exports.contractsVersion = void 0;
|
|
3
|
+
exports.compatibleSorobanVersion = exports.compatibleContractsSemver = exports.contractsVersionTag = exports.contractsVersion = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* The actual latest version to use in links.
|
|
6
6
|
*/
|
|
@@ -10,4 +10,8 @@ exports.contractsVersionTag = `v${exports.contractsVersion}`;
|
|
|
10
10
|
* Semantic version string representing of the minimum compatible version of Contracts to display in output.
|
|
11
11
|
*/
|
|
12
12
|
exports.compatibleContractsSemver = '^0.2.0';
|
|
13
|
+
/**
|
|
14
|
+
* The Soroban version for which compilation and testing have passing tests
|
|
15
|
+
*/
|
|
16
|
+
exports.compatibleSorobanVersion = '22.0.8';
|
|
13
17
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,mBAAmB,GAAG,IAAI,wBAAgB,EAAE,CAAC;AAE1D;;GAEG;AACU,QAAA,yBAAyB,GAAG,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,mBAAmB,GAAG,IAAI,wBAAgB,EAAE,CAAC;AAE1D;;GAEG;AACU,QAAA,yBAAyB,GAAG,QAAQ,CAAC;AAElD;;GAEG;AACU,QAAA,wBAAwB,GAAG,QAAQ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import JSZip from 'jszip';
|
|
2
|
+
import type { GenericOptions } from './build-generic';
|
|
3
|
+
import type { Contract } from './contract';
|
|
4
|
+
declare function pascalToSnakeCase(string: string): string;
|
|
5
|
+
export declare const contractOptionsToScaffoldContractName: typeof pascalToSnakeCase;
|
|
6
|
+
export declare function zipScaffold(c: Contract, opts: GenericOptions): Promise<JSZip>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=zip-scaffold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip-scaffold.d.ts","sourceRoot":"","sources":["../src/zip-scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuE3C,iBAAS,iBAAiB,CAAC,MAAM,EAAE,MAAM,UAKxC;AAED,eAAO,MAAM,qCAAqC,0BAAoB,CAAC;AA8PvE,wBAAsB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,kBAalE"}
|
|
@@ -0,0 +1,335 @@
|
|
|
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
|
+
exports.contractOptionsToScaffoldContractName = void 0;
|
|
7
|
+
exports.zipScaffold = zipScaffold;
|
|
8
|
+
const jszip_1 = __importDefault(require("jszip"));
|
|
9
|
+
const print_1 = require("./print");
|
|
10
|
+
const version_1 = require("./utils/version");
|
|
11
|
+
const dependencies = {
|
|
12
|
+
base: ['stellar-default-impl-macro'],
|
|
13
|
+
fungible: ['stellar-fungible'],
|
|
14
|
+
nonFungible: ['stellar-non-fungible'],
|
|
15
|
+
pausable: ['stellar-pausable', 'stellar-pausable-macros'],
|
|
16
|
+
upgradable: ['stellar-upgradeable', 'stellar-upgradeable-macros'],
|
|
17
|
+
soroban: ['soroban-sdk'],
|
|
18
|
+
};
|
|
19
|
+
const addDependenciesWith = (dependencyValue, dependenciesToAdd) => dependenciesToAdd.reduce((addedDependency, dependencyName) => {
|
|
20
|
+
return `${addedDependency}${dependencies[dependencyName].map(cargoDependencies => `${cargoDependencies} = ${dependencyValue}\n`).join('')}`;
|
|
21
|
+
}, '');
|
|
22
|
+
const getDependenciesToAdd = (opts) => {
|
|
23
|
+
const dependenciesToAdd = ['base'];
|
|
24
|
+
if (opts.kind === 'Fungible')
|
|
25
|
+
dependenciesToAdd.push('fungible');
|
|
26
|
+
if (opts.kind === 'NonFungible')
|
|
27
|
+
dependenciesToAdd.push('nonFungible');
|
|
28
|
+
if (opts.pausable)
|
|
29
|
+
dependenciesToAdd.push('pausable');
|
|
30
|
+
if (opts.upgradeable)
|
|
31
|
+
dependenciesToAdd.push('upgradable');
|
|
32
|
+
return dependenciesToAdd;
|
|
33
|
+
};
|
|
34
|
+
const test = (c) => `#![cfg(test)]
|
|
35
|
+
|
|
36
|
+
extern crate std;
|
|
37
|
+
|
|
38
|
+
use soroban_sdk::{ ${getAddressArgs(c).length ? 'testutils::Address as _, Address, ' : ''}Env, String };
|
|
39
|
+
|
|
40
|
+
use crate::contract::{ ${c.name}, ${c.name}Client };
|
|
41
|
+
|
|
42
|
+
#[test]
|
|
43
|
+
fn initial_state() {
|
|
44
|
+
let env = Env::default();
|
|
45
|
+
|
|
46
|
+
let contract_addr = env.register(${c.name}, (${getAddressArgs(c)
|
|
47
|
+
.map(() => 'Address::generate(&env)')
|
|
48
|
+
.join(',')}${getAddressArgs(c).length === 1 ? ',' : ''}));
|
|
49
|
+
let client = ${c.name}Client::new(&env, &contract_addr);
|
|
50
|
+
|
|
51
|
+
assert_eq!(client.name(), String::from_str(&env, "${c.name}"));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Add more tests bellow
|
|
55
|
+
`;
|
|
56
|
+
function contractCargo(opts, scaffoldContractName) {
|
|
57
|
+
return `[package]
|
|
58
|
+
name = "${scaffoldContractName.replace(/_/, '-')}-contract"
|
|
59
|
+
edition.workspace = true
|
|
60
|
+
license.workspace = true
|
|
61
|
+
publish = false
|
|
62
|
+
version.workspace = true
|
|
63
|
+
|
|
64
|
+
[lib]
|
|
65
|
+
crate-type = ["cdylib"]
|
|
66
|
+
doctest = false
|
|
67
|
+
|
|
68
|
+
[dependencies]
|
|
69
|
+
${addDependenciesWith('{ workspace = true }', [...getDependenciesToAdd(opts), 'soroban'])}
|
|
70
|
+
[dev-dependencies]
|
|
71
|
+
${addDependenciesWith('{ workspace = true, features = ["testutils"] }', ['soroban'])}
|
|
72
|
+
`;
|
|
73
|
+
}
|
|
74
|
+
function pascalToSnakeCase(string) {
|
|
75
|
+
return string
|
|
76
|
+
.replace(/([A-Z])/g, '_$1')
|
|
77
|
+
.replace(/^_/, '')
|
|
78
|
+
.toLowerCase();
|
|
79
|
+
}
|
|
80
|
+
exports.contractOptionsToScaffoldContractName = pascalToSnakeCase;
|
|
81
|
+
function getAddressArgs(c) {
|
|
82
|
+
return c.constructorArgs
|
|
83
|
+
.filter(constructorArg => { var _a; return ((_a = constructorArg.type) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'address'; })
|
|
84
|
+
.map(constructorArg => constructorArg.name);
|
|
85
|
+
}
|
|
86
|
+
const setupSh = (c, opts, scaffoldContractName) => {
|
|
87
|
+
const environmentsFileUpdate = (setUpContract, setUpScaffoldContractName) => `
|
|
88
|
+
# Update environments.toml: remove original contracts and insert wizard's contract
|
|
89
|
+
setup_environment() {
|
|
90
|
+
local file="environments.toml"
|
|
91
|
+
local temp
|
|
92
|
+
temp="$(mktemp)"
|
|
93
|
+
|
|
94
|
+
local in_dev_contracts=0
|
|
95
|
+
local skip_entry=0
|
|
96
|
+
local contract_entry_inserted=0
|
|
97
|
+
insert_contract_entry() {
|
|
98
|
+
{
|
|
99
|
+
printf '%s\\n' "[development.contracts.${setUpScaffoldContractName}_contract]" \\
|
|
100
|
+
"client = true" "" \\
|
|
101
|
+
"# If your contract has a \\\`__constructor\\\`, specify your arguments to it here." \\
|
|
102
|
+
"# These are the same arguments you could pass after the \\\`--\\\` in a call to" \\
|
|
103
|
+
"# \\\`stellar contract deploy\\\`" \\
|
|
104
|
+
"# Only available in \\\`development\\\` and \\\`test\\\` environments" \\
|
|
105
|
+
${setUpContract.constructorArgs.length
|
|
106
|
+
? // Mind the spacing
|
|
107
|
+
`"# TODO add appropriate values for for the constructors arguments" \\
|
|
108
|
+
"constructor_args = \\"\\"\\"" \\
|
|
109
|
+
"${setUpContract.constructorArgs.map(constructorArg => { var _a; return `--${constructorArg.name} \\"ADD_${constructorArg.name.toLocaleUpperCase()}_${((_a = constructorArg.type) === null || _a === void 0 ? void 0 : _a.toLocaleUpperCase()) || 'ARGUMENT'}_HERE\\"`; }).join(' ')}" \\
|
|
110
|
+
"\\"\\"\\"" \\
|
|
111
|
+
""`
|
|
112
|
+
: '""'}
|
|
113
|
+
} >> "$temp"
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
while IFS= read -r line; do
|
|
117
|
+
if [[ $contract_entry_inserted -eq 0 && $line == '[staging.network]' ]]; then
|
|
118
|
+
insert_contract_entry
|
|
119
|
+
contract_entry_inserted=1
|
|
120
|
+
fi
|
|
121
|
+
|
|
122
|
+
if [[ $line =~ ^\\[development\\.contracts\\]$ ]]; then
|
|
123
|
+
printf '%s\\n' "$line" >> "$temp"
|
|
124
|
+
in_dev_contracts=1
|
|
125
|
+
skip_entry=0
|
|
126
|
+
continue
|
|
127
|
+
fi
|
|
128
|
+
|
|
129
|
+
if [[ $line =~ ^\\[[^]]+\\]$ ]]; then
|
|
130
|
+
if (( in_dev_contracts )) && [[ $line =~ ^\\[development\\.contracts\\..+\\]$ ]]; then
|
|
131
|
+
skip_entry=1
|
|
132
|
+
in_dev_contracts=0
|
|
133
|
+
continue
|
|
134
|
+
fi
|
|
135
|
+
in_dev_contracts=0
|
|
136
|
+
skip_entry=0
|
|
137
|
+
printf '%s\\n' "$line" >> "$temp"
|
|
138
|
+
continue
|
|
139
|
+
fi
|
|
140
|
+
|
|
141
|
+
if (( skip_entry )); then
|
|
142
|
+
continue
|
|
143
|
+
fi
|
|
144
|
+
|
|
145
|
+
if (( in_dev_contracts )); then
|
|
146
|
+
if [[ $line =~ ^[[:space:]]*# ]]; then
|
|
147
|
+
printf '%s\\n' "$line" >> "$temp"
|
|
148
|
+
fi
|
|
149
|
+
continue
|
|
150
|
+
fi
|
|
151
|
+
|
|
152
|
+
printf '%s\\n' "$line" >> "$temp"
|
|
153
|
+
done < "$file"
|
|
154
|
+
|
|
155
|
+
mv "$temp" "$file"
|
|
156
|
+
}
|
|
157
|
+
`;
|
|
158
|
+
const updateWorkspaceCargo = (opts) => `update_cargo() {
|
|
159
|
+
cp Cargo.toml Cargo.toml.bak
|
|
160
|
+
|
|
161
|
+
cat <<EOF > deps.tmp
|
|
162
|
+
${addDependenciesWith(`{ git = "https://github.com/OpenZeppelin/stellar-contracts", tag = "${version_1.contractsVersionTag}" }`, getDependenciesToAdd(opts))}${addDependenciesWith(`{ version = "${version_1.compatibleSorobanVersion}" }`, ['soroban'])}
|
|
163
|
+
EOF
|
|
164
|
+
|
|
165
|
+
awk '
|
|
166
|
+
BEGIN {
|
|
167
|
+
inserted = 0
|
|
168
|
+
deps = ""
|
|
169
|
+
while ((getline line < "deps.tmp") > 0) {
|
|
170
|
+
deps = deps line "\\n"
|
|
171
|
+
}
|
|
172
|
+
close("deps.tmp")
|
|
173
|
+
}
|
|
174
|
+
/^\\[workspace.dependencies\\]/ {
|
|
175
|
+
in_deps = 1
|
|
176
|
+
print
|
|
177
|
+
if (!inserted) {
|
|
178
|
+
printf "%s", deps
|
|
179
|
+
inserted = 1
|
|
180
|
+
}
|
|
181
|
+
next
|
|
182
|
+
}
|
|
183
|
+
/^\\[/ { in_deps = 0 }
|
|
184
|
+
in_deps { next }
|
|
185
|
+
{ print }
|
|
186
|
+
' Cargo.toml.bak > Cargo.toml
|
|
187
|
+
|
|
188
|
+
rm deps.tmp
|
|
189
|
+
rm Cargo.toml.bak
|
|
190
|
+
}`;
|
|
191
|
+
return `\
|
|
192
|
+
#!/usr/bin/env bash
|
|
193
|
+
#
|
|
194
|
+
# setup.sh
|
|
195
|
+
#
|
|
196
|
+
# This script is meant to set up a Scaffold project and insert the Wizard's contracts in the project
|
|
197
|
+
|
|
198
|
+
check_is_installed() {
|
|
199
|
+
if ! which "$1" &> /dev/null; then
|
|
200
|
+
echo "❌ $1 command not found."
|
|
201
|
+
echo "Install $2 and try again, you can find installation guides in the README."
|
|
202
|
+
exit 1
|
|
203
|
+
fi
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
scaffold() {
|
|
207
|
+
tmp_folder="tmp"
|
|
208
|
+
stellar scaffold init "$tmp_folder"
|
|
209
|
+
|
|
210
|
+
rm -rf "$tmp_folder/contracts"
|
|
211
|
+
|
|
212
|
+
local current_directory
|
|
213
|
+
current_directory="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
|
|
214
|
+
|
|
215
|
+
shopt -s dotglob
|
|
216
|
+
|
|
217
|
+
cp -a "$current_directory/$tmp_folder"/. "$current_directory"/
|
|
218
|
+
rm -rf "$current_directory/$tmp_folder"
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
init_git(){
|
|
222
|
+
git init
|
|
223
|
+
git add .
|
|
224
|
+
git commit -m "openzeppelin: add wizard output" --quiet
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
${environmentsFileUpdate(c, scaffoldContractName)}
|
|
228
|
+
|
|
229
|
+
${updateWorkspaceCargo(opts)}
|
|
230
|
+
|
|
231
|
+
build_contracts() {
|
|
232
|
+
cargo build
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
install_npm_dependencies() {
|
|
236
|
+
if ! npm install --silent; then
|
|
237
|
+
echo "❌ Failed to set up the project."
|
|
238
|
+
exit 1
|
|
239
|
+
fi
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
################
|
|
244
|
+
##### Start ####
|
|
245
|
+
################
|
|
246
|
+
|
|
247
|
+
echo "⚙️ Checking dependencies requirement"
|
|
248
|
+
check_is_installed git "Git"
|
|
249
|
+
check_is_installed cargo "Rust"
|
|
250
|
+
check_is_installed stellar "Scaffold"
|
|
251
|
+
check_is_installed docker "Docker"
|
|
252
|
+
check_is_installed node "Node"
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
if ! [ -f "environments.toml" ]
|
|
256
|
+
then
|
|
257
|
+
echo "🏗️ Building Scaffold project"
|
|
258
|
+
|
|
259
|
+
scaffold
|
|
260
|
+
|
|
261
|
+
setup_environment
|
|
262
|
+
|
|
263
|
+
update_cargo
|
|
264
|
+
|
|
265
|
+
build_contracts
|
|
266
|
+
|
|
267
|
+
install_npm_dependencies
|
|
268
|
+
|
|
269
|
+
init_git
|
|
270
|
+
|
|
271
|
+
echo "✅ Installation complete"
|
|
272
|
+
else
|
|
273
|
+
echo "✅ Scaffold project already initialized."
|
|
274
|
+
fi
|
|
275
|
+
`;
|
|
276
|
+
};
|
|
277
|
+
const readme = (c) => {
|
|
278
|
+
const hasTodosToResolve = (c) => getAddressArgs(c).length > 0;
|
|
279
|
+
return `\
|
|
280
|
+
# Sample Scaffold Project
|
|
281
|
+
|
|
282
|
+
This project demonstrates a basic Scaffold use case. It comes with a contract generated by [OpenZeppelin Wizard](https://wizard.openzeppelin.com/), a test for that contract, and a script that initiate a Stellar Scaffold project with this contract. [Scaffold Stellar](https://github.com/AhaLabs/scaffold-stellar?tab=readme-ov-file#scaffold-stellar) is a convention-over-configuration toolkit for blockchain and distributed application development on the Stellar network. It provides a seamless development experience through CLI tools, smart contract management, and deployment utilities.
|
|
283
|
+
|
|
284
|
+
## Installing dependencies
|
|
285
|
+
|
|
286
|
+
- See [Git installation guide](https://github.com/git-guides/install-git).
|
|
287
|
+
- See [Rust installation guide](https://www.rust-lang.org/tools/install).
|
|
288
|
+
- See [Scaffold CLI installation guide](https://github.com/AhaLabs/scaffold-stellar?tab=readme-ov-file#quick-start).
|
|
289
|
+
- See [Docker installation guide](https://docs.docker.com/engine/install/).
|
|
290
|
+
- See [Node installation guide](https://nodejs.org/en/download).
|
|
291
|
+
|
|
292
|
+
## Initializing the project
|
|
293
|
+
|
|
294
|
+
\`\`\`
|
|
295
|
+
bash setup.sh
|
|
296
|
+
\`\`\`
|
|
297
|
+
${hasTodosToResolve(c) ? '\n## Resolve any TODOs \n\nSearch for any TODO comments in the project and resolve them (search for TODO with your code editor).\n' : ''}
|
|
298
|
+
|
|
299
|
+
## Testing the contract
|
|
300
|
+
|
|
301
|
+
\`\`\`
|
|
302
|
+
cargo test
|
|
303
|
+
\`\`\`
|
|
304
|
+
|
|
305
|
+
## Deploying the contract
|
|
306
|
+
|
|
307
|
+
\`\`\`
|
|
308
|
+
stellar scaffold watch --build-clients
|
|
309
|
+
\`\`\`
|
|
310
|
+
|
|
311
|
+
## Deploying the contract and run the Scaffold UI app
|
|
312
|
+
|
|
313
|
+
\`\`\`
|
|
314
|
+
npm run dev
|
|
315
|
+
\`\`\`
|
|
316
|
+
`;
|
|
317
|
+
};
|
|
318
|
+
const createLib = `#![no_std]
|
|
319
|
+
#![allow(dead_code)]
|
|
320
|
+
|
|
321
|
+
mod contract;
|
|
322
|
+
mod test;
|
|
323
|
+
`;
|
|
324
|
+
async function zipScaffold(c, opts) {
|
|
325
|
+
const zip = new jszip_1.default();
|
|
326
|
+
const scaffoldContractName = (0, exports.contractOptionsToScaffoldContractName)((opts === null || opts === void 0 ? void 0 : opts.kind) || 'contract');
|
|
327
|
+
zip.file(`contracts/${scaffoldContractName}/src/contract.rs`, (0, print_1.removeCreateLevelAttributes)((0, print_1.printContract)(c)));
|
|
328
|
+
zip.file(`contracts/${scaffoldContractName}/src/test.rs`, test(c));
|
|
329
|
+
zip.file(`contracts/${scaffoldContractName}/src/lib.rs`, createLib);
|
|
330
|
+
zip.file(`contracts/${scaffoldContractName}/Cargo.toml`, contractCargo(opts, scaffoldContractName));
|
|
331
|
+
zip.file('setup.sh', setupSh(c, opts, scaffoldContractName));
|
|
332
|
+
zip.file('README-WIZARD.md', readme(c));
|
|
333
|
+
return zip;
|
|
334
|
+
}
|
|
335
|
+
//# sourceMappingURL=zip-scaffold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip-scaffold.js","sourceRoot":"","sources":["../src/zip-scaffold.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openzeppelin/wizard-stellar",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "A boilerplate generator to get started with OpenZeppelin Stellar Soroban Contracts",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"repository": "https://github.com/OpenZeppelin/contracts-wizard",
|
package/src/index.ts
CHANGED
|
@@ -23,3 +23,6 @@ export { contractsVersion, contractsVersionTag, compatibleContractsSemver } from
|
|
|
23
23
|
|
|
24
24
|
export { fungible } from './api';
|
|
25
25
|
export { nonFungible } from './api';
|
|
26
|
+
|
|
27
|
+
export type { FungibleOptions } from './fungible';
|
|
28
|
+
export type { NonFungibleOptions } from './non-fungible';
|
package/src/print.ts
CHANGED
|
@@ -9,6 +9,13 @@ const DEFAULT_SECTION = '1. with no section';
|
|
|
9
9
|
const STANDALONE_IMPORTS_GROUP = 'Standalone Imports';
|
|
10
10
|
const MAX_USE_CLAUSE_LINE_LENGTH = 90;
|
|
11
11
|
const TAB = ' ';
|
|
12
|
+
export const createLevelAttributes = [`#![no_std]`];
|
|
13
|
+
|
|
14
|
+
export const removeCreateLevelAttributes = (printedContract: string) =>
|
|
15
|
+
createLevelAttributes.reduce(
|
|
16
|
+
(cleanedPrintedContract, createLevelAttribute) => cleanedPrintedContract.replace(createLevelAttribute, ''),
|
|
17
|
+
printedContract,
|
|
18
|
+
);
|
|
12
19
|
|
|
13
20
|
export function printContract(contract: Contract): string {
|
|
14
21
|
return formatLines(
|
|
@@ -16,7 +23,7 @@ export function printContract(contract: Contract): string {
|
|
|
16
23
|
[
|
|
17
24
|
`// SPDX-License-Identifier: ${contract.license}`,
|
|
18
25
|
`// Compatible with OpenZeppelin Stellar Soroban Contracts ${compatibleContractsSemver}`,
|
|
19
|
-
|
|
26
|
+
...createLevelAttributes,
|
|
20
27
|
],
|
|
21
28
|
spaceBetween(
|
|
22
29
|
printUseClauses(contract),
|
package/src/utils/version.ts
CHANGED
|
@@ -8,3 +8,8 @@ export const contractsVersionTag = `v${contractsVersion}`;
|
|
|
8
8
|
* Semantic version string representing of the minimum compatible version of Contracts to display in output.
|
|
9
9
|
*/
|
|
10
10
|
export const compatibleContractsSemver = '^0.2.0';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The Soroban version for which compilation and testing have passing tests
|
|
14
|
+
*/
|
|
15
|
+
export const compatibleSorobanVersion = '22.0.8';
|
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
import JSZip from 'jszip';
|
|
2
|
+
import type { GenericOptions } from './build-generic';
|
|
3
|
+
import type { Contract } from './contract';
|
|
4
|
+
import { printContract, removeCreateLevelAttributes } from './print';
|
|
5
|
+
import { compatibleSorobanVersion, contractsVersionTag } from './utils/version';
|
|
6
|
+
|
|
7
|
+
const dependencies = {
|
|
8
|
+
base: ['stellar-default-impl-macro'],
|
|
9
|
+
fungible: ['stellar-fungible'],
|
|
10
|
+
nonFungible: ['stellar-non-fungible'],
|
|
11
|
+
pausable: ['stellar-pausable', 'stellar-pausable-macros'],
|
|
12
|
+
upgradable: ['stellar-upgradeable', 'stellar-upgradeable-macros'],
|
|
13
|
+
soroban: ['soroban-sdk'],
|
|
14
|
+
} as const;
|
|
15
|
+
|
|
16
|
+
const addDependenciesWith = (dependencyValue: string, dependenciesToAdd: (keyof typeof dependencies)[]) =>
|
|
17
|
+
dependenciesToAdd.reduce((addedDependency, dependencyName) => {
|
|
18
|
+
return `${addedDependency}${dependencies[dependencyName].map(cargoDependencies => `${cargoDependencies} = ${dependencyValue}\n`).join('')}`;
|
|
19
|
+
}, '');
|
|
20
|
+
|
|
21
|
+
const getDependenciesToAdd = (opts: GenericOptions): (keyof typeof dependencies)[] => {
|
|
22
|
+
const dependenciesToAdd: (keyof typeof dependencies)[] = ['base'];
|
|
23
|
+
|
|
24
|
+
if (opts.kind === 'Fungible') dependenciesToAdd.push('fungible');
|
|
25
|
+
if (opts.kind === 'NonFungible') dependenciesToAdd.push('nonFungible');
|
|
26
|
+
if (opts.pausable) dependenciesToAdd.push('pausable');
|
|
27
|
+
if (opts.upgradeable) dependenciesToAdd.push('upgradable');
|
|
28
|
+
|
|
29
|
+
return dependenciesToAdd;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const test = (c: Contract) => `#![cfg(test)]
|
|
33
|
+
|
|
34
|
+
extern crate std;
|
|
35
|
+
|
|
36
|
+
use soroban_sdk::{ ${getAddressArgs(c).length ? 'testutils::Address as _, Address, ' : ''}Env, String };
|
|
37
|
+
|
|
38
|
+
use crate::contract::{ ${c.name}, ${c.name}Client };
|
|
39
|
+
|
|
40
|
+
#[test]
|
|
41
|
+
fn initial_state() {
|
|
42
|
+
let env = Env::default();
|
|
43
|
+
|
|
44
|
+
let contract_addr = env.register(${c.name}, (${getAddressArgs(c)
|
|
45
|
+
.map(() => 'Address::generate(&env)')
|
|
46
|
+
.join(',')}${getAddressArgs(c).length === 1 ? ',' : ''}));
|
|
47
|
+
let client = ${c.name}Client::new(&env, &contract_addr);
|
|
48
|
+
|
|
49
|
+
assert_eq!(client.name(), String::from_str(&env, "${c.name}"));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Add more tests bellow
|
|
53
|
+
`;
|
|
54
|
+
|
|
55
|
+
function contractCargo(opts: GenericOptions, scaffoldContractName: string) {
|
|
56
|
+
return `[package]
|
|
57
|
+
name = "${scaffoldContractName.replace(/_/, '-')}-contract"
|
|
58
|
+
edition.workspace = true
|
|
59
|
+
license.workspace = true
|
|
60
|
+
publish = false
|
|
61
|
+
version.workspace = true
|
|
62
|
+
|
|
63
|
+
[lib]
|
|
64
|
+
crate-type = ["cdylib"]
|
|
65
|
+
doctest = false
|
|
66
|
+
|
|
67
|
+
[dependencies]
|
|
68
|
+
${addDependenciesWith('{ workspace = true }', [...getDependenciesToAdd(opts), 'soroban'])}
|
|
69
|
+
[dev-dependencies]
|
|
70
|
+
${addDependenciesWith('{ workspace = true, features = ["testutils"] }', ['soroban'])}
|
|
71
|
+
`;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function pascalToSnakeCase(string: string) {
|
|
75
|
+
return string
|
|
76
|
+
.replace(/([A-Z])/g, '_$1')
|
|
77
|
+
.replace(/^_/, '')
|
|
78
|
+
.toLowerCase();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export const contractOptionsToScaffoldContractName = pascalToSnakeCase;
|
|
82
|
+
|
|
83
|
+
function getAddressArgs(c: Contract): string[] {
|
|
84
|
+
return c.constructorArgs
|
|
85
|
+
.filter(constructorArg => constructorArg.type?.toLowerCase() === 'address')
|
|
86
|
+
.map(constructorArg => constructorArg.name);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const setupSh = (c: Contract, opts: GenericOptions, scaffoldContractName: string) => {
|
|
90
|
+
const environmentsFileUpdate = (setUpContract: Contract, setUpScaffoldContractName: string) => `
|
|
91
|
+
# Update environments.toml: remove original contracts and insert wizard's contract
|
|
92
|
+
setup_environment() {
|
|
93
|
+
local file="environments.toml"
|
|
94
|
+
local temp
|
|
95
|
+
temp="$(mktemp)"
|
|
96
|
+
|
|
97
|
+
local in_dev_contracts=0
|
|
98
|
+
local skip_entry=0
|
|
99
|
+
local contract_entry_inserted=0
|
|
100
|
+
insert_contract_entry() {
|
|
101
|
+
{
|
|
102
|
+
printf '%s\\n' "[development.contracts.${setUpScaffoldContractName}_contract]" \\
|
|
103
|
+
"client = true" "" \\
|
|
104
|
+
"# If your contract has a \\\`__constructor\\\`, specify your arguments to it here." \\
|
|
105
|
+
"# These are the same arguments you could pass after the \\\`--\\\` in a call to" \\
|
|
106
|
+
"# \\\`stellar contract deploy\\\`" \\
|
|
107
|
+
"# Only available in \\\`development\\\` and \\\`test\\\` environments" \\
|
|
108
|
+
${
|
|
109
|
+
setUpContract.constructorArgs.length
|
|
110
|
+
? // Mind the spacing
|
|
111
|
+
`"# TODO add appropriate values for for the constructors arguments" \\
|
|
112
|
+
"constructor_args = \\"\\"\\"" \\
|
|
113
|
+
"${setUpContract.constructorArgs.map(constructorArg => `--${constructorArg.name} \\"ADD_${constructorArg.name.toLocaleUpperCase()}_${constructorArg.type?.toLocaleUpperCase() || 'ARGUMENT'}_HERE\\"`).join(' ')}" \\
|
|
114
|
+
"\\"\\"\\"" \\
|
|
115
|
+
""`
|
|
116
|
+
: '""'
|
|
117
|
+
}
|
|
118
|
+
} >> "$temp"
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
while IFS= read -r line; do
|
|
122
|
+
if [[ $contract_entry_inserted -eq 0 && $line == '[staging.network]' ]]; then
|
|
123
|
+
insert_contract_entry
|
|
124
|
+
contract_entry_inserted=1
|
|
125
|
+
fi
|
|
126
|
+
|
|
127
|
+
if [[ $line =~ ^\\[development\\.contracts\\]$ ]]; then
|
|
128
|
+
printf '%s\\n' "$line" >> "$temp"
|
|
129
|
+
in_dev_contracts=1
|
|
130
|
+
skip_entry=0
|
|
131
|
+
continue
|
|
132
|
+
fi
|
|
133
|
+
|
|
134
|
+
if [[ $line =~ ^\\[[^]]+\\]$ ]]; then
|
|
135
|
+
if (( in_dev_contracts )) && [[ $line =~ ^\\[development\\.contracts\\..+\\]$ ]]; then
|
|
136
|
+
skip_entry=1
|
|
137
|
+
in_dev_contracts=0
|
|
138
|
+
continue
|
|
139
|
+
fi
|
|
140
|
+
in_dev_contracts=0
|
|
141
|
+
skip_entry=0
|
|
142
|
+
printf '%s\\n' "$line" >> "$temp"
|
|
143
|
+
continue
|
|
144
|
+
fi
|
|
145
|
+
|
|
146
|
+
if (( skip_entry )); then
|
|
147
|
+
continue
|
|
148
|
+
fi
|
|
149
|
+
|
|
150
|
+
if (( in_dev_contracts )); then
|
|
151
|
+
if [[ $line =~ ^[[:space:]]*# ]]; then
|
|
152
|
+
printf '%s\\n' "$line" >> "$temp"
|
|
153
|
+
fi
|
|
154
|
+
continue
|
|
155
|
+
fi
|
|
156
|
+
|
|
157
|
+
printf '%s\\n' "$line" >> "$temp"
|
|
158
|
+
done < "$file"
|
|
159
|
+
|
|
160
|
+
mv "$temp" "$file"
|
|
161
|
+
}
|
|
162
|
+
`;
|
|
163
|
+
|
|
164
|
+
const updateWorkspaceCargo = (opts: GenericOptions) => `update_cargo() {
|
|
165
|
+
cp Cargo.toml Cargo.toml.bak
|
|
166
|
+
|
|
167
|
+
cat <<EOF > deps.tmp
|
|
168
|
+
${addDependenciesWith(`{ git = "https://github.com/OpenZeppelin/stellar-contracts", tag = "${contractsVersionTag}" }`, getDependenciesToAdd(opts))}${addDependenciesWith(`{ version = "${compatibleSorobanVersion}" }`, ['soroban'])}
|
|
169
|
+
EOF
|
|
170
|
+
|
|
171
|
+
awk '
|
|
172
|
+
BEGIN {
|
|
173
|
+
inserted = 0
|
|
174
|
+
deps = ""
|
|
175
|
+
while ((getline line < "deps.tmp") > 0) {
|
|
176
|
+
deps = deps line "\\n"
|
|
177
|
+
}
|
|
178
|
+
close("deps.tmp")
|
|
179
|
+
}
|
|
180
|
+
/^\\[workspace.dependencies\\]/ {
|
|
181
|
+
in_deps = 1
|
|
182
|
+
print
|
|
183
|
+
if (!inserted) {
|
|
184
|
+
printf "%s", deps
|
|
185
|
+
inserted = 1
|
|
186
|
+
}
|
|
187
|
+
next
|
|
188
|
+
}
|
|
189
|
+
/^\\[/ { in_deps = 0 }
|
|
190
|
+
in_deps { next }
|
|
191
|
+
{ print }
|
|
192
|
+
' Cargo.toml.bak > Cargo.toml
|
|
193
|
+
|
|
194
|
+
rm deps.tmp
|
|
195
|
+
rm Cargo.toml.bak
|
|
196
|
+
}`;
|
|
197
|
+
|
|
198
|
+
return `\
|
|
199
|
+
#!/usr/bin/env bash
|
|
200
|
+
#
|
|
201
|
+
# setup.sh
|
|
202
|
+
#
|
|
203
|
+
# This script is meant to set up a Scaffold project and insert the Wizard's contracts in the project
|
|
204
|
+
|
|
205
|
+
check_is_installed() {
|
|
206
|
+
if ! which "$1" &> /dev/null; then
|
|
207
|
+
echo "❌ $1 command not found."
|
|
208
|
+
echo "Install $2 and try again, you can find installation guides in the README."
|
|
209
|
+
exit 1
|
|
210
|
+
fi
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
scaffold() {
|
|
214
|
+
tmp_folder="tmp"
|
|
215
|
+
stellar scaffold init "$tmp_folder"
|
|
216
|
+
|
|
217
|
+
rm -rf "$tmp_folder/contracts"
|
|
218
|
+
|
|
219
|
+
local current_directory
|
|
220
|
+
current_directory="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
|
|
221
|
+
|
|
222
|
+
shopt -s dotglob
|
|
223
|
+
|
|
224
|
+
cp -a "$current_directory/$tmp_folder"/. "$current_directory"/
|
|
225
|
+
rm -rf "$current_directory/$tmp_folder"
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
init_git(){
|
|
229
|
+
git init
|
|
230
|
+
git add .
|
|
231
|
+
git commit -m "openzeppelin: add wizard output" --quiet
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
${environmentsFileUpdate(c, scaffoldContractName)}
|
|
235
|
+
|
|
236
|
+
${updateWorkspaceCargo(opts)}
|
|
237
|
+
|
|
238
|
+
build_contracts() {
|
|
239
|
+
cargo build
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
install_npm_dependencies() {
|
|
243
|
+
if ! npm install --silent; then
|
|
244
|
+
echo "❌ Failed to set up the project."
|
|
245
|
+
exit 1
|
|
246
|
+
fi
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
################
|
|
251
|
+
##### Start ####
|
|
252
|
+
################
|
|
253
|
+
|
|
254
|
+
echo "⚙️ Checking dependencies requirement"
|
|
255
|
+
check_is_installed git "Git"
|
|
256
|
+
check_is_installed cargo "Rust"
|
|
257
|
+
check_is_installed stellar "Scaffold"
|
|
258
|
+
check_is_installed docker "Docker"
|
|
259
|
+
check_is_installed node "Node"
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
if ! [ -f "environments.toml" ]
|
|
263
|
+
then
|
|
264
|
+
echo "🏗️ Building Scaffold project"
|
|
265
|
+
|
|
266
|
+
scaffold
|
|
267
|
+
|
|
268
|
+
setup_environment
|
|
269
|
+
|
|
270
|
+
update_cargo
|
|
271
|
+
|
|
272
|
+
build_contracts
|
|
273
|
+
|
|
274
|
+
install_npm_dependencies
|
|
275
|
+
|
|
276
|
+
init_git
|
|
277
|
+
|
|
278
|
+
echo "✅ Installation complete"
|
|
279
|
+
else
|
|
280
|
+
echo "✅ Scaffold project already initialized."
|
|
281
|
+
fi
|
|
282
|
+
`;
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
const readme = (c: Contract) => {
|
|
286
|
+
const hasTodosToResolve = (c: Contract) => getAddressArgs(c).length > 0;
|
|
287
|
+
|
|
288
|
+
return `\
|
|
289
|
+
# Sample Scaffold Project
|
|
290
|
+
|
|
291
|
+
This project demonstrates a basic Scaffold use case. It comes with a contract generated by [OpenZeppelin Wizard](https://wizard.openzeppelin.com/), a test for that contract, and a script that initiate a Stellar Scaffold project with this contract. [Scaffold Stellar](https://github.com/AhaLabs/scaffold-stellar?tab=readme-ov-file#scaffold-stellar) is a convention-over-configuration toolkit for blockchain and distributed application development on the Stellar network. It provides a seamless development experience through CLI tools, smart contract management, and deployment utilities.
|
|
292
|
+
|
|
293
|
+
## Installing dependencies
|
|
294
|
+
|
|
295
|
+
- See [Git installation guide](https://github.com/git-guides/install-git).
|
|
296
|
+
- See [Rust installation guide](https://www.rust-lang.org/tools/install).
|
|
297
|
+
- See [Scaffold CLI installation guide](https://github.com/AhaLabs/scaffold-stellar?tab=readme-ov-file#quick-start).
|
|
298
|
+
- See [Docker installation guide](https://docs.docker.com/engine/install/).
|
|
299
|
+
- See [Node installation guide](https://nodejs.org/en/download).
|
|
300
|
+
|
|
301
|
+
## Initializing the project
|
|
302
|
+
|
|
303
|
+
\`\`\`
|
|
304
|
+
bash setup.sh
|
|
305
|
+
\`\`\`
|
|
306
|
+
${hasTodosToResolve(c) ? '\n## Resolve any TODOs \n\nSearch for any TODO comments in the project and resolve them (search for TODO with your code editor).\n' : ''}
|
|
307
|
+
|
|
308
|
+
## Testing the contract
|
|
309
|
+
|
|
310
|
+
\`\`\`
|
|
311
|
+
cargo test
|
|
312
|
+
\`\`\`
|
|
313
|
+
|
|
314
|
+
## Deploying the contract
|
|
315
|
+
|
|
316
|
+
\`\`\`
|
|
317
|
+
stellar scaffold watch --build-clients
|
|
318
|
+
\`\`\`
|
|
319
|
+
|
|
320
|
+
## Deploying the contract and run the Scaffold UI app
|
|
321
|
+
|
|
322
|
+
\`\`\`
|
|
323
|
+
npm run dev
|
|
324
|
+
\`\`\`
|
|
325
|
+
`;
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
const createLib = `#![no_std]
|
|
329
|
+
#![allow(dead_code)]
|
|
330
|
+
|
|
331
|
+
mod contract;
|
|
332
|
+
mod test;
|
|
333
|
+
`;
|
|
334
|
+
|
|
335
|
+
export async function zipScaffold(c: Contract, opts: GenericOptions) {
|
|
336
|
+
const zip = new JSZip();
|
|
337
|
+
|
|
338
|
+
const scaffoldContractName = contractOptionsToScaffoldContractName(opts?.kind || 'contract');
|
|
339
|
+
|
|
340
|
+
zip.file(`contracts/${scaffoldContractName}/src/contract.rs`, removeCreateLevelAttributes(printContract(c)));
|
|
341
|
+
zip.file(`contracts/${scaffoldContractName}/src/test.rs`, test(c));
|
|
342
|
+
zip.file(`contracts/${scaffoldContractName}/src/lib.rs`, createLib);
|
|
343
|
+
zip.file(`contracts/${scaffoldContractName}/Cargo.toml`, contractCargo(opts, scaffoldContractName));
|
|
344
|
+
zip.file('setup.sh', setupSh(c, opts, scaffoldContractName));
|
|
345
|
+
zip.file('README-WIZARD.md', readme(c));
|
|
346
|
+
|
|
347
|
+
return zip;
|
|
348
|
+
}
|