@openzeppelin/wizard-stellar 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/add-pausable.js +7 -7
- package/dist/add-pausable.js.map +1 -1
- package/dist/add-upgradeable.d.ts +4 -0
- package/dist/add-upgradeable.d.ts.map +1 -0
- package/dist/add-upgradeable.js +26 -0
- package/dist/add-upgradeable.js.map +1 -0
- package/dist/api.d.ts +3 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +6 -1
- package/dist/api.js.map +1 -1
- package/dist/build-generic.d.ts +4 -0
- package/dist/build-generic.d.ts.map +1 -1
- package/dist/build-generic.js +5 -2
- package/dist/build-generic.js.map +1 -1
- package/dist/contract.d.ts +22 -11
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +58 -12
- package/dist/contract.js.map +1 -1
- package/dist/fungible.d.ts +1 -0
- package/dist/fungible.d.ts.map +1 -1
- package/dist/fungible.js +38 -32
- package/dist/fungible.js.map +1 -1
- package/dist/generate/fungible.d.ts.map +1 -1
- package/dist/generate/fungible.js +1 -0
- package/dist/generate/fungible.js.map +1 -1
- package/dist/generate/non-fungible.d.ts +3 -0
- package/dist/generate/non-fungible.d.ts.map +1 -0
- package/dist/generate/non-fungible.js +24 -0
- package/dist/generate/non-fungible.js.map +1 -0
- package/dist/generate/sources.d.ts.map +1 -1
- package/dist/generate/sources.js +6 -0
- package/dist/generate/sources.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/kind.js +2 -1
- package/dist/kind.js.map +1 -1
- package/dist/non-fungible.d.ts +17 -0
- package/dist/non-fungible.d.ts.map +1 -0
- package/dist/non-fungible.js +356 -0
- package/dist/non-fungible.js.map +1 -0
- package/dist/print.d.ts.map +1 -1
- package/dist/print.js +53 -17
- package/dist/print.js.map +1 -1
- package/dist/set-access-control.d.ts +2 -2
- package/dist/set-access-control.d.ts.map +1 -1
- package/dist/set-access-control.js +2 -7
- package/dist/set-access-control.js.map +1 -1
- package/dist/test.js +3 -0
- package/dist/test.js.map +1 -1
- package/dist/utils/version.d.ts +3 -3
- package/dist/utils/version.js +2 -2
- package/package.json +3 -4
- package/src/add-pausable.ts +7 -7
- package/src/add-upgradeable.ts +30 -0
- package/src/api.ts +8 -0
- package/src/build-generic.ts +9 -2
- package/src/contract.ts +73 -21
- package/src/fungible.ts +38 -30
- package/src/generate/fungible.ts +1 -0
- package/src/generate/non-fungible.ts +24 -0
- package/src/generate/sources.ts +7 -0
- package/src/index.ts +1 -0
- package/src/kind.ts +2 -1
- package/src/non-fungible.ts +410 -0
- package/src/print.ts +77 -28
- package/src/set-access-control.ts +8 -9
- package/src/test.ts +4 -0
- package/src/utils/version.ts +2 -2
package/dist/print.js
CHANGED
|
@@ -16,7 +16,13 @@ function printContract(contract) {
|
|
|
16
16
|
], (0, format_lines_1.spaceBetween)(printUseClauses(contract), printVariables(contract), printContractStruct(contract), printContractErrors(contract), printContractFunctions(contract), printImplementedTraits(contract))));
|
|
17
17
|
}
|
|
18
18
|
function printContractStruct(contract) {
|
|
19
|
-
|
|
19
|
+
const lines = [];
|
|
20
|
+
if (contract.derives.length > 0) {
|
|
21
|
+
lines.push(`#[derive(${contract.derives.sort().join(', ')})]`);
|
|
22
|
+
}
|
|
23
|
+
lines.push('#[contract]');
|
|
24
|
+
lines.push(`pub struct ${contract.name};`);
|
|
25
|
+
return lines;
|
|
20
26
|
}
|
|
21
27
|
function printContractErrors(contract) {
|
|
22
28
|
if (contract.errors.length === 0) {
|
|
@@ -132,7 +138,7 @@ function printImplementedTraits(contract) {
|
|
|
132
138
|
if (a.tags.length !== b.tags.length) {
|
|
133
139
|
return a.tags.length - b.tags.length;
|
|
134
140
|
}
|
|
135
|
-
return a.
|
|
141
|
+
return a.traitName.localeCompare(b.traitName);
|
|
136
142
|
});
|
|
137
143
|
// group by section
|
|
138
144
|
const grouped = sortedTraits.reduce((result, current) => {
|
|
@@ -166,10 +172,24 @@ function printImplementedTraitsSection(section, impls) {
|
|
|
166
172
|
function printImplementedTrait(trait) {
|
|
167
173
|
const implLines = [];
|
|
168
174
|
implLines.push(...trait.tags.map(t => `#[${t}]`));
|
|
169
|
-
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
|
|
175
|
+
const head = `impl ${trait.traitName} for ${trait.structName}`;
|
|
176
|
+
const assocTypeLines = trait.assocType !== undefined && trait.assocType.trim().length > 0 ? [TAB + trait.assocType.trim(), ''] : [];
|
|
177
|
+
const functionLines = trait.functions.map(fn => printFunction(fn));
|
|
178
|
+
const hasBodyContent = assocTypeLines.length > 0 || functionLines.length > 0;
|
|
179
|
+
if (!hasBodyContent) {
|
|
180
|
+
// Empty impl
|
|
181
|
+
implLines.push(`${head} {}`);
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
implLines.push(`${head} {`);
|
|
185
|
+
if (assocTypeLines.length > 0) {
|
|
186
|
+
implLines.push(...assocTypeLines);
|
|
187
|
+
}
|
|
188
|
+
if (functionLines.length > 0) {
|
|
189
|
+
implLines.push((0, format_lines_1.spaceBetween)(...functionLines));
|
|
190
|
+
}
|
|
191
|
+
implLines.push('}');
|
|
192
|
+
}
|
|
173
193
|
return implLines;
|
|
174
194
|
}
|
|
175
195
|
function printFunction(fn) {
|
|
@@ -189,22 +209,34 @@ function printFunction(fn) {
|
|
|
189
209
|
}
|
|
190
210
|
}
|
|
191
211
|
}
|
|
192
|
-
return printFunction2(head, args, fn.tag, fn.returns, undefined, codeLines);
|
|
212
|
+
return printFunction2(fn.pub, head, args, fn.tag, fn.returns, undefined, codeLines);
|
|
193
213
|
}
|
|
194
214
|
function printContractFunctions(contract) {
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
215
|
+
const constructorLines = printConstructor(contract);
|
|
216
|
+
const freeFunctionLines = contract.freeFunctions.map(fn => printFunction(fn));
|
|
217
|
+
if (constructorLines.length === 0 && freeFunctionLines.length === 0) {
|
|
218
|
+
return [];
|
|
219
|
+
}
|
|
220
|
+
const implBlock = ['#[contractimpl]', `impl ${contract.name} {`];
|
|
221
|
+
if (constructorLines.length > 0) {
|
|
222
|
+
implBlock.push(constructorLines);
|
|
223
|
+
}
|
|
224
|
+
if (constructorLines.length > 0 && freeFunctionLines.length > 0) {
|
|
225
|
+
// Add line break between constructor and first free function
|
|
226
|
+
implBlock.push('');
|
|
227
|
+
}
|
|
228
|
+
if (freeFunctionLines.length > 0) {
|
|
229
|
+
implBlock.push((0, format_lines_1.spaceBetween)(...freeFunctionLines));
|
|
230
|
+
}
|
|
231
|
+
implBlock.push('}');
|
|
232
|
+
return implBlock;
|
|
201
233
|
}
|
|
202
234
|
function printConstructor(contract) {
|
|
203
235
|
if (contract.constructorCode.length > 0) {
|
|
204
|
-
const head = '
|
|
236
|
+
const head = 'fn __constructor';
|
|
205
237
|
const args = [(0, common_options_1.getSelfArg)(), ...contract.constructorArgs];
|
|
206
238
|
const body = (0, format_lines_1.spaceBetween)(withSemicolons(contract.constructorCode));
|
|
207
|
-
const constructor = printFunction2(head, args.map(a => printArgument(a)), undefined, undefined, undefined, body);
|
|
239
|
+
const constructor = printFunction2(true, head, args.map(a => printArgument(a)), undefined, undefined, undefined, body);
|
|
208
240
|
return constructor;
|
|
209
241
|
}
|
|
210
242
|
else {
|
|
@@ -213,12 +245,16 @@ function printConstructor(contract) {
|
|
|
213
245
|
}
|
|
214
246
|
// generic for functions and constructors
|
|
215
247
|
// kindedName = 'fn foo'
|
|
216
|
-
function printFunction2(kindedName, args, tag, returns, returnLine, code) {
|
|
248
|
+
function printFunction2(pub, kindedName, args, tag, returns, returnLine, code) {
|
|
217
249
|
const fn = [];
|
|
218
250
|
if (tag !== undefined) {
|
|
219
251
|
fn.push(`#[${tag}]`);
|
|
220
252
|
}
|
|
221
|
-
let accum =
|
|
253
|
+
let accum = '';
|
|
254
|
+
if (pub) {
|
|
255
|
+
accum += 'pub ';
|
|
256
|
+
}
|
|
257
|
+
accum += `${kindedName}(`;
|
|
222
258
|
if (args.length > 0) {
|
|
223
259
|
const formattedArgs = args.join(', ');
|
|
224
260
|
if (formattedArgs.length > 80) {
|
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,4 +1,4 @@
|
|
|
1
|
-
import type { BaseFunction,
|
|
1
|
+
import type { BaseFunction, BaseTraitImplBlock, ContractBuilder } from './contract';
|
|
2
2
|
export declare const accessOptions: readonly [false, "ownable"];
|
|
3
3
|
export declare const DEFAULT_ACCESS_CONTROL = "ownable";
|
|
4
4
|
export type Access = (typeof accessOptions)[number];
|
|
@@ -11,5 +11,5 @@ export declare function setAccessControl(c: ContractBuilder, access: Access): vo
|
|
|
11
11
|
*
|
|
12
12
|
* If `caller` is provided, requires that the caller is the owner. Otherwise, requires that the owner is authorized.
|
|
13
13
|
*/
|
|
14
|
-
export declare function requireAccessControl(c: ContractBuilder, trait:
|
|
14
|
+
export declare function requireAccessControl(c: ContractBuilder, trait: BaseTraitImplBlock | undefined, fn: BaseFunction, access: Access, caller?: string): void;
|
|
15
15
|
//# sourceMappingURL=set-access-control.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-access-control.d.ts","sourceRoot":"","sources":["../src/set-access-control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"set-access-control.d.ts","sourceRoot":"","sources":["../src/set-access-control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEpF,eAAO,MAAM,aAAa,6BAA8B,CAAC;AACzD,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAEhD,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAoBzE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,eAAe,EAClB,KAAK,EAAE,kBAAkB,GAAG,SAAS,EACrC,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CA4BN"}
|
|
@@ -46,15 +46,10 @@ function requireAccessControl(c, trait, fn, access, caller) {
|
|
|
46
46
|
if (caller) {
|
|
47
47
|
c.addUseClause('soroban_sdk', 'panic_with_error');
|
|
48
48
|
c.addError('Unauthorized', 1); // TODO: Ensure there are no conflicts in error codes
|
|
49
|
-
c.addFunctionCodeBefore(
|
|
50
|
-
getOwner,
|
|
51
|
-
'if owner != caller {',
|
|
52
|
-
` panic_with_error!(e, ${c.name}Error::Unauthorized)`,
|
|
53
|
-
'}',
|
|
54
|
-
]);
|
|
49
|
+
c.addFunctionCodeBefore(fn, [getOwner, `if owner != ${caller} {`, ` panic_with_error!(e, ${c.name}Error::Unauthorized)`, '}'], trait);
|
|
55
50
|
}
|
|
56
51
|
else {
|
|
57
|
-
c.addFunctionCodeBefore(
|
|
52
|
+
c.addFunctionCodeBefore(fn, [getOwner, 'owner.require_auth();'], trait);
|
|
58
53
|
}
|
|
59
54
|
break;
|
|
60
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-access-control.js","sourceRoot":"","sources":["../src/set-access-control.ts"],"names":[],"mappings":";;;AAUA,4CAoBC;AAOD,
|
|
1
|
+
{"version":3,"file":"set-access-control.js","sourceRoot":"","sources":["../src/set-access-control.ts"],"names":[],"mappings":";;;AAUA,4CAoBC;AAOD,oDAkCC;AArEY,QAAA,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,CAAU,CAAC;AAC5C,QAAA,sBAAsB,GAAG,SAAS,CAAC;AAIhD;;GAEG;AACH,SAAgB,gBAAgB,CAAC,CAAkB,EAAE,MAAc;IACjE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,KAAK;YACR,MAAM;QACR,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBACf,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;gBAC9C,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;gBACxC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;gBAClF,CAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC7D,CAAC,CAAC,kBAAkB,CAAC,6CAA6C,CAAC,CAAC;YACtE,CAAC;YACD,MAAM;QACR,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAU,MAAM,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAClC,CAAkB,EAClB,KAAqC,EACrC,EAAgB,EAChB,MAAc,EACd,MAAe;IAEf,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,GAAG,8BAAsB,CAAC;IAClC,CAAC;IACD,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAE5B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,wFAAwF,CAAC;YAC1G,IAAI,MAAM,EAAE,CAAC;gBACX,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;gBAClD,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,qDAAqD;gBACpF,CAAC,CAAC,qBAAqB,CACrB,EAAE,EACF,CAAC,QAAQ,EAAE,eAAe,MAAM,IAAI,EAAE,4BAA4B,CAAC,CAAC,IAAI,sBAAsB,EAAE,GAAG,CAAC,EACpG,KAAK,CACN,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,uBAAuB,CAAC,EAAE,KAAK,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM;QACR,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAU,MAAM,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/test.js
CHANGED
|
@@ -12,6 +12,9 @@ const test = ava_1.default;
|
|
|
12
12
|
test.serial('fungible result generated', async (t) => {
|
|
13
13
|
await testGenerate(t, 'Fungible');
|
|
14
14
|
});
|
|
15
|
+
test.serial('non-fungible result generated', async (t) => {
|
|
16
|
+
await testGenerate(t, 'NonFungible');
|
|
17
|
+
});
|
|
15
18
|
async function testGenerate(t, kind) {
|
|
16
19
|
const generatedSourcesPath = path_1.default.join(os_1.default.tmpdir(), 'oz-wizard-stellar');
|
|
17
20
|
await fs_1.promises.rm(generatedSourcesPath, { force: true, recursive: true });
|
package/dist/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;;;;AAAA,2BAAoC;AACpC,4CAAoB;AAEpB,8CAAwB;AACxB,gDAAwB;AAExB,gDAA2D;AAO3D,MAAM,IAAI,GAAG,aAAwB,CAAC;AAEtC,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACjD,MAAM,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,YAAY,CAAC,CAA4B,EAAE,IAAyB;IACjF,MAAM,oBAAoB,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC;IACzE,MAAM,aAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,MAAM,IAAA,+BAAqB,EAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAE9D,CAAC,CAAC,IAAI,EAAE,CAAC;AACX,CAAC"}
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;;;;AAAA,2BAAoC;AACpC,4CAAoB;AAEpB,8CAAwB;AACxB,gDAAwB;AAExB,gDAA2D;AAO3D,MAAM,IAAI,GAAG,aAAwB,CAAC;AAEtC,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACjD,MAAM,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,+BAA+B,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACrD,MAAM,YAAY,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,YAAY,CAAC,CAA4B,EAAE,IAAyB;IACjF,MAAM,oBAAoB,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC;IACzE,MAAM,aAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,MAAM,IAAA,+BAAqB,EAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAE9D,CAAC,CAAC,IAAI,EAAE,CAAC;AACX,CAAC"}
|
package/dist/utils/version.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The actual latest version to use in links.
|
|
3
3
|
*/
|
|
4
|
-
export declare const contractsVersion = "0.
|
|
5
|
-
export declare const contractsVersionTag = "v0.
|
|
4
|
+
export declare const contractsVersion = "0.2.0";
|
|
5
|
+
export declare const contractsVersionTag = "v0.2.0";
|
|
6
6
|
/**
|
|
7
7
|
* Semantic version string representing of the minimum compatible version of Contracts to display in output.
|
|
8
8
|
*/
|
|
9
|
-
export declare const compatibleContractsSemver = "^0.
|
|
9
|
+
export declare const compatibleContractsSemver = "^0.2.0";
|
|
10
10
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/utils/version.js
CHANGED
|
@@ -4,10 +4,10 @@ exports.compatibleContractsSemver = exports.contractsVersionTag = exports.contra
|
|
|
4
4
|
/**
|
|
5
5
|
* The actual latest version to use in links.
|
|
6
6
|
*/
|
|
7
|
-
exports.contractsVersion = '0.
|
|
7
|
+
exports.contractsVersion = '0.2.0';
|
|
8
8
|
exports.contractsVersionTag = `v${exports.contractsVersion}`;
|
|
9
9
|
/**
|
|
10
10
|
* Semantic version string representing of the minimum compatible version of Contracts to display in output.
|
|
11
11
|
*/
|
|
12
|
-
exports.compatibleContractsSemver = '^0.
|
|
12
|
+
exports.compatibleContractsSemver = '^0.2.0';
|
|
13
13
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openzeppelin/wizard-stellar",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
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",
|
|
@@ -18,11 +18,10 @@
|
|
|
18
18
|
"prepublish": "rimraf dist *.tsbuildinfo",
|
|
19
19
|
"test": "ava",
|
|
20
20
|
"test:update-snapshots": "ava --update-snapshots",
|
|
21
|
-
"test:watch": "ava --watch"
|
|
22
|
-
"version": "node ../../../scripts/bump-changelog.js"
|
|
21
|
+
"test:watch": "ava --watch"
|
|
23
22
|
},
|
|
24
23
|
"devDependencies": {
|
|
25
|
-
"@types/node": "^
|
|
24
|
+
"@types/node": "^20.0.0",
|
|
26
25
|
"@types/semver": "^7.5.7",
|
|
27
26
|
"ava": "^6.0.0",
|
|
28
27
|
"rimraf": "^5.0.0",
|
package/src/add-pausable.ts
CHANGED
|
@@ -5,19 +5,19 @@ import { requireAccessControl } from './set-access-control';
|
|
|
5
5
|
import { defineFunctions } from './utils/define-functions';
|
|
6
6
|
|
|
7
7
|
export function addPausable(c: ContractBuilder, access: Access) {
|
|
8
|
-
c.addUseClause('
|
|
9
|
-
c.addUseClause('
|
|
8
|
+
c.addUseClause('stellar_pausable', 'self', { alias: 'pausable' });
|
|
9
|
+
c.addUseClause('stellar_pausable', 'Pausable');
|
|
10
10
|
|
|
11
11
|
const pausableTrait = {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
traitName: 'Pausable',
|
|
13
|
+
structName: c.name,
|
|
14
14
|
tags: ['contractimpl'],
|
|
15
15
|
section: 'Utils',
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
c.
|
|
19
|
-
c.
|
|
20
|
-
c.
|
|
18
|
+
c.addTraitFunction(pausableTrait, functions.paused);
|
|
19
|
+
c.addTraitFunction(pausableTrait, functions.pause);
|
|
20
|
+
c.addTraitFunction(pausableTrait, functions.unpause);
|
|
21
21
|
|
|
22
22
|
requireAccessControl(c, pausableTrait, functions.pause, access, 'caller');
|
|
23
23
|
requireAccessControl(c, pausableTrait, functions.unpause, access, 'caller');
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { getSelfArg } from './common-options';
|
|
2
|
+
import type { Access } from './set-access-control';
|
|
3
|
+
import { requireAccessControl } from './set-access-control';
|
|
4
|
+
import type { ContractBuilder } from './contract';
|
|
5
|
+
import { defineFunctions } from './utils/define-functions';
|
|
6
|
+
|
|
7
|
+
export function addUpgradeable(c: ContractBuilder, access: Access) {
|
|
8
|
+
const functions = defineFunctions({
|
|
9
|
+
_require_auth: {
|
|
10
|
+
args: [getSelfArg(), { name: 'operator', type: '&Address' }],
|
|
11
|
+
code: ['operator.require_auth();'],
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
c.addUseClause('stellar_upgradeable', 'UpgradeableInternal');
|
|
16
|
+
c.addUseClause('stellar_upgradeable_macros', 'Upgradeable');
|
|
17
|
+
|
|
18
|
+
c.addDerives('Upgradeable');
|
|
19
|
+
|
|
20
|
+
const upgradeableTrait = {
|
|
21
|
+
traitName: 'UpgradeableInternal',
|
|
22
|
+
structName: c.name,
|
|
23
|
+
tags: [],
|
|
24
|
+
section: 'Utils',
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
c.addTraitFunction(upgradeableTrait, functions._require_auth);
|
|
28
|
+
|
|
29
|
+
requireAccessControl(c, upgradeableTrait, functions._require_auth, access, '*operator');
|
|
30
|
+
}
|
package/src/api.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { CommonContractOptions } from './common-options';
|
|
2
2
|
import type { FungibleOptions } from './fungible';
|
|
3
|
+
import type { NonFungibleOptions } from './non-fungible';
|
|
3
4
|
import { printFungible, defaults as fungibledefaults } from './fungible';
|
|
5
|
+
import { printNonFungible, defaults as nonFungibledefaults } from './non-fungible';
|
|
4
6
|
|
|
5
7
|
export interface WizardContractAPI<Options extends CommonContractOptions> {
|
|
6
8
|
/**
|
|
@@ -23,8 +25,14 @@ export interface AccessControlAPI<Options extends CommonContractOptions> {
|
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
export type Fungible = WizardContractAPI<FungibleOptions>; // TODO add AccessControlAPI<FungibleOptions> when access control is implemented, if useful
|
|
28
|
+
export type NonFungible = WizardContractAPI<NonFungibleOptions>;
|
|
26
29
|
|
|
27
30
|
export const fungible: Fungible = {
|
|
28
31
|
print: printFungible,
|
|
29
32
|
defaults: fungibledefaults,
|
|
30
33
|
};
|
|
34
|
+
|
|
35
|
+
export const nonFungible: NonFungible = {
|
|
36
|
+
print: printNonFungible,
|
|
37
|
+
defaults: nonFungibledefaults,
|
|
38
|
+
};
|
package/src/build-generic.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { FungibleOptions } from './fungible';
|
|
2
2
|
import { buildFungible } from './fungible';
|
|
3
|
+
import type { NonFungibleOptions } from './non-fungible';
|
|
4
|
+
import { buildNonFungible } from './non-fungible';
|
|
3
5
|
|
|
4
6
|
export interface KindedOptions {
|
|
5
7
|
Fungible: { kind: 'Fungible' } & FungibleOptions;
|
|
8
|
+
NonFungible: { kind: 'NonFungible' } & NonFungibleOptions;
|
|
6
9
|
}
|
|
7
10
|
|
|
8
11
|
export type GenericOptions = KindedOptions[keyof KindedOptions];
|
|
@@ -11,9 +14,13 @@ export function buildGeneric(opts: GenericOptions) {
|
|
|
11
14
|
switch (opts.kind) {
|
|
12
15
|
case 'Fungible':
|
|
13
16
|
return buildFungible(opts);
|
|
17
|
+
|
|
18
|
+
case 'NonFungible':
|
|
19
|
+
return buildNonFungible(opts);
|
|
20
|
+
|
|
14
21
|
default: {
|
|
15
|
-
const _: never = opts
|
|
16
|
-
throw new Error('Unknown
|
|
22
|
+
const _: never = opts;
|
|
23
|
+
throw new Error('Unknown kind');
|
|
17
24
|
}
|
|
18
25
|
}
|
|
19
26
|
}
|
package/src/contract.ts
CHANGED
|
@@ -6,10 +6,12 @@ export interface Contract {
|
|
|
6
6
|
useClauses: UseClause[];
|
|
7
7
|
constructorCode: string[];
|
|
8
8
|
constructorArgs: Argument[];
|
|
9
|
-
implementedTraits:
|
|
9
|
+
implementedTraits: TraitImplBlock[];
|
|
10
|
+
freeFunctions: ContractFunction[];
|
|
10
11
|
variables: Variable[];
|
|
11
12
|
errors: Error[];
|
|
12
13
|
ownable: boolean;
|
|
14
|
+
derives: string[];
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
export interface Error {
|
|
@@ -26,10 +28,11 @@ export interface UseClause {
|
|
|
26
28
|
alias?: string;
|
|
27
29
|
}
|
|
28
30
|
|
|
29
|
-
export interface
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
export interface BaseTraitImplBlock {
|
|
32
|
+
traitName: string;
|
|
33
|
+
structName: string;
|
|
32
34
|
tags: string[];
|
|
35
|
+
assocType?: string;
|
|
33
36
|
section?: string;
|
|
34
37
|
/**
|
|
35
38
|
* Priority for which trait to print first.
|
|
@@ -38,15 +41,15 @@ export interface BaseImplementedTrait {
|
|
|
38
41
|
priority?: number;
|
|
39
42
|
}
|
|
40
43
|
|
|
41
|
-
export interface
|
|
44
|
+
export interface TraitImplBlock extends BaseTraitImplBlock {
|
|
42
45
|
functions: ContractFunction[];
|
|
43
|
-
section?: string;
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
export interface BaseFunction {
|
|
47
49
|
name: string;
|
|
48
50
|
args: Argument[];
|
|
49
51
|
code: string[];
|
|
52
|
+
pub?: boolean;
|
|
50
53
|
returns?: string;
|
|
51
54
|
}
|
|
52
55
|
|
|
@@ -74,19 +77,25 @@ export class ContractBuilder implements Contract {
|
|
|
74
77
|
readonly constructorArgs: Argument[] = [];
|
|
75
78
|
readonly constructorCode: string[] = [];
|
|
76
79
|
|
|
77
|
-
private implementedTraitsMap: Map<string,
|
|
80
|
+
private implementedTraitsMap: Map<string, TraitImplBlock> = new Map();
|
|
81
|
+
private freeFunctionsMap: Map<string, ContractFunction> = new Map();
|
|
78
82
|
private variablesMap: Map<string, Variable> = new Map();
|
|
79
83
|
private useClausesMap: Map<string, UseClause> = new Map();
|
|
80
84
|
private errorsMap: Map<string, Error> = new Map();
|
|
85
|
+
private derivesSet: Set<string> = new Set();
|
|
81
86
|
|
|
82
87
|
constructor(name: string) {
|
|
83
88
|
this.name = toIdentifier(name, true);
|
|
84
89
|
}
|
|
85
90
|
|
|
86
|
-
get implementedTraits():
|
|
91
|
+
get implementedTraits(): TraitImplBlock[] {
|
|
87
92
|
return [...this.implementedTraitsMap.values()];
|
|
88
93
|
}
|
|
89
94
|
|
|
95
|
+
get freeFunctions(): ContractFunction[] {
|
|
96
|
+
return [...this.freeFunctionsMap.values()];
|
|
97
|
+
}
|
|
98
|
+
|
|
90
99
|
get variables(): Variable[] {
|
|
91
100
|
return [...this.variablesMap.values()];
|
|
92
101
|
}
|
|
@@ -99,6 +108,10 @@ export class ContractBuilder implements Contract {
|
|
|
99
108
|
return [...this.errorsMap.values()];
|
|
100
109
|
}
|
|
101
110
|
|
|
111
|
+
get derives(): string[] {
|
|
112
|
+
return [...this.derivesSet];
|
|
113
|
+
}
|
|
114
|
+
|
|
102
115
|
addError(name: string, num: number): boolean {
|
|
103
116
|
if (this.errorsMap.has(name)) {
|
|
104
117
|
return false;
|
|
@@ -129,16 +142,17 @@ export class ContractBuilder implements Contract {
|
|
|
129
142
|
}
|
|
130
143
|
}
|
|
131
144
|
|
|
132
|
-
|
|
133
|
-
const key = baseTrait.
|
|
145
|
+
addTraitImplBlock(baseTrait: BaseTraitImplBlock): TraitImplBlock {
|
|
146
|
+
const key = baseTrait.traitName;
|
|
134
147
|
const existingTrait = this.implementedTraitsMap.get(key);
|
|
135
148
|
if (existingTrait !== undefined) {
|
|
136
149
|
return existingTrait;
|
|
137
150
|
} else {
|
|
138
|
-
const t:
|
|
139
|
-
|
|
140
|
-
|
|
151
|
+
const t: TraitImplBlock = {
|
|
152
|
+
traitName: baseTrait.traitName,
|
|
153
|
+
structName: baseTrait.structName,
|
|
141
154
|
tags: [...baseTrait.tags],
|
|
155
|
+
assocType: baseTrait.assocType,
|
|
142
156
|
functions: [],
|
|
143
157
|
section: baseTrait.section,
|
|
144
158
|
priority: baseTrait.priority,
|
|
@@ -148,8 +162,26 @@ export class ContractBuilder implements Contract {
|
|
|
148
162
|
}
|
|
149
163
|
}
|
|
150
164
|
|
|
151
|
-
|
|
152
|
-
|
|
165
|
+
// used for adding a function to the `impl Contract` block
|
|
166
|
+
addFreeFunction(fn: BaseFunction): ContractFunction {
|
|
167
|
+
const signature = this.getFunctionSignature(fn);
|
|
168
|
+
const existingFn = this.freeFunctionsMap.get(signature);
|
|
169
|
+
if (existingFn !== undefined) {
|
|
170
|
+
return existingFn;
|
|
171
|
+
} else {
|
|
172
|
+
const contractFn: ContractFunction = {
|
|
173
|
+
...fn,
|
|
174
|
+
pub: true,
|
|
175
|
+
codeBefore: [],
|
|
176
|
+
};
|
|
177
|
+
this.freeFunctionsMap.set(signature, contractFn);
|
|
178
|
+
return contractFn;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// used for adding a function to a trait implementation block
|
|
183
|
+
addTraitFunction(baseTrait: BaseTraitImplBlock, fn: BaseFunction): ContractFunction {
|
|
184
|
+
const t = this.addTraitImplBlock(baseTrait);
|
|
153
185
|
|
|
154
186
|
const signature = this.getFunctionSignature(fn);
|
|
155
187
|
|
|
@@ -170,19 +202,35 @@ export class ContractBuilder implements Contract {
|
|
|
170
202
|
return contractFn;
|
|
171
203
|
}
|
|
172
204
|
|
|
205
|
+
overrideAssocType(traitName: string, newAssocType: string): void {
|
|
206
|
+
const trait = this.implementedTraitsMap.get(traitName);
|
|
207
|
+
if (trait) {
|
|
208
|
+
trait.assocType = newAssocType;
|
|
209
|
+
} else {
|
|
210
|
+
throw new Error(`Trait '${traitName}' does not exist and cannot be overridden.`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
173
214
|
private getFunctionSignature(fn: BaseFunction): string {
|
|
174
215
|
return [fn.name, '(', ...fn.args.map(a => a.name), ')'].join('');
|
|
175
216
|
}
|
|
176
217
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
218
|
+
private getOrCreateFunction(fn: BaseFunction, baseTrait?: BaseTraitImplBlock): ContractFunction {
|
|
219
|
+
if (baseTrait === undefined) {
|
|
220
|
+
return this.addFreeFunction(fn);
|
|
221
|
+
} else {
|
|
222
|
+
this.addTraitImplBlock(baseTrait);
|
|
223
|
+
return this.addTraitFunction(baseTrait, fn);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
addFunctionCodeBefore(fn: BaseFunction, codeBefore: string[], baseTrait?: BaseTraitImplBlock): void {
|
|
228
|
+
const existingFn = this.getOrCreateFunction(fn, baseTrait);
|
|
180
229
|
existingFn.codeBefore = [...(existingFn.codeBefore ?? []), ...codeBefore];
|
|
181
230
|
}
|
|
182
231
|
|
|
183
|
-
addFunctionTag(
|
|
184
|
-
this.
|
|
185
|
-
const existingFn = this.addFunction(baseTrait, fn);
|
|
232
|
+
addFunctionTag(fn: BaseFunction, tag: string, baseTrait?: BaseTraitImplBlock): void {
|
|
233
|
+
const existingFn = this.getOrCreateFunction(fn, baseTrait);
|
|
186
234
|
existingFn.tag = tag;
|
|
187
235
|
}
|
|
188
236
|
|
|
@@ -198,4 +246,8 @@ export class ContractBuilder implements Contract {
|
|
|
198
246
|
addConstructorCode(code: string): void {
|
|
199
247
|
this.constructorCode.push(code);
|
|
200
248
|
}
|
|
249
|
+
|
|
250
|
+
addDerives(derive: string): void {
|
|
251
|
+
this.derivesSet.add(derive);
|
|
252
|
+
}
|
|
201
253
|
}
|