@openzeppelin/wizard-stellar 0.4.4 → 0.5.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.
Files changed (64) hide show
  1. package/dist/add-pausable.d.ts +1 -1
  2. package/dist/add-pausable.d.ts.map +1 -1
  3. package/dist/add-pausable.js +8 -8
  4. package/dist/add-pausable.js.map +1 -1
  5. package/dist/add-upgradeable.d.ts +1 -1
  6. package/dist/add-upgradeable.d.ts.map +1 -1
  7. package/dist/add-upgradeable.js +2 -2
  8. package/dist/add-upgradeable.js.map +1 -1
  9. package/dist/common-options.d.ts +1 -0
  10. package/dist/common-options.d.ts.map +1 -1
  11. package/dist/common-options.js +2 -0
  12. package/dist/common-options.js.map +1 -1
  13. package/dist/contract.d.ts +2 -0
  14. package/dist/contract.d.ts.map +1 -1
  15. package/dist/contract.js +7 -0
  16. package/dist/contract.js.map +1 -1
  17. package/dist/fungible.d.ts.map +1 -1
  18. package/dist/fungible.js +38 -23
  19. package/dist/fungible.js.map +1 -1
  20. package/dist/generate/fungible.d.ts.map +1 -1
  21. package/dist/generate/fungible.js +1 -0
  22. package/dist/generate/fungible.js.map +1 -1
  23. package/dist/generate/non-fungible.d.ts.map +1 -1
  24. package/dist/generate/non-fungible.js +1 -0
  25. package/dist/generate/non-fungible.js.map +1 -1
  26. package/dist/generate/stablecoin.d.ts.map +1 -1
  27. package/dist/generate/stablecoin.js +1 -0
  28. package/dist/generate/stablecoin.js.map +1 -1
  29. package/dist/non-fungible.d.ts +1 -1
  30. package/dist/non-fungible.d.ts.map +1 -1
  31. package/dist/non-fungible.js +80 -41
  32. package/dist/non-fungible.js.map +1 -1
  33. package/dist/set-access-control.d.ts +2 -2
  34. package/dist/set-access-control.d.ts.map +1 -1
  35. package/dist/set-access-control.js +113 -10
  36. package/dist/set-access-control.js.map +1 -1
  37. package/dist/stablecoin.d.ts +2 -1
  38. package/dist/stablecoin.d.ts.map +1 -1
  39. package/dist/stablecoin.js +27 -6
  40. package/dist/stablecoin.js.map +1 -1
  41. package/dist/utils/compile-test.d.ts +1 -0
  42. package/dist/utils/compile-test.d.ts.map +1 -1
  43. package/dist/utils/compile-test.js +19 -5
  44. package/dist/utils/compile-test.js.map +1 -1
  45. package/dist/utils/version.d.ts +4 -4
  46. package/dist/utils/version.js +3 -3
  47. package/dist/zip-rust.d.ts.map +1 -1
  48. package/dist/zip-rust.js +4 -0
  49. package/dist/zip-rust.js.map +1 -1
  50. package/package.json +3 -3
  51. package/src/add-pausable.ts +29 -15
  52. package/src/add-upgradeable.ts +13 -6
  53. package/src/common-options.ts +3 -0
  54. package/src/contract.ts +9 -0
  55. package/src/fungible.ts +57 -29
  56. package/src/generate/fungible.ts +1 -0
  57. package/src/generate/non-fungible.ts +1 -0
  58. package/src/generate/stablecoin.ts +1 -0
  59. package/src/non-fungible.ts +121 -45
  60. package/src/set-access-control.ts +113 -9
  61. package/src/stablecoin.ts +39 -9
  62. package/src/utils/compile-test.ts +52 -25
  63. package/src/utils/version.ts +3 -3
  64. package/src/zip-rust.ts +5 -0
@@ -4,17 +4,17 @@ exports.defaults = void 0;
4
4
  exports.printNonFungible = printNonFungible;
5
5
  exports.isAccessControlRequired = isAccessControlRequired;
6
6
  exports.buildNonFungible = buildNonFungible;
7
- const contract_1 = require("./contract");
8
- const set_access_control_1 = require("./set-access-control");
7
+ const wizard_common_1 = require("@openzeppelin/wizard-common");
9
8
  const add_pausable_1 = require("./add-pausable");
10
9
  const add_upgradeable_1 = require("./add-upgradeable");
