@openzeppelin/wizard-stellar 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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 +54 -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 +78 -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
|
@@ -12,10 +12,17 @@ function printContract(contract) {
|
|
|
12
12
|
return (0, format_lines_1.formatLines)(...(0, format_lines_1.spaceBetween)([
|
|
13
13
|
`// SPDX-License-Identifier: ${contract.license}`,
|
|
14
14
|
`// Compatible with OpenZeppelin Stellar Soroban Contracts ${version_1.compatibleContractsSemver}`,
|
|
15
|
+
`#![no_std]`,
|
|
15
16
|
], (0, format_lines_1.spaceBetween)(printUseClauses(contract), printVariables(contract), printContractStruct(contract), printContractErrors(contract), printContractFunctions(contract), printImplementedTraits(contract))));
|
|
16
17
|
}
|
|
17
18
|
function printContractStruct(contract) {
|
|
18
|
-
|
|
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;
|
|
19
26
|
}
|
|
20
27
|
function printContractErrors(contract) {
|
|
21
28
|
if (contract.errors.length === 0) {
|
|
@@ -131,7 +138,7 @@ function printImplementedTraits(contract) {
|
|
|
131
138
|
if (a.tags.length !== b.tags.length) {
|
|
132
139
|
return a.tags.length - b.tags.length;
|
|
133
140
|
}
|
|
134
|
-
return a.
|
|
141
|
+
return a.traitName.localeCompare(b.traitName);
|
|
135
142
|
});
|
|
136
143
|
// group by section
|
|
137
144
|
const grouped = sortedTraits.reduce((result, current) => {
|
|
@@ -165,10 +172,24 @@ function printImplementedTraitsSection(section, impls) {
|
|
|
165
172
|
function printImplementedTrait(trait) {
|
|
166
173
|
const implLines = [];
|
|
167
174
|
implLines.push(...trait.tags.map(t => `#[${t}]`));
|
|
168
|
-
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
|
|
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
|
+
}
|
|
172
193
|
return implLines;
|
|
173
194
|
}
|
|
174
195
|
function printFunction(fn) {
|
|
@@ -188,22 +209,34 @@ function printFunction(fn) {
|
|
|
188
209
|
}
|
|
189
210
|
}
|
|
190
211
|
}
|
|
191
|
-
return printFunction2(head, args, fn.tag, fn.returns, undefined, codeLines);
|
|
212
|
+
return printFunction2(fn.pub, head, args, fn.tag, fn.returns, undefined, codeLines);
|
|
192
213
|
}
|
|
193
214
|
function printContractFunctions(contract) {
|
|
194
|
-
const
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
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;
|
|
200
233
|
}
|
|
201
234
|
function printConstructor(contract) {
|
|
202
235
|
if (contract.constructorCode.length > 0) {
|
|
203
|
-
const head = '
|
|
236
|
+
const head = 'fn __constructor';
|
|
204
237
|
const args = [(0, common_options_1.getSelfArg)(), ...contract.constructorArgs];
|
|
205
238
|
const body = (0, format_lines_1.spaceBetween)(withSemicolons(contract.constructorCode));
|
|
206
|
-
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);
|
|
207
240
|
return constructor;
|
|
208
241
|
}
|
|
209
242
|
else {
|
|
@@ -212,12 +245,16 @@ function printConstructor(contract) {
|
|
|
212
245
|
}
|
|
213
246
|
// generic for functions and constructors
|
|
214
247
|
// kindedName = 'fn foo'
|
|
215
|
-
function printFunction2(kindedName, args, tag, returns, returnLine, code) {
|
|
248
|
+
function printFunction2(pub, kindedName, args, tag, returns, returnLine, code) {
|
|
216
249
|
const fn = [];
|
|
217
250
|
if (tag !== undefined) {
|
|
218
251
|
fn.push(`#[${tag}]`);
|
|
219
252
|
}
|
|
220
|
-
let accum =
|
|
253
|
+
let accum = '';
|
|
254
|
+
if (pub) {
|
|
255
|
+
accum += 'pub ';
|
|
256
|
+
}
|
|
257
|
+
accum += `${kindedName}(`;
|
|
221
258
|
if (args.length > 0) {
|
|
222
259
|
const formattedArgs = args.join(', ');
|
|
223
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":";;AAYA,sCAiBC;AA1BD,uDAAiE;AACjE,qDAA8C;AAC9C,6CAA4D;AAE5D,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAC7C,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AACtD,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,MAAM,GAAG,GAAG,MAAM,CAAC;AAEnB,SAAgB,aAAa,CAAC,QAAkB;IAC9C,OAAO,IAAA,0BAAW,EAChB,GAAG,IAAA,2BAAY,EACb;QACE,+BAA+B,QAAQ,CAAC,OAAO,EAAE;QACjD,6DAA6D,mCAAyB,EAAE;KACzF,EACD,IAAA,2BAAY,EACV,eAAe,CAAC,QAAQ,CAAC,EACzB,cAAc,CAAC,QAAQ,CAAC,EACxB,mBAAmB,CAAC,QAAQ,CAAC,EAC7B,mBAAmB,CAAC,QAAQ,CAAC,EAC7B,sBAAsB,CAAC,QAAQ,CAAC,EAChC,sBAAsB,CAAC,QAAQ,CAAC,CACjC,CACF,CACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAkB;IAC7C,OAAO,CAAC,aAAa,EAAE,cAAc,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAkB;IAC7C,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;QACL,kBAAkB;QAClB,+DAA+D;QAC/D,cAAc;QACd,YAAY,QAAQ,CAAC,IAAI,SAAS;QAClC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;QACjD,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAe;IACrC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,cAAc,CAAC,QAAkB;IACxC,OAAO,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,eAAe,CAAC,QAAkB;IACzC,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE5C,yBAAyB;IACzB,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAgD,EAAE,SAAoB,EAAE,EAAE;QAC3G,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACxB,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,2BAA2B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IACrH,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAkB,EAAE,SAAiB;IACxE,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,IAAI,SAAS,KAAK,wBAAwB,EAAE,CAAC;QAC3C,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC,aAAa,KAAK,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,OAAO,SAAS,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1E,KAAK,CAAC,IAAI,CAAC,OAAO,SAAS,MAAM,KAAK,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,SAAoB;IACzC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;AACtF,CAAC;AAED,4DAA4D;AAC5D,SAAS,sBAAsB,CAAC,IAAY;IAC1C,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,IAAI,cAAc,IAAI,IAAI,CAAC,MAAM,GAAG,0BAA0B,EAAE,CAAC;QAC/D,2BAA2B;QAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,IAAI,IAAI,CAAC,MAAM,GAAG,0BAA0B,EAAE,CAAC;QAC7C,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC;QACxE,MAAM,cAAc,GAAG,qBAAqB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;YACrE,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,qBAAqB,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,QAAkB;IACxC,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACvC,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;YACxC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3C,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC;iBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAClD,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAkB;IAChD,yDAAyD;IACzD,MAAM,YAAY,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;QAC5D,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,MAAA,CAAC,CAAC,QAAQ,mCAAI,QAAQ,CAAC,GAAG,CAAC,MAAA,CAAC,CAAC,QAAQ,mCAAI,QAAQ,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACvC,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CACjC,CAAC,MAAiD,EAAE,OAAyB,EAAE,EAAE;;QAC/E,wBAAwB;QACxB,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,eAAe,CAAC;QACnD,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACrC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,6BAA6B,CAAC,OAAO,EAAE,KAA2B,CAAC,CAAC,CAAC;IAElG,OAAO,IAAA,2BAAY,EAAC,GAAG,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,6BAA6B,CAAC,OAAe,EAAE,KAAyB;IAC/E,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,MAAM,gBAAgB,GAAG,OAAO,KAAK,eAAe,CAAC;IACrD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7B,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAuB;IACpD,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,SAAS,CAAC,IAAI,CAAC,IAAA,2BAAY,EAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACrC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,EAAoB;;IACzC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhD,MAAM,SAAS,GAAG,MAAA,MAAA,EAAE,CAAC,UAAU,0CAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC,IAAI,CAAC;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,sBAAsB,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC;QACpF,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,IAAI,sBAAsB,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtF,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;YACtB,CAAC;iBAAM,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzD,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAkB;IAChD,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClC,SAAS,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;IAC1C,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkB;IAC1C,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,sBAAsB,CAAC;QACpC,MAAM,IAAI,GAAG,CAAC,IAAA,2BAAU,GAAE,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAG,IAAA,2BAAY,EAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QAEpE,MAAM,WAAW,GAAG,cAAc,CAChC,IAAI,EACJ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAC/B,SAAS,EACT,SAAS,EACT,SAAS,EACT,IAAI,CACL,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,yCAAyC;AACzC,wBAAwB;AACxB,SAAS,cAAc,CACrB,UAAkB,EAClB,IAAc,EACd,GAAuB,EACvB,OAA2B,EAC3B,UAA8B,EAC9B,IAAa;IAEb,MAAM,EAAE,GAAG,EAAE,CAAC;IAEd,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,KAAK,GAAG,GAAG,UAAU,GAAG,CAAC;IAE7B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC9B,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACf,KAAK,GAAG,EAAE,CAAC;YACX,oCAAoC;YACpC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,GAAG,aAAa,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,KAAK,IAAI,GAAG,CAAC;IAEb,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,IAAI,IAAI,CAAC;IAChB,CAAC;SAAM,CAAC;QACN,KAAK,IAAI,OAAO,OAAO,IAAI,CAAC;IAC9B,CAAC;IAED,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACf,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,GAAa;IAClC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;AACH,CAAC"}
|
|
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
|
}
|