@openzeppelin/wizard-stellar 0.2.2 → 0.2.3

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.
@@ -1,5 +1,7 @@
1
1
  export interface Contract {
2
2
  license: string;
3
+ securityContact: string;
4
+ documentations: string[];
3
5
  name: string;
4
6
  useClauses: UseClause[];
5
7
  constructorCode: string[];
@@ -65,7 +67,9 @@ export interface Argument {
65
67
  export declare class ContractBuilder implements Contract {
66
68
  readonly name: string;
67
69
  license: string;
70
+ securityContact: string;
68
71
  ownable: boolean;
72
+ readonly documentations: string[];
69
73
  readonly constructorArgs: Argument[];
70
74
  readonly constructorCode: string[];
71
75
  private implementedTraitsMap;
@@ -98,5 +102,7 @@ export declare class ContractBuilder implements Contract {
98
102
  addConstructorArgument(arg: Argument): void;
99
103
  addConstructorCode(code: string): void;
100
104
  addDerives(derive: string): void;
105
+ addDocumentation(description: string): void;
106
+ addSecurityTag(securityContact: string): void;
101
107
  }
102
108
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,iBAAiB,EAAE,cAAc,EAAE,CAAC;IACpC,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEhG,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,SAAS;IAChB,eAAe,SAAM;IACrB,OAAO,UAAS;IAEhB,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAM;IAEvC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,CAAM;IAC1C,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAM;IAExC,OAAO,CAAC,oBAAoB,CAA0C;IACtE,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,UAAU,CAA0B;gBAEhC,IAAI,EAAE,MAAM;IAIxB,IAAI,iBAAiB,IAAI,cAAc,EAAE,CAExC;IAED,IAAI,aAAa,IAAI,gBAAgB,EAAE,CAEtC;IAED,IAAI,SAAS,IAAI,QAAQ,EAAE,CAE1B;IAED,IAAI,UAAU,IAAI,SAAS,EAAE,CAE5B;IAED,IAAI,MAAM,IAAI,KAAK,EAAE,CAEpB;IAED,IAAI,OAAO,IAAI,MAAM,EAAE,CAEtB;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAU5C,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAW1G,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IASxC,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,GAAG,cAAc;IAqBhE,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,gBAAgB;IAiBnD,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,EAAE,EAAE,EAAE,YAAY,GAAG,gBAAgB;IAsBnF,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAShE,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,mBAAmB;IAS3B,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAKnG,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAKnF,sBAAsB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;IAS3C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAItC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIhC,gBAAgB,CAAC,WAAW,EAAE,MAAM;IAIpC,cAAc,CAAC,eAAe,EAAE,MAAM;CAGvC"}
package/dist/contract.js CHANGED
@@ -5,7 +5,9 @@ const convert_strings_1 = require("./utils/convert-strings");
5
5
  class ContractBuilder {
6
6
  constructor(name) {
7
7
  this.license = 'MIT';
8
+ this.securityContact = '';
8
9
  this.ownable = false;
10
+ this.documentations = [];
9
11
  this.constructorArgs = [];
10
12
  this.constructorCode = [];
11
13
  this.implementedTraitsMap = new Map();
@@ -164,6 +166,12 @@ class ContractBuilder {
164
166
  addDerives(derive) {
165
167
  this.derivesSet.add(derive);
166
168
  }
169
+ addDocumentation(description) {
170
+ this.documentations.push(description);
171
+ }
172
+ addSecurityTag(securityContact) {
173
+ this.securityContact = securityContact;
174
+ }
167
175
  }
168
176
  exports.ContractBuilder = ContractBuilder;
169
177
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
@@ -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;AAWlG,eAAO,MAAM,qBAAqB,UAAiB,CAAC;AAEpD,eAAO,MAAM,2BAA2B,oBAAqB,MAAM,WAIhE,CAAC;AAEJ,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAkBxD"}
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,CAoBxD"}
package/dist/print.js CHANGED
@@ -16,6 +16,8 @@ function printContract(contract) {
16
16
  return (0, format_lines_1.formatLines)(...(0, format_lines_1.spaceBetween)([
17
17
  `// SPDX-License-Identifier: ${contract.license}`,
18
18
  `// Compatible with OpenZeppelin Stellar Soroban Contracts ${version_1.compatibleContractsSemver}`,
19
+ ...(contract.documentations.length ? ['', ...printDocumentations(contract.documentations)] : []),
20
+ ...(contract.securityContact ? ['', ...printSecurityTag(contract.securityContact)] : []),
19
21
  ...exports.createLevelAttributes,
20
22
  ], (0, format_lines_1.spaceBetween)(printUseClauses(contract), printVariables(contract), printContractStruct(contract), printContractErrors(contract), printContractFunctions(contract), printImplementedTraits(contract))));
21
23
  }
@@ -295,4 +297,10 @@ function printArgument(arg) {
295
297
  return `${arg.name}`;
296
298
  }
297
299
  }
300
+ function printDocumentations(documentations) {
301
+ return documentations.map(documentation => `//! ${documentation}`);
302
+ }
303
+ function printSecurityTag(securityContact) {
304
+ return ['//! # Security', '//!', `//! For security issues, please contact: ${securityContact}`];
305
+ }
298
306
  //# sourceMappingURL=print.js.map
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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"}
@@ -1,10 +1,12 @@
1
1
  import type { ContractBuilder } from './contract';
2
+ export declare const TAG_SECURITY_CONTACT = "@custom:security-contact";
2
3
  export declare const infoOptions: readonly [{}, {
3
4
  readonly license: "WTFPL";
4
5
  }];
5
6
  export declare const defaults: Info;
6
7
  export type Info = {
7
8
  license?: string;
9
+ securityContact?: string;
8
10
  };
9
11
  export declare function setInfo(c: ContractBuilder, info: Info): void;
10
12
  //# sourceMappingURL=set-info.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-info.d.ts","sourceRoot":"","sources":["../src/set-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,WAAW;;EAAsC,CAAC;AAE/D,eAAO,MAAM,QAAQ,EAAE,IAAyB,CAAC;AAEjD,MAAM,MAAM,IAAI,GAAG;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAM5D"}
1
+ {"version":3,"file":"set-info.d.ts","sourceRoot":"","sources":["../src/set-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,oBAAoB,6BAA6B,CAAC;AAE/D,eAAO,MAAM,WAAW;;EAAsC,CAAC;AAE/D,eAAO,MAAM,QAAQ,EAAE,IAAyB,CAAC;AAEjD,MAAM,MAAM,IAAI,GAAG;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAU5D"}
package/dist/set-info.js CHANGED
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaults = exports.infoOptions = void 0;
3
+ exports.defaults = exports.infoOptions = exports.TAG_SECURITY_CONTACT = void 0;
4
4
  exports.setInfo = setInfo;
5
+ exports.TAG_SECURITY_CONTACT = `@custom:security-contact`;
5
6
  exports.infoOptions = [{}, { license: 'WTFPL' }];
6
7
  exports.defaults = { license: 'MIT' };
7
8
  function setInfo(c, info) {
8
- const { license } = info;
9
+ const { securityContact, license } = info;
10
+ if (securityContact) {
11
+ c.addSecurityTag(securityContact);
12
+ }
9
13
  if (license) {
10
14
  c.license = license;
11
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"set-info.js","sourceRoot":"","sources":["../src/set-info.ts"],"names":[],"mappings":";;;AAUA,0BAMC;AAdY,QAAA,WAAW,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAU,CAAC;AAElD,QAAA,QAAQ,GAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAMjD,SAAgB,OAAO,CAAC,CAAkB,EAAE,IAAU;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,IAAI,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"set-info.js","sourceRoot":"","sources":["../src/set-info.ts"],"names":[],"mappings":";;;AAaA,0BAUC;AArBY,QAAA,oBAAoB,GAAG,0BAA0B,CAAC;AAElD,QAAA,WAAW,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAU,CAAC;AAElD,QAAA,QAAQ,GAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAOjD,SAAgB,OAAO,CAAC,CAAkB,EAAE,IAAU;IACpD,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAE1C,IAAI,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;IACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import JSZip from 'jszip';
2
+ import type { GenericOptions } from './build-generic';
3
+ import type { Contract } from './contract';
4
+ export declare function zipRust(c: Contract, opts: GenericOptions): Promise<JSZip>;
5
+ //# sourceMappingURL=zip-rust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip-rust.d.ts","sourceRoot":"","sources":["../src/zip-rust.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;AAyC3C,wBAAsB,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,kBAa9D"}
@@ -0,0 +1,49 @@
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.zipRust = zipRust;
7
+ const jszip_1 = __importDefault(require("jszip"));
8
+ const print_1 = require("./print");
9
+ const zip_shared_1 = require("./zip-shared");
10
+ const version_1 = require("./utils/version");
11
+ const workspaceCargo = `[workspace]
12
+ resolver = "2"
13
+ members = ["contracts/*"]
14
+
15
+ [workspace.package]
16
+ authors = []
17
+ edition = "2021"
18
+ license = "Apache-2.0"
19
+ version = "0.0.1"
20
+
21
+ [workspace.dependencies]
22
+ ${(0, zip_shared_1.addDependenciesWith)(`{ git = "https://github.com/OpenZeppelin/stellar-contracts", tag = "${version_1.contractsVersionTag}" }`, zip_shared_1.allStellarDependencies)}${(0, zip_shared_1.addDependenciesWith)(`{ version = "${version_1.compatibleSorobanVersion}" }`, ['soroban'])}
23
+ `;
24
+ const readme = `\
25
+ # Sample Rust Contract Environment
26
+
27
+ This project demonstrates a basic Rust contract environment use case. It comes with a contract generated by [OpenZeppelin Wizard](https://wizard.openzeppelin.com/) and a test for that contract. Make sure you have the required dependencies and keep building!
28
+
29
+ ## Go further
30
+
31
+ Continue your development journey with [Stellar CLI](https://github.com/stellar/stellar-cli).
32
+
33
+ ## Installing dependencies
34
+
35
+ - See [Rust and Stellar installation guide](https://developers.stellar.org/docs/build/smart-contracts/getting-started/setup).
36
+ - See [Git installation guide](https://github.com/git-guides/install-git).
37
+ `;
38
+ async function zipRust(c, opts) {
39
+ const zip = new jszip_1.default();
40
+ const contractName = (0, zip_shared_1.contractOptionsToContractName)((opts === null || opts === void 0 ? void 0 : opts.kind) || 'contract');
41
+ zip.file(`contracts/${contractName}/src/contract.rs`, (0, print_1.removeCreateLevelAttributes)((0, print_1.printContract)(c)));
42
+ zip.file(`contracts/${contractName}/src/test.rs`, (0, zip_shared_1.printRustNameTest)(c));
43
+ zip.file(`contracts/${contractName}/src/lib.rs`, zip_shared_1.createRustLibFile);
44
+ zip.file(`contracts/${contractName}/Cargo.toml`, (0, zip_shared_1.printContractCargo)(contractName));
45
+ zip.file('Cargo.toml', workspaceCargo);
46
+ zip.file('README.md', readme);
47
+ return zip;
48
+ }
49
+ //# sourceMappingURL=zip-rust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip-rust.js","sourceRoot":"","sources":["../src/zip-rust.ts"],"names":[],"mappings":";;;;;AA2CA,0BAaC;AAxDD,kDAA0B;AAG1B,mCAAqE;AACrE,6CAOsB;AACtB,6CAAgF;AAEhF,MAAM,cAAc,GAAG;;;;;;;;;;;EAWrB,IAAA,gCAAmB,EAAC,uEAAuE,6BAAmB,KAAK,EAAE,mCAAsB,CAAC,GAAG,IAAA,gCAAmB,EAAC,gBAAgB,kCAAwB,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC;CAC/N,CAAC;AAEF,MAAM,MAAM,GAAG;;;;;;;;;;;;;CAad,CAAC;AAEK,KAAK,UAAU,OAAO,CAAC,CAAW,EAAE,IAAoB;IAC7D,MAAM,GAAG,GAAG,IAAI,eAAK,EAAE,CAAC;IAExB,MAAM,YAAY,GAAG,IAAA,0CAA6B,EAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,KAAI,UAAU,CAAC,CAAC;IAE7E,GAAG,CAAC,IAAI,CAAC,aAAa,YAAY,kBAAkB,EAAE,IAAA,mCAA2B,EAAC,IAAA,qBAAa,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrG,GAAG,CAAC,IAAI,CAAC,aAAa,YAAY,cAAc,EAAE,IAAA,8BAAiB,EAAC,CAAC,CAAC,CAAC,CAAC;IACxE,GAAG,CAAC,IAAI,CAAC,aAAa,YAAY,aAAa,EAAE,8BAAiB,CAAC,CAAC;IACpE,GAAG,CAAC,IAAI,CAAC,aAAa,YAAY,aAAa,EAAE,IAAA,+BAAkB,EAAC,YAAY,CAAC,CAAC,CAAC;IACnF,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACvC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAE9B,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,8 +1,5 @@
1
1
  import JSZip from 'jszip';
2
2
  import type { GenericOptions } from './build-generic';
3
3
  import type { Contract } from './contract';
4
- declare function pascalToSnakeCase(string: string): string;
5
- export declare const contractOptionsToScaffoldContractName: typeof pascalToSnakeCase;
6
4
  export declare function zipScaffold(c: Contract, opts: GenericOptions): Promise<JSZip>;
7
- export {};
8
5
  //# sourceMappingURL=zip-scaffold.d.ts.map
@@ -1 +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"}
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;AAiQ3C,wBAAsB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,kBAalE"}
@@ -3,81 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.contractOptionsToScaffoldContractName = void 0;
7
6
  exports.zipScaffold = zipScaffold;
8
7
  const jszip_1 = __importDefault(require("jszip"));
9
8
  const print_1 = require("./print");
10
9
  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;
10
+ const zip_shared_1 = require("./zip-shared");
81
11
  function getAddressArgs(c) {
82
12
  return c.constructorArgs
83
13
  .filter(constructorArg => { var _a; return ((_a = constructorArg.type) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'address'; })
@@ -155,11 +85,11 @@ setup_environment() {
155
85
  mv "$temp" "$file"
156
86
  }
157
87
  `;
158
- const updateWorkspaceCargo = (opts) => `update_cargo() {
88
+ const updateWorkspaceCargo = `update_cargo() {
159
89
  cp Cargo.toml Cargo.toml.bak
160
90
 
161
91
  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'])}
92
+ ${(0, zip_shared_1.addDependenciesWith)(`{ git = "https://github.com/OpenZeppelin/stellar-contracts", tag = "${version_1.contractsVersionTag}" }`, zip_shared_1.allStellarDependencies)}${(0, zip_shared_1.addDependenciesWith)(`{ version = "${version_1.compatibleSorobanVersion}" }`, ['soroban'])}
163
93
  EOF
164
94
 
165
95
  awk '
@@ -226,7 +156,7 @@ init_git(){
226
156
 
227
157
  ${environmentsFileUpdate(c, scaffoldContractName)}
228
158
 
229
- ${updateWorkspaceCargo(opts)}
159
+ ${updateWorkspaceCargo}
230
160
 
231
161
  build_contracts() {
232
162
  cargo build
@@ -284,7 +214,7 @@ This project demonstrates a basic Scaffold use case. It comes with a contract ge
284
214
  ## Installing dependencies
285
215
 
286
216
  - See [Git installation guide](https://github.com/git-guides/install-git).
287
- - See [Rust installation guide](https://www.rust-lang.org/tools/install).
217
+ - See [Rust and Stellar installation guide](https://developers.stellar.org/docs/build/smart-contracts/getting-started/setup).
288
218
  - See [Scaffold CLI installation guide](https://github.com/AhaLabs/scaffold-stellar?tab=readme-ov-file#quick-start).
289
219
  - See [Docker installation guide](https://docs.docker.com/engine/install/).
290
220
  - See [Node installation guide](https://nodejs.org/en/download).
@@ -315,19 +245,13 @@ npm run dev
315
245
  \`\`\`
316
246
  `;
317
247
  };
318
- const createLib = `#![no_std]
319
- #![allow(dead_code)]
320
-
321
- mod contract;
322
- mod test;
323
- `;
324
248
  async function zipScaffold(c, opts) {
325
249
  const zip = new jszip_1.default();
326
- const scaffoldContractName = (0, exports.contractOptionsToScaffoldContractName)((opts === null || opts === void 0 ? void 0 : opts.kind) || 'contract');
250
+ const scaffoldContractName = (0, zip_shared_1.contractOptionsToContractName)((opts === null || opts === void 0 ? void 0 : opts.kind) || 'contract');
327
251
  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));
252
+ zip.file(`contracts/${scaffoldContractName}/src/test.rs`, (0, zip_shared_1.printRustNameTest)(c));
253
+ zip.file(`contracts/${scaffoldContractName}/src/lib.rs`, zip_shared_1.createRustLibFile);
254
+ zip.file(`contracts/${scaffoldContractName}/Cargo.toml`, (0, zip_shared_1.printContractCargo)(scaffoldContractName));
331
255
  zip.file('setup.sh', setupSh(c, opts, scaffoldContractName));
332
256
  zip.file('README-WIZARD.md', readme(c));
333
257
  return zip;
@@ -1 +1 @@
1
- {"version":3,"file":"zip-scaffold.js","sourceRoot":"","sources":["../src/zip-scaffold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zip-scaffold.js","sourceRoot":"","sources":["../src/zip-scaffold.ts"],"names":[],"mappings":";;;;;AAmQA,kCAaC;AAhRD,kDAA0B;AAG1B,mCAAqE;AACrE,6CAAgF;AAChF,6CAOsB;AAEtB,SAAS,cAAc,CAAC,CAAW;IACjC,OAAO,CAAC,CAAC,eAAe;SACrB,MAAM,CAAC,cAAc,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,cAAc,CAAC,IAAI,0CAAE,WAAW,EAAE,MAAK,SAAS,CAAA,EAAA,CAAC;SAC1E,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,CAAW,EAAE,IAAoB,EAAE,oBAA4B,EAAE,EAAE;IAClF,MAAM,sBAAsB,GAAG,CAAC,aAAuB,EAAE,yBAAiC,EAAE,EAAE,CAAC;;;;;;;;;;;;+CAYlD,yBAAyB;;;;;;UAO9D,aAAa,CAAC,eAAe,CAAC,MAAM;QAClC,CAAC,CAAC,mBAAmB;YACnB;;WAEH,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,WAAC,OAAA,KAAK,cAAc,CAAC,IAAI,WAAW,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAA,MAAA,cAAc,CAAC,IAAI,0CAAE,iBAAiB,EAAE,KAAI,UAAU,UAAU,CAAA,EAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;WAE7M;QACC,CAAC,CAAC,IACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CP,CAAC;IAEA,MAAM,oBAAoB,GAAG;;;;EAI7B,IAAA,gCAAmB,EAAC,uEAAuE,6BAAmB,KAAK,EAAE,mCAAsB,CAAC,GAAG,IAAA,gCAAmB,EAAC,gBAAgB,kCAAwB,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4B9N,CAAC;IAED,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCP,sBAAsB,CAAC,CAAC,EAAE,oBAAoB,CAAC;;EAE/C,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CrB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,CAAW,EAAE,EAAE;IAC7B,MAAM,iBAAiB,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAExE,OAAO;;;;;;;;;;;;;;;;;;EAkBP,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oIAAoI,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;CAmBjK,CAAC;AACF,CAAC,CAAC;AAEK,KAAK,UAAU,WAAW,CAAC,CAAW,EAAE,IAAoB;IACjE,MAAM,GAAG,GAAG,IAAI,eAAK,EAAE,CAAC;IAExB,MAAM,oBAAoB,GAAG,IAAA,0CAA6B,EAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,KAAI,UAAU,CAAC,CAAC;IAErF,GAAG,CAAC,IAAI,CAAC,aAAa,oBAAoB,kBAAkB,EAAE,IAAA,mCAA2B,EAAC,IAAA,qBAAa,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7G,GAAG,CAAC,IAAI,CAAC,aAAa,oBAAoB,cAAc,EAAE,IAAA,8BAAiB,EAAC,CAAC,CAAC,CAAC,CAAC;IAChF,GAAG,CAAC,IAAI,CAAC,aAAa,oBAAoB,aAAa,EAAE,8BAAiB,CAAC,CAAC;IAC5E,GAAG,CAAC,IAAI,CAAC,aAAa,oBAAoB,aAAa,EAAE,IAAA,+BAAkB,EAAC,oBAAoB,CAAC,CAAC,CAAC;IACnG,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAExC,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { Contract } from './contract';
2
+ declare function pascalToSnakeCase(string: string): string;
3
+ export declare const contractOptionsToContractName: typeof pascalToSnakeCase;
4
+ export declare function getAddressArgs(c: Pick<Contract, 'constructorArgs'>): string[];
5
+ export declare const printRustNameTest: (c: Pick<Contract, "constructorArgs" | "name">) => string;
6
+ export declare const stellarDependencies: {
7
+ readonly base: readonly ["stellar-default-impl-macro"];
8
+ readonly fungible: readonly ["stellar-fungible"];
9
+ readonly nonFungible: readonly ["stellar-non-fungible"];
10
+ readonly pausable: readonly ["stellar-pausable", "stellar-pausable-macros"];
11
+ readonly upgradable: readonly ["stellar-upgradeable", "stellar-upgradeable-macros"];
12
+ };
13
+ export declare const allStellarDependencies: ("pausable" | "fungible" | "base" | "nonFungible" | "upgradable")[];
14
+ export declare const allDependencies: {
15
+ readonly soroban: readonly ["soroban-sdk"];
16
+ readonly base: readonly ["stellar-default-impl-macro"];
17
+ readonly fungible: readonly ["stellar-fungible"];
18
+ readonly nonFungible: readonly ["stellar-non-fungible"];
19
+ readonly pausable: readonly ["stellar-pausable", "stellar-pausable-macros"];
20
+ readonly upgradable: readonly ["stellar-upgradeable", "stellar-upgradeable-macros"];
21
+ };
22
+ export declare const addDependenciesWith: (dependencyValue: string, dependenciesToAdd: (keyof typeof allDependencies)[]) => string;
23
+ export declare const printContractCargo: (scaffoldContractName: string) => string;
24
+ export declare const createRustLibFile = "#![no_std]\n#![allow(dead_code)]\n\nmod contract;\nmod test;\n";
25
+ export {};
26
+ //# sourceMappingURL=zip-shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip-shared.d.ts","sourceRoot":"","sources":["../src/zip-shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,iBAAS,iBAAiB,CAAC,MAAM,EAAE,MAAM,UAKxC;AAED,eAAO,MAAM,6BAA6B,0BAAoB,CAAC;AAE/D,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,GAAG,MAAM,EAAE,CAI7E;AAED,eAAO,MAAM,iBAAiB,MAAO,IAAI,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAAC,WAqB9E,CAAC;AAKF,eAAO,MAAM,mBAAmB;;;;;;CAMtB,CAAC;AAEX,eAAO,MAAM,sBAAsB,qEAAiC,CAAC;AAErE,eAAO,MAAM,eAAe;;;;;;;CAGlB,CAAC;AAEX,eAAO,MAAM,mBAAmB,oBAAqB,MAAM,qBAAqB,CAAC,MAAM,OAAO,eAAe,CAAC,EAAE,WAGxG,CAAC;AAET,eAAO,MAAM,kBAAkB,yBAA0B,MAAM,WAcuB,CAAC;AAEvF,eAAO,MAAM,iBAAiB,mEAK7B,CAAC"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRustLibFile = exports.printContractCargo = exports.addDependenciesWith = exports.allDependencies = exports.allStellarDependencies = exports.stellarDependencies = exports.printRustNameTest = exports.contractOptionsToContractName = void 0;
4
+ exports.getAddressArgs = getAddressArgs;
5
+ function pascalToSnakeCase(string) {
6
+ return string
7
+ .replace(/([A-Z])/g, '_$1')
8
+ .replace(/^_/, '')
9
+ .toLowerCase();
10
+ }
11
+ exports.contractOptionsToContractName = pascalToSnakeCase;
12
+ function getAddressArgs(c) {
13
+ return (c.constructorArgs || [])
14
+ .filter(constructorArg => { var _a; return ((_a = constructorArg.type) === null || _a === void 0 ? void 0 : _a.trim()) === 'Address'; })
15
+ .map(constructorArg => constructorArg.name);
16
+ }
17
+ const printRustNameTest = (c) => `#![cfg(test)]
18
+
19
+ extern crate std;
20
+
21
+ use soroban_sdk::{ ${getAddressArgs(c).length ? 'testutils::Address as _, Address, ' : ''}Env, String };
22
+
23
+ use crate::contract::{ ${c.name}, ${c.name}Client };
24
+
25
+ #[test]
26
+ fn initial_state() {
27
+ let env = Env::default();
28
+
29
+ let contract_addr = env.register(${c.name}, (${getAddressArgs(c)
30
+ .map(() => 'Address::generate(&env)')
31
+ .join(',')}${getAddressArgs(c).length === 1 ? ',' : ''}));
32
+ let client = ${c.name}Client::new(&env, &contract_addr);
33
+
34
+ assert_eq!(client.name(), String::from_str(&env, "${c.name}"));
35
+ }
36
+
37
+ // Add more tests bellow
38
+ `;
39
+ exports.printRustNameTest = printRustNameTest;
40
+ const getKeysOf = (objectToGetKeysOf) => Object.keys(objectToGetKeysOf);
41
+ exports.stellarDependencies = {
42
+ base: ['stellar-default-impl-macro'],
43
+ fungible: ['stellar-fungible'],
44
+ nonFungible: ['stellar-non-fungible'],
45
+ pausable: ['stellar-pausable', 'stellar-pausable-macros'],
46
+ upgradable: ['stellar-upgradeable', 'stellar-upgradeable-macros'],
47
+ };
48
+ exports.allStellarDependencies = getKeysOf(exports.stellarDependencies);
49
+ exports.allDependencies = {
50
+ ...exports.stellarDependencies,
51
+ soroban: ['soroban-sdk'],
52
+ };
53
+ const addDependenciesWith = (dependencyValue, dependenciesToAdd) => dependenciesToAdd.reduce((addedDependency, dependencyName) => {
54
+ return `${addedDependency}${exports.allDependencies[dependencyName].map(cargoDependencies => `${cargoDependencies} = ${dependencyValue}\n`).join('')}`;
55
+ }, '');
56
+ exports.addDependenciesWith = addDependenciesWith;
57
+ const printContractCargo = (scaffoldContractName) => `[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
+ ${(0, exports.addDependenciesWith)('{ workspace = true }', [...exports.allStellarDependencies, 'soroban'])}
70
+ [dev-dependencies]
71
+ ${(0, exports.addDependenciesWith)('{ workspace = true, features = ["testutils"] }', ['soroban'])}`;
72
+ exports.printContractCargo = printContractCargo;
73
+ exports.createRustLibFile = `#![no_std]
74
+ #![allow(dead_code)]
75
+
76
+ mod contract;
77
+ mod test;
78
+ `;
79
+ //# sourceMappingURL=zip-shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip-shared.js","sourceRoot":"","sources":["../src/zip-shared.ts"],"names":[],"mappings":";;;AAWA,wCAIC;AAbD,SAAS,iBAAiB,CAAC,MAAc;IACvC,OAAO,MAAM;SACV,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;SAC1B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACjB,WAAW,EAAE,CAAC;AACnB,CAAC;AAEY,QAAA,6BAA6B,GAAG,iBAAiB,CAAC;AAE/D,SAAgB,cAAc,CAAC,CAAoC;IACjE,OAAO,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC;SAC7B,MAAM,CAAC,cAAc,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,cAAc,CAAC,IAAI,0CAAE,IAAI,EAAE,MAAK,SAAS,CAAA,EAAA,CAAC;SACnE,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAEM,MAAM,iBAAiB,GAAG,CAAC,CAA6C,EAAE,EAAE,CAAC;;;;qBAI/D,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE;;yBAEhE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;;;;;;uCAMH,CAAC,CAAC,IAAI,MAAM,cAAc,CAAC,CAAC,CAAC;KAC7D,GAAG,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC;KACpC,IAAI,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;mBACzC,CAAC,CAAC,IAAI;;wDAE+B,CAAC,CAAC,IAAI;;;;CAI7D,CAAC;AArBW,QAAA,iBAAiB,qBAqB5B;AAEF,MAAM,SAAS,GAAG,CAA0C,iBAA0B,EAAE,EAAE,CACxF,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAsB,CAAC;AAEzC,QAAA,mBAAmB,GAAG;IACjC,IAAI,EAAE,CAAC,4BAA4B,CAAC;IACpC,QAAQ,EAAE,CAAC,kBAAkB,CAAC;IAC9B,WAAW,EAAE,CAAC,sBAAsB,CAAC;IACrC,QAAQ,EAAE,CAAC,kBAAkB,EAAE,yBAAyB,CAAC;IACzD,UAAU,EAAE,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;CACzD,CAAC;AAEE,QAAA,sBAAsB,GAAG,SAAS,CAAC,2BAAmB,CAAC,CAAC;AAExD,QAAA,eAAe,GAAG;IAC7B,GAAG,2BAAmB;IACtB,OAAO,EAAE,CAAC,aAAa,CAAC;CAChB,CAAC;AAEJ,MAAM,mBAAmB,GAAG,CAAC,eAAuB,EAAE,iBAAmD,EAAE,EAAE,CAClH,iBAAiB,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,cAAc,EAAE,EAAE;IAC3D,OAAO,GAAG,eAAe,GAAG,uBAAe,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,iBAAiB,MAAM,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACjJ,CAAC,EAAE,EAAE,CAAC,CAAC;AAHI,QAAA,mBAAmB,uBAGvB;AAEF,MAAM,kBAAkB,GAAG,CAAC,oBAA4B,EAAE,EAAE,CAAC;UAC1D,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;;;;;;;;;;;EAW9C,IAAA,2BAAmB,EAAC,sBAAsB,EAAE,CAAC,GAAG,8BAAsB,EAAE,SAAS,CAAC,CAAC;;EAEnF,IAAA,2BAAmB,EAAC,gDAAgD,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;AAd1E,QAAA,kBAAkB,sBAcwD;AAE1E,QAAA,iBAAiB,GAAG;;;;;CAKhC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openzeppelin/wizard-stellar",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
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/contract.ts CHANGED
@@ -2,6 +2,8 @@ import { toIdentifier } from './utils/convert-strings';
2
2
 
3
3
  export interface Contract {
4
4
  license: string;
5
+ securityContact: string;
6
+ documentations: string[];
5
7
  name: string;
6
8
  useClauses: UseClause[];
7
9
  constructorCode: string[];
@@ -72,8 +74,11 @@ export interface Argument {
72
74
  export class ContractBuilder implements Contract {
73
75
  readonly name: string;
74
76
  license = 'MIT';
77
+ securityContact = '';
75
78
  ownable = false;
76
79
 
80
+ readonly documentations: string[] = [];
81
+
77
82
  readonly constructorArgs: Argument[] = [];
78
83
  readonly constructorCode: string[] = [];
79
84
 
@@ -250,4 +255,12 @@ export class ContractBuilder implements Contract {
250
255
  addDerives(derive: string): void {
251
256
  this.derivesSet.add(derive);
252
257
  }
258
+
259
+ addDocumentation(description: string) {
260
+ this.documentations.push(description);
261
+ }
262
+
263
+ addSecurityTag(securityContact: string) {
264
+ this.securityContact = securityContact;
265
+ }
253
266
  }
package/src/print.ts CHANGED
@@ -23,6 +23,8 @@ export function printContract(contract: Contract): string {
23
23
  [
24
24
  `// SPDX-License-Identifier: ${contract.license}`,
25
25
  `// Compatible with OpenZeppelin Stellar Soroban Contracts ${compatibleContractsSemver}`,
26
+ ...(contract.documentations.length ? ['', ...printDocumentations(contract.documentations)] : []),
27
+ ...(contract.securityContact ? ['', ...printSecurityTag(contract.securityContact)] : []),
26
28
  ...createLevelAttributes,
27
29
  ],
28
30
  spaceBetween(
@@ -360,3 +362,11 @@ function printArgument(arg: Argument): string {
360
362
  return `${arg.name}`;
361
363
  }
362
364
  }
365
+
366
+ function printDocumentations(documentations: string[]): string[] {
367
+ return documentations.map(documentation => `//! ${documentation}`);
368
+ }
369
+
370
+ function printSecurityTag(securityContact: string) {
371
+ return ['//! # Security', '//!', `//! For security issues, please contact: ${securityContact}`];
372
+ }
package/src/set-info.ts CHANGED
@@ -1,15 +1,22 @@
1
1
  import type { ContractBuilder } from './contract';
2
2
 
3
+ export const TAG_SECURITY_CONTACT = `@custom:security-contact`;
4
+
3
5
  export const infoOptions = [{}, { license: 'WTFPL' }] as const;
4
6
 
5
7
  export const defaults: Info = { license: 'MIT' };
6
8
 
7
9
  export type Info = {
8
10
  license?: string;
11
+ securityContact?: string;
9
12
  };
10
13
 
11
14
  export function setInfo(c: ContractBuilder, info: Info): void {
12
- const { license } = info;
15
+ const { securityContact, license } = info;
16
+
17
+ if (securityContact) {
18
+ c.addSecurityTag(securityContact);
19
+ }
13
20
 
14
21
  if (license) {
15
22
  c.license = license;
@@ -0,0 +1,57 @@
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 {
6
+ addDependenciesWith,
7
+ allStellarDependencies,
8
+ contractOptionsToContractName,
9
+ createRustLibFile,
10
+ printContractCargo,
11
+ printRustNameTest,
12
+ } from './zip-shared';
13
+ import { contractsVersionTag, compatibleSorobanVersion } from './utils/version';
14
+
15
+ const workspaceCargo = `[workspace]
16
+ resolver = "2"
17
+ members = ["contracts/*"]
18
+
19
+ [workspace.package]
20
+ authors = []
21
+ edition = "2021"
22
+ license = "Apache-2.0"
23
+ version = "0.0.1"
24
+
25
+ [workspace.dependencies]
26
+ ${addDependenciesWith(`{ git = "https://github.com/OpenZeppelin/stellar-contracts", tag = "${contractsVersionTag}" }`, allStellarDependencies)}${addDependenciesWith(`{ version = "${compatibleSorobanVersion}" }`, ['soroban'])}
27
+ `;
28
+
29
+ const readme = `\
30
+ # Sample Rust Contract Environment
31
+
32
+ This project demonstrates a basic Rust contract environment use case. It comes with a contract generated by [OpenZeppelin Wizard](https://wizard.openzeppelin.com/) and a test for that contract. Make sure you have the required dependencies and keep building!
33
+
34
+ ## Go further
35
+
36
+ Continue your development journey with [Stellar CLI](https://github.com/stellar/stellar-cli).
37
+
38
+ ## Installing dependencies
39
+
40
+ - See [Rust and Stellar installation guide](https://developers.stellar.org/docs/build/smart-contracts/getting-started/setup).
41
+ - See [Git installation guide](https://github.com/git-guides/install-git).
42
+ `;
43
+
44
+ export async function zipRust(c: Contract, opts: GenericOptions) {
45
+ const zip = new JSZip();
46
+
47
+ const contractName = contractOptionsToContractName(opts?.kind || 'contract');
48
+
49
+ zip.file(`contracts/${contractName}/src/contract.rs`, removeCreateLevelAttributes(printContract(c)));
50
+ zip.file(`contracts/${contractName}/src/test.rs`, printRustNameTest(c));
51
+ zip.file(`contracts/${contractName}/src/lib.rs`, createRustLibFile);
52
+ zip.file(`contracts/${contractName}/Cargo.toml`, printContractCargo(contractName));
53
+ zip.file('Cargo.toml', workspaceCargo);
54
+ zip.file('README.md', readme);
55
+
56
+ return zip;
57
+ }
@@ -3,82 +3,14 @@ import type { GenericOptions } from './build-generic';
3
3
  import type { Contract } from './contract';
4
4
  import { printContract, removeCreateLevelAttributes } from './print';
5
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;
6
+ import {
7
+ addDependenciesWith,
8
+ allStellarDependencies,
9
+ contractOptionsToContractName,
10
+ createRustLibFile,
11
+ printContractCargo,
12
+ printRustNameTest,
13
+ } from './zip-shared';
82
14
 
83
15
  function getAddressArgs(c: Contract): string[] {
84
16
  return c.constructorArgs
@@ -161,11 +93,11 @@ setup_environment() {
161
93
  }
162
94
  `;
163
95
 
164
- const updateWorkspaceCargo = (opts: GenericOptions) => `update_cargo() {
96
+ const updateWorkspaceCargo = `update_cargo() {
165
97
  cp Cargo.toml Cargo.toml.bak
166
98
 
167
99
  cat <<EOF > deps.tmp
168
- ${addDependenciesWith(`{ git = "https://github.com/OpenZeppelin/stellar-contracts", tag = "${contractsVersionTag}" }`, getDependenciesToAdd(opts))}${addDependenciesWith(`{ version = "${compatibleSorobanVersion}" }`, ['soroban'])}
100
+ ${addDependenciesWith(`{ git = "https://github.com/OpenZeppelin/stellar-contracts", tag = "${contractsVersionTag}" }`, allStellarDependencies)}${addDependenciesWith(`{ version = "${compatibleSorobanVersion}" }`, ['soroban'])}
169
101
  EOF
170
102
 
171
103
  awk '
@@ -233,7 +165,7 @@ init_git(){
233
165
 
234
166
  ${environmentsFileUpdate(c, scaffoldContractName)}
235
167
 
236
- ${updateWorkspaceCargo(opts)}
168
+ ${updateWorkspaceCargo}
237
169
 
238
170
  build_contracts() {
239
171
  cargo build
@@ -293,7 +225,7 @@ This project demonstrates a basic Scaffold use case. It comes with a contract ge
293
225
  ## Installing dependencies
294
226
 
295
227
  - See [Git installation guide](https://github.com/git-guides/install-git).
296
- - See [Rust installation guide](https://www.rust-lang.org/tools/install).
228
+ - See [Rust and Stellar installation guide](https://developers.stellar.org/docs/build/smart-contracts/getting-started/setup).
297
229
  - See [Scaffold CLI installation guide](https://github.com/AhaLabs/scaffold-stellar?tab=readme-ov-file#quick-start).
298
230
  - See [Docker installation guide](https://docs.docker.com/engine/install/).
299
231
  - See [Node installation guide](https://nodejs.org/en/download).
@@ -325,22 +257,15 @@ npm run dev
325
257
  `;
326
258
  };
327
259
 
328
- const createLib = `#![no_std]
329
- #![allow(dead_code)]
330
-
331
- mod contract;
332
- mod test;
333
- `;
334
-
335
260
  export async function zipScaffold(c: Contract, opts: GenericOptions) {
336
261
  const zip = new JSZip();
337
262
 
338
- const scaffoldContractName = contractOptionsToScaffoldContractName(opts?.kind || 'contract');
263
+ const scaffoldContractName = contractOptionsToContractName(opts?.kind || 'contract');
339
264
 
340
265
  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));
266
+ zip.file(`contracts/${scaffoldContractName}/src/test.rs`, printRustNameTest(c));
267
+ zip.file(`contracts/${scaffoldContractName}/src/lib.rs`, createRustLibFile);
268
+ zip.file(`contracts/${scaffoldContractName}/Cargo.toml`, printContractCargo(scaffoldContractName));
344
269
  zip.file('setup.sh', setupSh(c, opts, scaffoldContractName));
345
270
  zip.file('README-WIZARD.md', readme(c));
346
271
 
@@ -0,0 +1,85 @@
1
+ import type { Contract } from './contract';
2
+
3
+ function pascalToSnakeCase(string: string) {
4
+ return string
5
+ .replace(/([A-Z])/g, '_$1')
6
+ .replace(/^_/, '')
7
+ .toLowerCase();
8
+ }
9
+
10
+ export const contractOptionsToContractName = pascalToSnakeCase;
11
+
12
+ export function getAddressArgs(c: Pick<Contract, 'constructorArgs'>): string[] {
13
+ return (c.constructorArgs || [])
14
+ .filter(constructorArg => constructorArg.type?.trim() === 'Address')
15
+ .map(constructorArg => constructorArg.name);
16
+ }
17
+
18
+ export const printRustNameTest = (c: Pick<Contract, 'constructorArgs' | 'name'>) => `#![cfg(test)]
19
+
20
+ extern crate std;
21
+
22
+ use soroban_sdk::{ ${getAddressArgs(c).length ? 'testutils::Address as _, Address, ' : ''}Env, String };
23
+
24
+ use crate::contract::{ ${c.name}, ${c.name}Client };
25
+
26
+ #[test]
27
+ fn initial_state() {
28
+ let env = Env::default();
29
+
30
+ let contract_addr = env.register(${c.name}, (${getAddressArgs(c)
31
+ .map(() => 'Address::generate(&env)')
32
+ .join(',')}${getAddressArgs(c).length === 1 ? ',' : ''}));
33
+ let client = ${c.name}Client::new(&env, &contract_addr);
34
+
35
+ assert_eq!(client.name(), String::from_str(&env, "${c.name}"));
36
+ }
37
+
38
+ // Add more tests bellow
39
+ `;
40
+
41
+ const getKeysOf = <TObject extends Record<string, unknown>>(objectToGetKeysOf: TObject) =>
42
+ Object.keys(objectToGetKeysOf) as (keyof TObject)[];
43
+
44
+ export const stellarDependencies = {
45
+ base: ['stellar-default-impl-macro'],
46
+ fungible: ['stellar-fungible'],
47
+ nonFungible: ['stellar-non-fungible'],
48
+ pausable: ['stellar-pausable', 'stellar-pausable-macros'],
49
+ upgradable: ['stellar-upgradeable', 'stellar-upgradeable-macros'],
50
+ } as const;
51
+
52
+ export const allStellarDependencies = getKeysOf(stellarDependencies);
53
+
54
+ export const allDependencies = {
55
+ ...stellarDependencies,
56
+ soroban: ['soroban-sdk'],
57
+ } as const;
58
+
59
+ export const addDependenciesWith = (dependencyValue: string, dependenciesToAdd: (keyof typeof allDependencies)[]) =>
60
+ dependenciesToAdd.reduce((addedDependency, dependencyName) => {
61
+ return `${addedDependency}${allDependencies[dependencyName].map(cargoDependencies => `${cargoDependencies} = ${dependencyValue}\n`).join('')}`;
62
+ }, '');
63
+
64
+ export const printContractCargo = (scaffoldContractName: string) => `[package]
65
+ name = "${scaffoldContractName.replace(/_/, '-')}-contract"
66
+ edition.workspace = true
67
+ license.workspace = true
68
+ publish = false
69
+ version.workspace = true
70
+
71
+ [lib]
72
+ crate-type = ["cdylib"]
73
+ doctest = false
74
+
75
+ [dependencies]
76
+ ${addDependenciesWith('{ workspace = true }', [...allStellarDependencies, 'soroban'])}
77
+ [dev-dependencies]
78
+ ${addDependenciesWith('{ workspace = true, features = ["testutils"] }', ['soroban'])}`;
79
+
80
+ export const createRustLibFile = `#![no_std]
81
+ #![allow(dead_code)]
82
+
83
+ mod contract;
84
+ mod test;
85
+ `;