11
- const define_functions_1 = require("./utils/define-functions");
12
10
  const common_options_1 = require("./common-options");
13
- const set_info_1 = require("./set-info");
11
+ const contract_1 = require("./contract");
14
12
  const error_1 = require("./error");
15
- const common_options_2 = require("./common-options");
16
13
  const print_1 = require("./print");
14
+ const set_access_control_1 = require("./set-access-control");
15
+ const set_info_1 = require("./set-info");
17
16
  const convert_strings_1 = require("./utils/convert-strings");
17
+ const define_functions_1 = require("./utils/define-functions");
18
18
  exports.defaults = {
19
19
  name: 'MyToken',
20
20
  symbol: 'MTK',
@@ -26,8 +26,9 @@ exports.defaults = {
26
26
  upgradeable: false,
27
27
  mintable: false,
28
28
  sequential: false,
29
- access: common_options_2.contractDefaults.access, // TODO: Determine whether Access Control options should be visible in the UI before they are implemented as modules
30
- info: common_options_2.contractDefaults.info,
29
+ access: common_options_1.contractDefaults.access, // TODO: Determine whether Access Control options should be visible in the UI before they are implemented as modules
30
+ info: common_options_1.contractDefaults.info,
31
+ explicitImplementations: common_options_1.contractDefaults.explicitImplementations,
31
32
  };
32
33
  function printNonFungible(opts = exports.defaults) {
33
34
  return (0, print_1.printContract)(buildNonFungible(opts));
@@ -68,30 +69,30 @@ function buildNonFungible(opts) {
68
69
  if (Object.keys(errors).length > 0) {
69
70
  throw new error_1.OptionsError(errors);
70
71
  }
71
- addBase(c, (0, convert_strings_1.toByteArray)(allOpts.name), (0, convert_strings_1.toByteArray)(allOpts.symbol), (0, convert_strings_1.toByteArray)(allOpts.tokenUri), allOpts.pausable);
72
+ addBase(c, (0, convert_strings_1.toByteArray)(allOpts.name), (0, convert_strings_1.toByteArray)(allOpts.symbol), (0, convert_strings_1.toByteArray)(allOpts.tokenUri), allOpts.pausable, allOpts.explicitImplementations);
72
73
  if (allOpts.pausable) {
73
- (0, add_pausable_1.addPausable)(c, allOpts.access);
74
+ (0, add_pausable_1.addPausable)(c, allOpts.access, allOpts.explicitImplementations);
74
75
  }
75
76
  if (allOpts.upgradeable) {
76
- (0, add_upgradeable_1.addUpgradeable)(c, allOpts.access);
77
+ (0, add_upgradeable_1.addUpgradeable)(c, allOpts.access, allOpts.explicitImplementations);
77
78
  }
78
79
  if (allOpts.burnable) {
79
- addBurnable(c, allOpts.pausable);
80
+ addBurnable(c, allOpts.pausable, allOpts.explicitImplementations);
80
81
  }
81
82
  if (allOpts.enumerable) {
82
- addEnumerable(c);
83
+ addEnumerable(c, allOpts.explicitImplementations);
83
84
  }
84
85
  if (allOpts.consecutive) {
85
- addConsecutive(c, allOpts.pausable, allOpts.access);
86
+ addConsecutive(c, allOpts.pausable, allOpts.access, allOpts.explicitImplementations);
86
87
  }
87
88
  if (allOpts.mintable) {
88
- addMintable(c, allOpts.enumerable, allOpts.pausable, allOpts.sequential, allOpts.access);
89
+ addMintable(c, allOpts.enumerable, allOpts.pausable, allOpts.sequential, allOpts.access, allOpts.explicitImplementations);
89
90
  }
90
- (0, set_access_control_1.setAccessControl)(c, allOpts.access);
91
+ (0, set_access_control_1.setAccessControl)(c, allOpts.access, allOpts.explicitImplementations);
91
92
  (0, set_info_1.setInfo)(c, allOpts.info);
92
93
  return c;
93
94
  }
94
- function addBase(c, name, symbol, tokenUri, pausable) {
95
+ function addBase(c, name, symbol, tokenUri, pausable, explicitImplementations) {
95
96
  // Set metadata
96
97
  c.addConstructorCode(`let uri = String::from_str(e, "${tokenUri}");`);
97
98
  c.addConstructorCode(`let name = String::from_str(e, "${name}");`);
@@ -100,18 +101,22 @@ function addBase(c, name, symbol, tokenUri, pausable) {
100
101
  // Set token functions
101
102
  c.addUseClause('stellar_tokens::non_fungible', 'Base');
102
103
  c.addUseClause('stellar_tokens::non_fungible', 'NonFungibleToken');
103
- c.addUseClause('stellar_macros', 'default_impl');
104
+ if (explicitImplementations)
105
+ c.addUseClause('stellar_tokens::non_fungible', 'ContractOverrides');
104
106
  c.addUseClause('soroban_sdk', 'contract');
105
107
  c.addUseClause('soroban_sdk', 'contractimpl');
106
108
  c.addUseClause('soroban_sdk', 'String');
107
109
  c.addUseClause('soroban_sdk', 'Env');
110
+ c.addUseClause('soroban_sdk', 'Address');
108
111
  const nonFungibleTokenTrait = {
109
112
  traitName: 'NonFungibleToken',
110
113
  structName: c.name,
111
- tags: ['default_impl', 'contractimpl'],
114
+ tags: explicitImplementations ? ['contractimpl'] : ['contractimpl(contracttrait)'],
112
115
  assocType: 'type ContractType = Base;',
113
116
  };
114
117
  c.addTraitImplBlock(nonFungibleTokenTrait);
118
+ if (explicitImplementations)
119
+ c.addTraitForEachFunctions(nonFungibleTokenTrait, nonFungibleTokenTraitFunctions);
115
120
  if (pausable) {
116
121
  c.addUseClause('stellar_macros', 'when_not_paused');
117
122
  c.addTraitFunction(nonFungibleTokenTrait, baseFunctions.transfer);
@@ -120,12 +125,12 @@ function addBase(c, name, symbol, tokenUri, pausable) {
120
125
  c.addTraitFunction(nonFungibleTokenTrait, baseFunctions.transfer_from);
121
126
  }
122
127
  }
123
- function addBurnable(c, pausable) {
128
+ function addBurnable(c, pausable, explicitImplementations) {
124
129
  c.addUseClause('stellar_tokens::non_fungible', 'burnable::NonFungibleBurnable');
125
130
  const nonFungibleBurnableTrait = {
126
131
  traitName: 'NonFungibleBurnable',
127
132
  structName: c.name,
128
- tags: ['contractimpl'],
133
+ tags: explicitImplementations ? ['contractimpl'] : ['contractimpl(contracttrait)'],
129
134
  section: 'Extensions',
130
135
  };
131
136
  if (pausable) {
@@ -135,27 +140,29 @@ function addBurnable(c, pausable) {
135
140
  c.addTraitFunction(nonFungibleBurnableTrait, burnableFunctions.burn_from);
136
141
  c.addFunctionTag(burnableFunctions.burn_from, 'when_not_paused', nonFungibleBurnableTrait);
137
142
  }
143
+ else if (explicitImplementations)
144
+ c.addTraitForEachFunctions(nonFungibleBurnableTrait, nonFungibleBurnableFunctions);
138
145
  else {
139
- // prepend '#[default_impl]'
140
- nonFungibleBurnableTrait.tags.unshift('default_impl');
141
146
  c.addTraitImplBlock(nonFungibleBurnableTrait);
142
147
  }
143
148
  }
144
- function addEnumerable(c) {
149
+ function addEnumerable(c, explicitImplementations) {
145
150
  c.addUseClause('stellar_tokens::non_fungible', 'enumerable::{NonFungibleEnumerable, Enumerable}');
146
- c.addUseClause('stellar_macros', 'default_impl');
147
151
  const nonFungibleEnumerableTrait = {
148
152
  traitName: 'NonFungibleEnumerable',
149
153
  structName: c.name,
150
- tags: ['default_impl', 'contractimpl'],
154
+ tags: explicitImplementations ? ['contractimpl'] : ['contractimpl(contracttrait)'],
151
155
  section: 'Extensions',
152
156
  };
153
- c.addTraitImplBlock(nonFungibleEnumerableTrait);
157
+ if (explicitImplementations)
158
+ c.addTraitForEachFunctions(nonFungibleEnumerableTrait, nonFungibleEnumerableTraitFunctions);
159
+ else
160
+ c.addTraitImplBlock(nonFungibleEnumerableTrait);
154
161
  c.overrideAssocType('NonFungibleToken', 'type ContractType = Enumerable;');
155
162
  }
156
- function addConsecutive(c, pausable, access) {
163
+ function addConsecutive(c, pausable, access, explicitImplementations) {
157
164
  c.addUseClause('stellar_tokens::non_fungible', 'consecutive::{NonFungibleConsecutive, Consecutive}');
158
- c.addUseClause('soroban_sdk', 'Address');
165
+ const effectiveAccess = access === false ? set_access_control_1.DEFAULT_ACCESS_CONTROL : access;
159
166
  const nonFungibleConsecutiveTrait = {
160
167
  traitName: 'NonFungibleConsecutive',
161
168
  structName: c.name,
@@ -164,43 +171,46 @@ function addConsecutive(c, pausable, access) {
164
171
  };
165
172
  c.addTraitImplBlock(nonFungibleConsecutiveTrait);
166
173
  c.overrideAssocType('NonFungibleToken', 'type ContractType = Consecutive;');
167
- const mintFn = access === 'ownable' ? consecutiveFunctions.batch_mint : consecutiveFunctions.batch_mint_with_caller;
174
+ const mintFn = effectiveAccess === 'ownable' ? consecutiveFunctions.batch_mint : consecutiveFunctions.batch_mint_with_caller;
168
175
  c.addFreeFunction(mintFn);
169
176
  if (pausable) {
170
177
  c.addFunctionTag(mintFn, 'when_not_paused');
171
178
  }
172
- (0, set_access_control_1.requireAccessControl)(c, undefined, mintFn, access, {
179
+ (0, set_access_control_1.requireAccessControl)(c, undefined, mintFn, effectiveAccess, {
173
180
  useMacro: true,
174
181
  role: 'minter',
175
182
  caller: 'caller',
176
- });
183
+ }, explicitImplementations);
177
184
  }
178
- function addMintable(c, enumerable, pausable, sequential, access) {
179
- c.addUseClause('soroban_sdk', 'Address');
185
+ function addMintable(c, enumerable, pausable, sequential, access, explicitImplementations) {
180
186
  const accessProps = { useMacro: true, role: 'minter', caller: 'caller' };
187
+ const effectiveAccess = access === false ? set_access_control_1.DEFAULT_ACCESS_CONTROL : access;
181
188
  let mintFn;
182
189
  if (enumerable) {
183
190
  if (sequential) {
184
191
  mintFn =
185
- access === 'ownable' ? enumerableFunctions.sequential_mint : enumerableFunctions.sequential_mint_with_caller;
192
+ effectiveAccess === 'ownable'
193
+ ? enumerableFunctions.sequential_mint
194
+ : enumerableFunctions.sequential_mint_with_caller;
186
195
  }
187
196
  else {
188
197
  mintFn =
189
- access === 'ownable'
198
+ effectiveAccess === 'ownable'
190
199
  ? enumerableFunctions.non_sequential_mint
191
200
  : enumerableFunctions.non_sequential_mint_with_caller;
192
201
  }
193
202
  }
194
203
  else {
195
204
  if (sequential) {
196
- mintFn = access === 'ownable' ? baseFunctions.sequential_mint : baseFunctions.sequential_mint_with_caller;
205
+ mintFn =
206
+ effectiveAccess === 'ownable' ? baseFunctions.sequential_mint : baseFunctions.sequential_mint_with_caller;
197
207
  }
198
208
  else {
199
- mintFn = access === 'ownable' ? baseFunctions.mint : baseFunctions.mint_with_caller;
209
+ mintFn = effectiveAccess === 'ownable' ? baseFunctions.mint : baseFunctions.mint_with_caller;
200
210
  }
201
211
  }
202
212
  c.addFreeFunction(mintFn);
203
- (0, set_access_control_1.requireAccessControl)(c, undefined, mintFn, access, accessProps);
213
+ (0, set_access_control_1.requireAccessControl)(c, undefined, mintFn, effectiveAccess, accessProps, explicitImplementations);
204
214
  if (pausable) {
205
215
  c.addFunctionTag(mintFn, 'when_not_paused');
206
216
  }
@@ -306,6 +316,19 @@ const baseFunctions = (0, define_functions_1.defineFunctions)({
306
316
  code: ['Base::sequential_mint(e, &to);'],
307
317
  },
308
318
  });
319
+ const nonFungibleTokenTraitFunctions = (0, wizard_common_1.pickKeys)(baseFunctions, [
320
+ 'balance',
321
+ 'owner_of',
322
+ 'transfer',
323
+ 'transfer_from',
324
+ 'approve',
325
+ 'approve_for_all',
326
+ 'get_approved',
327
+ 'is_approved_for_all',
328
+ 'name',
329
+ 'symbol',
330
+ 'token_uri',
331
+ ]);
309
332
  const burnableFunctions = (0, define_functions_1.defineFunctions)({
310
333
  burn: {
311
334
  args: [(0, common_options_1.getSelfArg)(), { name: 'from', type: 'Address' }, { name: 'token_id', type: 'u32' }],
@@ -321,11 +344,22 @@ const burnableFunctions = (0, define_functions_1.defineFunctions)({
321
344
  code: ['Self::ContractType::burn_from(e, &spender, &from, token_id)'],
322
345
  },
323
346
  });
347
+ const nonFungibleBurnableFunctions = (0, wizard_common_1.pickKeys)(burnableFunctions, ['burn', 'burn_from']);
324
348
  const enumerableFunctions = (0, define_functions_1.defineFunctions)({
325
349
  total_supply: {
326
350
  args: [(0, common_options_1.getSelfArg)()],
327
351
  returns: 'u32',
328
- code: ['non_fungible::enumerable::Enumerable::total_supply(e)'],
352
+ code: ['Enumerable::total_supply(e)'],
353
+ },
354
+ get_owner_token_id: {
355
+ args: [(0, common_options_1.getSelfArg)(), { name: 'owner', type: 'Address' }, { name: 'index', type: 'u32' }],
356
+ returns: 'u32',
357
+ code: ['Enumerable::get_owner_token_id(e, &owner, index)'],
358
+ },
359
+ get_token_id: {
360
+ args: [(0, common_options_1.getSelfArg)(), { name: 'index', type: 'u32' }],
361
+ returns: 'u32',
362
+ code: ['Enumerable::get_token_id(e, index)'],
329
363
  },
330
364
  non_sequential_mint: {
331
365
  name: 'mint',
@@ -353,12 +387,17 @@ const enumerableFunctions = (0, define_functions_1.defineFunctions)({
353
387
  code: ['Enumerable::sequential_mint(e, &to);'],
354
388
  },
355
389
  });
390
+ const nonFungibleEnumerableTraitFunctions = (0, wizard_common_1.pickKeys)(enumerableFunctions, [
391
+ 'total_supply',
392
+ 'get_owner_token_id',
393
+ 'get_token_id',
394
+ ]);
356
395
  const consecutiveFunctions = (0, define_functions_1.defineFunctions)({
357
396
  batch_mint: {
358
397
  name: 'batch_mint',
359
398
  args: [(0, common_options_1.getSelfArg)(), { name: 'to', type: 'Address' }, { name: 'amount', type: 'u32' }],
360
399
  returns: 'u32',
361
- code: ['Consecutive::batch_mint(e, &to, amount);'],
400
+ code: ['Consecutive::batch_mint(e, &to, amount)'],
362
401
  },
363
402
  batch_mint_with_caller: {
364
403
  name: 'batch_mint',
@@ -369,7 +408,7 @@ const consecutiveFunctions = (0, define_functions_1.defineFunctions)({
369
408
  { name: 'caller', type: 'Address' },
370
409
  ],
371
410
  returns: 'u32',
372
- code: ['Consecutive::batch_mint(e, &to, amount);'],
411
+ code: ['Consecutive::batch_mint(e, &to, amount)'],
373
412
  },
374
413
  });
375
414
  //# sourceMappingURL=non-fungible.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"non-fungible.js","sourceRoot":"","sources":["../src/non-fungible.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"non-fungible.js","sourceRoot":"","sources":["../src/non-fungible.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,9 @@ export type AccessProps = {
10
10
  /**
11
11
  * Sets access control for the contract via constructor args.
12
12
  */
13
- export declare function setAccessControl(c: ContractBuilder, access: Access): void;
13
+ export declare function setAccessControl(c: ContractBuilder, access: Access, explicitImplementations?: boolean): void;
14
14
  /**
15
15
  * Enables access control for the contract and restricts the given function with access control.
16
16
  */
17
- export declare function requireAccessControl(c: ContractBuilder, trait: BaseTraitImplBlock | undefined, fn: BaseFunction, access: Access, accessProps?: AccessProps): void;
17
+ export declare function requireAccessControl(c: ContractBuilder, trait: BaseTraitImplBlock | undefined, fn: BaseFunction, access: Access, accessProps?: AccessProps, explicitImplementations?: boolean): void;
18
18
  //# 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,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEpF,eAAO,MAAM,aAAa,sCAAuC,CAAC;AAClE,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAEhD,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACpD,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CA8CzE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,eAAe,EAClB,KAAK,EAAE,kBAAkB,GAAG,SAAS,EACrC,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,WAAgC,GAC5C,IAAI,CAoDN"}
1
+ {"version":3,"file":"set-access-control.d.ts","sourceRoot":"","sources":["../src/set-access-control.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGpF,eAAO,MAAM,aAAa,sCAAuC,CAAC;AAClE,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAEhD,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACpD,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB,UAAQ,GAAG,IAAI,CAuD1G;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,eAAe,EAClB,KAAK,EAAE,kBAAkB,GAAG,SAAS,EACrC,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,WAAgC,EAC7C,uBAAuB,UAAQ,GAC9B,IAAI,CAqDN"}
@@ -3,12 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_ACCESS_CONTROL = exports.accessOptions = void 0;
4
4
  exports.setAccessControl = setAccessControl;
5
5
  exports.requireAccessControl = requireAccessControl;
6
+ const common_options_1 = require("./common-options");
7
+ const define_functions_1 = require("./utils/define-functions");
6
8
  exports.accessOptions = [false, 'ownable', 'roles'];
7
9
  exports.DEFAULT_ACCESS_CONTROL = 'ownable';
8
10
  /**
9
11
  * Sets access control for the contract via constructor args.
10
12
  */
11
- function setAccessControl(c, access) {
13
+ function setAccessControl(c, access, explicitImplementations = false) {
12
14
  switch (access) {
13
15
  case false:
14
16
  break;
@@ -21,10 +23,15 @@ function setAccessControl(c, access) {
21
23
  const ownableTrait = {
22
24
  traitName: 'Ownable',
23
25
  structName: c.name,
24
- tags: ['default_impl', 'contractimpl'],
26
+ tags: explicitImplementations ? ['contractimpl'] : ['contractimpl(contracttrait)'],
25
27
  section: 'Utils',
26
28
  };
27
- c.addTraitImplBlock(ownableTrait);
29
+ if (explicitImplementations) {
30
+ c.addTraitForEachFunctions(ownableTrait, ownableFunctions);
31
+ }
32
+ else {
33
+ c.addTraitImplBlock(ownableTrait);
34
+ }
28
35
  c.addConstructorArgument({ name: 'owner', type: 'Address' });
29
36
  c.addConstructorCode('ownable::set_owner(e, &owner);');
30
37
  }
@@ -34,13 +41,19 @@ function setAccessControl(c, access) {
34
41
  c.addUseClause('soroban_sdk', 'Address');
35
42
  c.addUseClause('stellar_access::access_control', 'self', { alias: 'access_control' });
36
43
  c.addUseClause('stellar_access::access_control', 'AccessControl');
37
- const accessControltrait = {
44
+ const accessControlTrait = {
38
45
  traitName: 'AccessControl',
39
46
  structName: c.name,
40
- tags: ['default_impl', 'contractimpl'],
47
+ tags: explicitImplementations ? ['contractimpl'] : ['contractimpl(contracttrait)'],
41
48
  section: 'Utils',
42
49
  };
43
- c.addTraitImplBlock(accessControltrait);
50
+ if (explicitImplementations) {
51
+ c.addUseClause('soroban_sdk', 'Symbol');
52
+ c.addTraitForEachFunctions(accessControlTrait, accessControlFunctions);
53
+ }
54
+ else {
55
+ c.addTraitImplBlock(accessControlTrait);
56
+ }
44
57
  c.addConstructorArgument({ name: 'admin', type: 'Address' });
45
58
  c.addConstructorCode('access_control::set_admin(e, &admin);');
46
59
  break;
@@ -54,11 +67,11 @@ function setAccessControl(c, access) {
54
67
  /**
55
68
  * Enables access control for the contract and restricts the given function with access control.
56
69
  */
57
- function requireAccessControl(c, trait, fn, access, accessProps = { useMacro: true }) {
70
+ function requireAccessControl(c, trait, fn, access, accessProps = { useMacro: true }, explicitImplementations = false) {
58
71
  if (access === false) {
59
72
  access = exports.DEFAULT_ACCESS_CONTROL;
60
73
  }
61
- setAccessControl(c, access);
74
+ setAccessControl(c, access, explicitImplementations);
62
75
  switch (access) {
63
76
  case 'ownable': {
64
77
  c.addUseClause('stellar_macros', 'only_owner');
@@ -74,14 +87,15 @@ function requireAccessControl(c, trait, fn, access, accessProps = { useMacro: tr
74
87
  const { useMacro, caller, role } = accessProps;
75
88
  if (caller && role) {
76
89
  c.addUseClause('soroban_sdk', 'Symbol');
90
+ c.addUseClause('soroban_sdk', 'Vec');
77
91
  c.addConstructorArgument({ name: role, type: 'Address' });
78
- c.addConstructorCode(`access_control::grant_role_no_auth(e, &admin, &${role}, &Symbol::new(e, "${role}"));`);
92
+ c.addConstructorCode(`access_control::grant_role_no_auth(e, &${role}, &Symbol::new(e, "${role}"), &admin);`);
79
93
  if (useMacro) {
80
94
  c.addUseClause('stellar_macros', 'only_role');
81
95
  c.addFunctionTag(fn, `only_role(${caller}, "${role}")`, trait);
82
96
  }
83
97
  else {
84
- c.addFunctionCodeBefore(fn, [`access_control::ensure_role(e, ${caller}, &Symbol::new(e, "${role}"));`], trait);
98
+ c.addFunctionCodeBefore(fn, [`access_control::ensure_role(e, &Symbol::new(e, "${role}"), ${caller});`], trait);
85
99
  }
86
100
  }
87
101
  else {
@@ -101,4 +115,93 @@ function requireAccessControl(c, trait, fn, access, accessProps = { useMacro: tr
101
115
  }
102
116
  }
103
117
  }
118
+ const ownableFunctions = (0, define_functions_1.defineFunctions)({
119
+ get_owner: {
120
+ args: [(0, common_options_1.getSelfArg)()],
121
+ returns: 'Option<Address>',
122
+ code: ['ownable::get_owner(e)'],
123
+ },
124
+ transfer_ownership: {
125
+ args: [(0, common_options_1.getSelfArg)(), { name: 'new_owner', type: 'Address' }, { name: 'live_until_ledger', type: 'u32' }],
126
+ code: ['ownable::transfer_ownership(e, &new_owner, live_until_ledger);'],
127
+ },
128
+ accept_ownership: {
129
+ args: [(0, common_options_1.getSelfArg)()],
130
+ code: ['ownable::accept_ownership(e);'],
131
+ },
132
+ renounce_ownership: {
133
+ args: [(0, common_options_1.getSelfArg)()],
134
+ code: ['ownable::renounce_ownership(e);'],
135
+ },
136
+ });
137
+ const accessControlFunctions = (0, define_functions_1.defineFunctions)({
138
+ has_role: {
139
+ args: [(0, common_options_1.getSelfArg)(), { name: 'account', type: 'Address' }, { name: 'role', type: 'Symbol' }],
140
+ returns: 'Option<u32>',
141
+ code: ['access_control::has_role(e, &account, &role)'],
142
+ },
143
+ get_existing_roles: {
144
+ args: [(0, common_options_1.getSelfArg)()],
145
+ returns: 'Vec<Symbol>',
146
+ code: ['access_control::get_existing_roles(e)'],
147
+ },
148
+ get_role_member_count: {
149
+ args: [(0, common_options_1.getSelfArg)(), { name: 'role', type: 'Symbol' }],
150
+ returns: 'u32',
151
+ code: ['access_control::get_role_member_count(e, &role)'],
152
+ },
153
+ get_role_member: {
154
+ args: [(0, common_options_1.getSelfArg)(), { name: 'role', type: 'Symbol' }, { name: 'index', type: 'u32' }],
155
+ returns: 'Address',
156
+ code: ['access_control::get_role_member(e, &role, index)'],
157
+ },
158
+ get_role_admin: {
159
+ args: [(0, common_options_1.getSelfArg)(), { name: 'role', type: 'Symbol' }],
160
+ returns: 'Option<Symbol>',
161
+ code: ['access_control::get_role_admin(e, &role)'],
162
+ },
163
+ get_admin: {
164
+ args: [(0, common_options_1.getSelfArg)()],
165
+ returns: 'Option<Address>',
166
+ code: ['access_control::get_admin(e)'],
167
+ },
168
+ grant_role: {
169
+ args: [
170
+ (0, common_options_1.getSelfArg)(),
171
+ { name: 'account', type: 'Address' },
172
+ { name: 'role', type: 'Symbol' },
173
+ { name: 'caller', type: 'Address' },
174
+ ],
175
+ code: ['access_control::grant_role(e, &account, &role, &caller);'],
176
+ },
177
+ revoke_role: {
178
+ args: [
179
+ (0, common_options_1.getSelfArg)(),
180
+ { name: 'account', type: 'Address' },
181
+ { name: 'role', type: 'Symbol' },
182
+ { name: 'caller', type: 'Address' },
183
+ ],
184
+ code: ['access_control::revoke_role(e, &account, &role, &caller);'],
185
+ },
186
+ renounce_role: {
187
+ args: [(0, common_options_1.getSelfArg)(), { name: 'role', type: 'Symbol' }, { name: 'caller', type: 'Address' }],
188
+ code: ['access_control::renounce_role(e, &role, &caller);'],
189
+ },
190
+ transfer_admin_role: {
191
+ args: [(0, common_options_1.getSelfArg)(), { name: 'new_admin', type: 'Address' }, { name: 'live_until_ledger', type: 'u32' }],
192
+ code: ['access_control::transfer_admin_role(e, &new_admin, live_until_ledger);'],
193
+ },
194
+ accept_admin_transfer: {
195
+ args: [(0, common_options_1.getSelfArg)()],
196
+ code: ['access_control::accept_admin_transfer(e);'],
197
+ },
198
+ set_role_admin: {
199
+ args: [(0, common_options_1.getSelfArg)(), { name: 'role', type: 'Symbol' }, { name: 'admin_role', type: 'Symbol' }],
200
+ code: ['access_control::set_role_admin(e, &role, &admin_role);'],
201
+ },
202
+ renounce_admin: {
203
+ args: [(0, common_options_1.getSelfArg)()],
204
+ code: ['access_control::renounce_admin(e);'],
205
+ },
206
+ });
104
207
  //# sourceMappingURL=set-access-control.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-access-control.js","sourceRoot":"","sources":["../src/set-access-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"set-access-control.js","sourceRoot":"","sources":["../src/set-access-control.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,10 @@ import type { Contract } from './contract';
2
2
  import type { FungibleOptions } from './fungible';
3
3
  export declare const defaults: Required<StablecoinOptions>;
4
4
  export declare const limitationsOptions: readonly [false, "allowlist", "blocklist"];
5
+ export type Limitations = (typeof limitationsOptions)[number];
5
6
  export declare function printStablecoin(opts?: StablecoinOptions): string;
6
7
  export interface StablecoinOptions extends FungibleOptions {
7
- limitations?: false | 'allowlist' | 'blocklist';
8
+ limitations?: Limitations;
8
9
  }
9
10
  export declare function isAccessControlRequired(opts: Partial<StablecoinOptions>): boolean;
10
11
  export declare function buildStablecoin(opts: StablecoinOptions): Contract;
@@ -1 +1 @@
1
- {"version":3,"file":"stablecoin.d.ts","sourceRoot":"","sources":["../src/stablecoin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AAI5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAUlD,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAKvC,CAAC;AAEX,eAAO,MAAM,kBAAkB,4CAA6C,CAAC;AAE7E,wBAAgB,eAAe,CAAC,IAAI,GAAE,iBAA4B,GAAG,MAAM,CAE1E;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,WAAW,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,CAAC;CACjD;AAWD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAEjF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,QAAQ,CAUjE"}
1
+ {"version":3,"file":"stablecoin.d.ts","sourceRoot":"","sources":["../src/stablecoin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAYlD,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAKvC,CAAC;AAEX,eAAO,MAAM,kBAAkB,4CAA6C,CAAC;AAC7E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,wBAAgB,eAAe,CAAC,IAAI,GAAE,iBAA4B,GAAG,MAAM,CAE1E;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAWD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAEjF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,QAAQ,CAUjE"}