@openzeppelin/wizard-stellar 0.2.3 → 0.4.1

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 (87) hide show
  1. package/dist/add-pausable.d.ts.map +1 -1
  2. package/dist/add-pausable.js +29 -8
  3. package/dist/add-pausable.js.map +1 -1
  4. package/dist/add-upgradeable.d.ts.map +1 -1
  5. package/dist/add-upgradeable.js +14 -4
  6. package/dist/add-upgradeable.js.map +1 -1
  7. package/dist/api.d.ts +5 -2
  8. package/dist/api.d.ts.map +1 -1
  9. package/dist/api.js +9 -1
  10. package/dist/api.js.map +1 -1
  11. package/dist/build-generic.d.ts +5 -1
  12. package/dist/build-generic.d.ts.map +1 -1
  13. package/dist/build-generic.js +3 -0
  14. package/dist/build-generic.js.map +1 -1
  15. package/dist/contract.d.ts +1 -1
  16. package/dist/contract.d.ts.map +1 -1
  17. package/dist/contract.js +9 -1
  18. package/dist/contract.js.map +1 -1
  19. package/dist/fungible.d.ts +5 -2
  20. package/dist/fungible.d.ts.map +1 -1
  21. package/dist/fungible.js +86 -55
  22. package/dist/fungible.js.map +1 -1
  23. package/dist/generate/sources.d.ts.map +1 -1
  24. package/dist/generate/sources.js +6 -0
  25. package/dist/generate/sources.js.map +1 -1
  26. package/dist/generate/stablecoin.d.ts +3 -0
  27. package/dist/generate/stablecoin.d.ts.map +1 -0
  28. package/dist/generate/stablecoin.js +24 -0
  29. package/dist/generate/stablecoin.js.map +1 -0
  30. package/dist/index.d.ts +2 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +3 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/kind.js +1 -0
  35. package/dist/kind.js.map +1 -1
  36. package/dist/non-fungible.d.ts +1 -0
  37. package/dist/non-fungible.d.ts.map +1 -1
  38. package/dist/non-fungible.js +101 -81
  39. package/dist/non-fungible.js.map +1 -1
  40. package/dist/print.js +5 -5
  41. package/dist/print.js.map +1 -1
  42. package/dist/set-access-control.d.ts +7 -4
  43. package/dist/set-access-control.d.ts.map +1 -1
  44. package/dist/set-access-control.js +57 -15
  45. package/dist/set-access-control.js.map +1 -1
  46. package/dist/stablecoin.d.ts +11 -0
  47. package/dist/stablecoin.d.ts.map +1 -0
  48. package/dist/stablecoin.js +103 -0
  49. package/dist/stablecoin.js.map +1 -0
  50. package/dist/utils/define-functions.d.ts +4 -2
  51. package/dist/utils/define-functions.d.ts.map +1 -1
  52. package/dist/utils/define-functions.js +7 -1
  53. package/dist/utils/define-functions.js.map +1 -1
  54. package/dist/utils/version.d.ts +3 -3
  55. package/dist/utils/version.js +2 -2
  56. package/dist/zip-rust.d.ts +2 -1
  57. package/dist/zip-rust.d.ts.map +1 -1
  58. package/dist/zip-rust.js +8 -5
  59. package/dist/zip-rust.js.map +1 -1
  60. package/dist/zip-scaffold.d.ts +2 -2
  61. package/dist/zip-scaffold.d.ts.map +1 -1
  62. package/dist/zip-scaffold.js +14 -158
  63. package/dist/zip-scaffold.js.map +1 -1
  64. package/dist/zip-shared.d.ts +4 -17
  65. package/dist/zip-shared.d.ts.map +1 -1
  66. package/dist/zip-shared.js +25 -19
  67. package/dist/zip-shared.js.map +1 -1
  68. package/package.json +1 -1
  69. package/src/add-pausable.ts +31 -9
  70. package/src/add-upgradeable.ts +17 -5
  71. package/src/api.ts +27 -4
  72. package/src/build-generic.ts +6 -0
  73. package/src/contract.ts +9 -2
  74. package/src/fungible.ts +90 -61
  75. package/src/generate/sources.ts +7 -0
  76. package/src/generate/stablecoin.ts +23 -0
  77. package/src/index.ts +2 -0
  78. package/src/kind.ts +1 -0
  79. package/src/non-fungible.ts +108 -87
  80. package/src/print.ts +5 -5
  81. package/src/set-access-control.ts +72 -19
  82. package/src/stablecoin.ts +124 -0
  83. package/src/utils/define-functions.ts +11 -4
  84. package/src/utils/version.ts +2 -2
  85. package/src/zip-rust.ts +10 -6
  86. package/src/zip-scaffold.ts +15 -169
  87. package/src/zip-shared.ts +26 -22
@@ -1 +1 @@
1
- {"version":3,"file":"add-pausable.d.ts","sourceRoot":"","sources":["../src/add-pausable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAInD,wBAAgB,WAAW,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,QAiB7D"}
1
+ {"version":3,"file":"add-pausable.d.ts","sourceRoot":"","sources":["../src/add-pausable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,eAAe,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAInD,wBAAgB,WAAW,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,QA6B7D"}
@@ -5,19 +5,30 @@ const common_options_1 = require("./common-options");
5
5
  const set_access_control_1 = require("./set-access-control");
6
6
  const define_functions_1 = require("./utils/define-functions");
7
7
  function addPausable(c, access) {
8
- c.addUseClause('stellar_pausable', 'self', { alias: 'pausable' });
9
- c.addUseClause('stellar_pausable', 'Pausable');
8
+ c.addUseClause('stellar_contract_utils::pausable', 'self', { alias: 'pausable' });
9
+ c.addUseClause('stellar_contract_utils::pausable', 'Pausable');
10
+ c.addUseClause('stellar_macros', 'default_impl');
10
11
  const pausableTrait = {
11
12
  traitName: 'Pausable',
12
13
  structName: c.name,
13
14
  tags: ['contractimpl'],
14
15
  section: 'Utils',
15
16
  };
17
+ const pauseFn = access === 'ownable' ? functions.pause_unused_caller : functions.pause;
18
+ const unpauseFn = access === 'ownable' ? functions.unpause_unused_caller : functions.unpause;
16
19
  c.addTraitFunction(pausableTrait, functions.paused);
17
- c.addTraitFunction(pausableTrait, functions.pause);
18
- c.addTraitFunction(pausableTrait, functions.unpause);
19
- (0, set_access_control_1.requireAccessControl)(c, pausableTrait, functions.pause, access, 'caller');
20
- (0, set_access_control_1.requireAccessControl)(c, pausableTrait, functions.unpause, access, 'caller');
20
+ c.addTraitFunction(pausableTrait, pauseFn);
21
+ c.addTraitFunction(pausableTrait, unpauseFn);
22
+ (0, set_access_control_1.requireAccessControl)(c, pausableTrait, pauseFn, access, {
23
+ useMacro: true,
24
+ role: 'pauser',
25
+ caller: 'caller',
26
+ });
27
+ (0, set_access_control_1.requireAccessControl)(c, pausableTrait, unpauseFn, access, {
28
+ useMacro: true,
29
+ role: 'pauser',
30
+ caller: 'caller',
31
+ });
21
32
  }
22
33
  const functions = (0, define_functions_1.defineFunctions)({
23
34
  paused: {
@@ -27,11 +38,21 @@ const functions = (0, define_functions_1.defineFunctions)({
27
38
  },
28
39
  pause: {
29
40
  args: [(0, common_options_1.getSelfArg)(), { name: 'caller', type: 'Address' }],
30
- code: ['pausable::pause(e, &caller)'],
41
+ code: ['pausable::pause(e)'],
42
+ },
43
+ pause_unused_caller: {
44
+ name: 'pause',
45
+ args: [(0, common_options_1.getSelfArg)(), { name: '_caller', type: 'Address' }],
46
+ code: ['pausable::pause(e)'],
31
47
  },
32
48
  unpause: {
33
49
  args: [(0, common_options_1.getSelfArg)(), { name: 'caller', type: 'Address' }],
34
- code: ['pausable::unpause(e, &caller)'],
50
+ code: ['pausable::unpause(e)'],
51
+ },
52
+ unpause_unused_caller: {
53
+ name: 'unpause',
54
+ args: [(0, common_options_1.getSelfArg)(), { name: '_caller', type: 'Address' }],
55
+ code: ['pausable::unpause(e)'],
35
56
  },
36
57
  });
37
58
  //# sourceMappingURL=add-pausable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-pausable.js","sourceRoot":"","sources":["../src/add-pausable.ts"],"names":[],"mappings":";;AAMA,kCAiBC;AAvBD,qDAA8C;AAG9C,6DAA4D;AAC5D,+DAA2D;AAE3D,SAAgB,WAAW,CAAC,CAAkB,EAAE,MAAc;IAC5D,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IAE/C,MAAM,aAAa,GAAG;QACpB,SAAS,EAAE,UAAU;QACrB,UAAU,EAAE,CAAC,CAAC,IAAI;QAClB,IAAI,EAAE,CAAC,cAAc,CAAC;QACtB,OAAO,EAAE,OAAO;KACjB,CAAC;IAEF,CAAC,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAErD,IAAA,yCAAoB,EAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1E,IAAA,yCAAoB,EAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,SAAS,GAAG,IAAA,kCAAe,EAAC;IAChC,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,CAAC;QACpB,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,CAAC,qBAAqB,CAAC;KAC9B;IACD,KAAK,EAAE;QACL,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACzD,IAAI,EAAE,CAAC,6BAA6B,CAAC;KACtC;IACD,OAAO,EAAE;QACP,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACzD,IAAI,EAAE,CAAC,+BAA+B,CAAC;KACxC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"add-pausable.js","sourceRoot":"","sources":["../src/add-pausable.ts"],"names":[],"mappings":";;AAMA,kCA6BC;AAnCD,qDAA8C;AAG9C,6DAA4D;AAC5D,+DAA2D;AAE3D,SAAgB,WAAW,CAAC,CAAkB,EAAE,MAAc;IAC5D,CAAC,CAAC,YAAY,CAAC,kCAAkC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAClF,CAAC,CAAC,YAAY,CAAC,kCAAkC,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC,CAAC,YAAY,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAEjD,MAAM,aAAa,GAAG;QACpB,SAAS,EAAE,UAAU;QACrB,UAAU,EAAE,CAAC,CAAC,IAAI;QAClB,IAAI,EAAE,CAAC,cAAc,CAAC;QACtB,OAAO,EAAE,OAAO;KACjB,CAAC;IAEF,MAAM,OAAO,GAAiB,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;IACrG,MAAM,SAAS,GAAiB,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;IAE3G,CAAC,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC,CAAC,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC7C,IAAA,yCAAoB,EAAC,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE;QACtD,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;IAEH,IAAA,yCAAoB,EAAC,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE;QACxD,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,SAAS,GAAG,IAAA,kCAAe,EAAC;IAChC,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,CAAC;QACpB,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,CAAC,qBAAqB,CAAC;KAC9B;IACD,KAAK,EAAE;QACL,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACzD,IAAI,EAAE,CAAC,oBAAoB,CAAC;KAC7B;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC1D,IAAI,EAAE,CAAC,oBAAoB,CAAC;KAC7B;IACD,OAAO,EAAE;QACP,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACzD,IAAI,EAAE,CAAC,sBAAsB,CAAC;KAC/B;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC1D,IAAI,EAAE,CAAC,sBAAsB,CAAC;KAC/B;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"add-upgradeable.d.ts","sourceRoot":"","sources":["../src/add-upgradeable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,wBAAgB,cAAc,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,QAuBhE"}
1
+ {"version":3,"file":"add-upgradeable.d.ts","sourceRoot":"","sources":["../src/add-upgradeable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAgB,eAAe,EAAE,MAAM,YAAY,CAAC;AAGhE,wBAAgB,cAAc,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,QAmChE"}
@@ -10,9 +10,14 @@ function addUpgradeable(c, access) {
10
10
  args: [(0, common_options_1.getSelfArg)(), { name: 'operator', type: '&Address' }],
11
11
  code: ['operator.require_auth();'],
12
12
  },
13
+ _require_auth_unused_operator: {
14
+ name: '_require_auth',
15
+ args: [(0, common_options_1.getSelfArg)(), { name: '_operator', type: '&Address' }],
16
+ code: [],
17
+ },
13
18
  });
14
- c.addUseClause('stellar_upgradeable', 'UpgradeableInternal');
15
- c.addUseClause('stellar_upgradeable_macros', 'Upgradeable');
19
+ c.addUseClause('stellar_contract_utils::upgradeable', 'UpgradeableInternal');
20
+ c.addUseClause('stellar_macros', 'Upgradeable');
16
21
  c.addDerives('Upgradeable');
17
22
  const upgradeableTrait = {
18
23
  traitName: 'UpgradeableInternal',
@@ -20,7 +25,12 @@ function addUpgradeable(c, access) {
20
25
  tags: [],
21
26
  section: 'Utils',
22
27
  };
23
- c.addTraitFunction(upgradeableTrait, functions._require_auth);
24
- (0, set_access_control_1.requireAccessControl)(c, upgradeableTrait, functions._require_auth, access, '*operator');
28
+ const upgradeFn = access === 'ownable' ? functions._require_auth_unused_operator : functions._require_auth;
29
+ c.addTraitFunction(upgradeableTrait, upgradeFn);
30
+ (0, set_access_control_1.requireAccessControl)(c, upgradeableTrait, upgradeFn, access, {
31
+ useMacro: false,
32
+ role: 'upgrader',
33
+ caller: 'operator',
34
+ });
25
35
  }
26
36
  //# sourceMappingURL=add-upgradeable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-upgradeable.js","sourceRoot":"","sources":["../src/add-upgradeable.ts"],"names":[],"mappings":";;AAMA,wCAuBC;AA7BD,qDAA8C;AAE9C,6DAA4D;AAE5D,+DAA2D;AAE3D,SAAgB,cAAc,CAAC,CAAkB,EAAE,MAAc;IAC/D,MAAM,SAAS,GAAG,IAAA,kCAAe,EAAC;QAChC,aAAa,EAAE;YACb,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAC5D,IAAI,EAAE,CAAC,0BAA0B,CAAC;SACnC;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,YAAY,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;IAC7D,CAAC,CAAC,YAAY,CAAC,4BAA4B,EAAE,aAAa,CAAC,CAAC;IAE5D,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAE5B,MAAM,gBAAgB,GAAG;QACvB,SAAS,EAAE,qBAAqB;QAChC,UAAU,EAAE,CAAC,CAAC,IAAI;QAClB,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,OAAO;KACjB,CAAC;IAEF,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IAE9D,IAAA,yCAAoB,EAAC,CAAC,EAAE,gBAAgB,EAAE,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"add-upgradeable.js","sourceRoot":"","sources":["../src/add-upgradeable.ts"],"names":[],"mappings":";;AAMA,wCAmCC;AAzCD,qDAA8C;AAE9C,6DAA4D;AAE5D,+DAA2D;AAE3D,SAAgB,cAAc,CAAC,CAAkB,EAAE,MAAc;IAC/D,MAAM,SAAS,GAAG,IAAA,kCAAe,EAAC;QAChC,aAAa,EAAE;YACb,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAC5D,IAAI,EAAE,CAAC,0BAA0B,CAAC;SACnC;QACD,6BAA6B,EAAE;YAC7B,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAC7D,IAAI,EAAE,EAAE;SACT;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,YAAY,CAAC,qCAAqC,EAAE,qBAAqB,CAAC,CAAC;IAC7E,CAAC,CAAC,YAAY,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;IAEhD,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAE5B,MAAM,gBAAgB,GAAG;QACvB,SAAS,EAAE,qBAAqB;QAChC,UAAU,EAAE,CAAC,CAAC,IAAI;QAClB,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,OAAO;KACjB,CAAC;IAEF,MAAM,SAAS,GACb,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC;IAE3F,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAEhD,IAAA,yCAAoB,EAAC,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE;QAC3D,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;AACL,CAAC"}
package/dist/api.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { CommonContractOptions } from './common-options';
2
2
  import type { FungibleOptions } from './fungible';
3
3
  import type { NonFungibleOptions } from './non-fungible';
4
+ import type { StablecoinOptions } from './stablecoin';
4
5
  export interface WizardContractAPI<Options extends CommonContractOptions> {
5
6
  /**
6
7
  * Returns a string representation of a contract generated using the provided options. If opts is not provided, uses `defaults`.
@@ -18,8 +19,10 @@ export interface AccessControlAPI<Options extends CommonContractOptions> {
18
19
  */
19
20
  isAccessControlRequired: (opts: Partial<Options>) => boolean;
20
21
  }
21
- export type Fungible = WizardContractAPI<FungibleOptions>;
22
- export type NonFungible = WizardContractAPI<NonFungibleOptions>;
22
+ export type Fungible = WizardContractAPI<FungibleOptions> & AccessControlAPI<FungibleOptions>;
23
+ export type NonFungible = WizardContractAPI<NonFungibleOptions> & AccessControlAPI<NonFungibleOptions>;
24
+ export type Stablecoin = WizardContractAPI<StablecoinOptions> & AccessControlAPI<StablecoinOptions>;
23
25
  export declare const fungible: Fungible;
24
26
  export declare const nonFungible: NonFungible;
27
+ export declare const stablecoin: Stablecoin;
25
28
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIzD,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,qBAAqB;IACtE;;OAEG;IACH,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,qBAAqB;IACrE;;;OAGG;IACH,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC;CAC9D;AAED,MAAM,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;AAEhE,eAAO,MAAM,QAAQ,EAAE,QAGtB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAGzB,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAiBtD,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,qBAAqB;IACtE;;OAEG;IACH,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAElC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,qBAAqB;IACrE;;;OAGG;IACH,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC;CAC9D;AAED,MAAM,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAC9F,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AACvG,MAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AAEpG,eAAO,MAAM,QAAQ,EAAE,QAItB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAIzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAIxB,CAAC"}
package/dist/api.js CHANGED
@@ -1,14 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nonFungible = exports.fungible = void 0;
3
+ exports.stablecoin = exports.nonFungible = exports.fungible = void 0;
4
+ const stablecoin_1 = require("./stablecoin");
4
5
  const fungible_1 = require("./fungible");
5
6
  const non_fungible_1 = require("./non-fungible");
6
7
  exports.fungible = {
7
8
  print: fungible_1.printFungible,
8
9
  defaults: fungible_1.defaults,
10
+ isAccessControlRequired: fungible_1.isAccessControlRequired,
9
11
  };
10
12
  exports.nonFungible = {
11
13
  print: non_fungible_1.printNonFungible,
12
14
  defaults: non_fungible_1.defaults,
15
+ isAccessControlRequired: non_fungible_1.isAccessControlRequired,
16
+ };
17
+ exports.stablecoin = {
18
+ print: stablecoin_1.printStablecoin,
19
+ defaults: stablecoin_1.defaults,
20
+ isAccessControlRequired: stablecoin_1.isAccessControlRequired,
13
21
  };
14
22
  //# sourceMappingURL=api.js.map
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;AAGA,yCAAyE;AACzE,iDAAmF;AAyBtE,QAAA,QAAQ,GAAa;IAChC,KAAK,EAAE,wBAAa;IACpB,QAAQ,EAAE,mBAAgB;CAC3B,CAAC;AAEW,QAAA,WAAW,GAAgB;IACtC,KAAK,EAAE,+BAAgB;IACvB,QAAQ,EAAE,uBAAmB;CAC9B,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;AAIA,6CAIsB;AACtB,yCAIoB;AACpB,iDAIwB;AA0BX,QAAA,QAAQ,GAAa;IAChC,KAAK,EAAE,wBAAa;IACpB,QAAQ,EAAE,mBAAgB;IAC1B,uBAAuB,EAAE,kCAA+B;CACzD,CAAC;AAEW,QAAA,WAAW,GAAgB;IACtC,KAAK,EAAE,+BAAgB;IACvB,QAAQ,EAAE,uBAAmB;IAC7B,uBAAuB,EAAE,sCAAkC;CAC5D,CAAC;AAEW,QAAA,UAAU,GAAe;IACpC,KAAK,EAAE,4BAAe;IACtB,QAAQ,EAAE,qBAAkB;IAC5B,uBAAuB,EAAE,oCAAiC;CAC3D,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { FungibleOptions } from './fungible';
2
2
  import type { NonFungibleOptions } from './non-fungible';
3
+ import type { StablecoinOptions } from './stablecoin';
3
4
  export interface KindedOptions {
4
5
  Fungible: {
5
6
  kind: 'Fungible';
@@ -7,7 +8,10 @@ export interface KindedOptions {
7
8
  NonFungible: {
8
9
  kind: 'NonFungible';
9
10
  } & NonFungibleOptions;
11
+ Stablecoin: {
12
+ kind: 'Stablecoin';
13
+ } & StablecoinOptions;
10
14
  }
11
15
  export type GenericOptions = KindedOptions[keyof KindedOptions];
12
- export declare function buildGeneric(opts: GenericOptions): import("./contract").Contract;
16
+ export declare function buildGeneric(opts: GenericOptions): import("./contract").Contract | import("./contract").ContractBuilder;
13
17
  //# sourceMappingURL=build-generic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-generic.d.ts","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGzD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG,eAAe,CAAC;IACjD,WAAW,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,GAAG,kBAAkB,CAAC;CAC3D;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,aAAa,CAAC,CAAC;AAEhE,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,iCAahD"}
1
+ {"version":3,"file":"build-generic.d.ts","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG,eAAe,CAAC;IACjD,WAAW,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,GAAG,kBAAkB,CAAC;IAC1D,UAAU,EAAE;QAAE,IAAI,EAAE,YAAY,CAAA;KAAE,GAAG,iBAAiB,CAAC;CACxD;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,aAAa,CAAC,CAAC;AAEhE,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,wEAgBhD"}
@@ -3,12 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildGeneric = buildGeneric;
4
4
  const fungible_1 = require("./fungible");
5
5
  const non_fungible_1 = require("./non-fungible");
6
+ const stablecoin_1 = require("./stablecoin");
6
7
  function buildGeneric(opts) {
7
8
  switch (opts.kind) {
8
9
  case 'Fungible':
9
10
  return (0, fungible_1.buildFungible)(opts);
10
11
  case 'NonFungible':
11
12
  return (0, non_fungible_1.buildNonFungible)(opts);
13
+ case 'Stablecoin':
14
+ return (0, stablecoin_1.buildStablecoin)(opts);
12
15
  default: {
13
16
  const _ = opts;
14
17
  throw new Error('Unknown kind');
@@ -1 +1 @@
1
- {"version":3,"file":"build-generic.js","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":";;AAYA,oCAaC;AAxBD,yCAA2C;AAE3C,iDAAkD;AASlD,SAAgB,YAAY,CAAC,IAAoB;IAC/C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC;QAE7B,KAAK,aAAa;YAChB,OAAO,IAAA,+BAAgB,EAAC,IAAI,CAAC,CAAC;QAEhC,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAU,IAAI,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"build-generic.js","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":";;AAeA,oCAgBC;AA9BD,yCAA2C;AAE3C,iDAAkD;AAElD,6CAA+C;AAU/C,SAAgB,YAAY,CAAC,IAAoB;IAC/C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC;QAE7B,KAAK,aAAa;YAChB,OAAO,IAAA,+BAAgB,EAAC,IAAI,CAAC,CAAC;QAEhC,KAAK,YAAY;YACf,OAAO,IAAA,4BAAe,EAAC,IAAI,CAAC,CAAC;QAE/B,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAU,IAAI,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -52,8 +52,8 @@ export interface BaseFunction {
52
52
  returns?: string;
53
53
  }
54
54
  export interface ContractFunction extends BaseFunction {
55
+ tags: string[];
55
56
  codeBefore?: string[];
56
- tag?: string;
57
57
  }
58
58
  export interface Variable {
59
59
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
package/dist/contract.js CHANGED
@@ -97,6 +97,7 @@ class ContractBuilder {
97
97
  const contractFn = {
98
98
  ...fn,
99
99
  pub: true,
100
+ tags: [],
100
101
  codeBefore: [],
101
102
  };
102
103
  this.freeFunctionsMap.set(signature, contractFn);
@@ -117,6 +118,7 @@ class ContractBuilder {
117
118
  // Otherwise, add the function
118
119
  const contractFn = {
119
120
  ...fn,
121
+ tags: [],
120
122
  codeBefore: [],
121
123
  };
122
124
  t.functions.push(contractFn);
@@ -149,8 +151,9 @@ class ContractBuilder {
149
151
  existingFn.codeBefore = [...((_a = existingFn.codeBefore) !== null && _a !== void 0 ? _a : []), ...codeBefore];
150
152
  }
151
153
  addFunctionTag(fn, tag, baseTrait) {
154
+ var _a;
152
155
  const existingFn = this.getOrCreateFunction(fn, baseTrait);
153
- existingFn.tag = tag;
156
+ existingFn.tags = [...((_a = existingFn.tags) !== null && _a !== void 0 ? _a : []), tag];
154
157
  }
155
158
  addConstructorArgument(arg) {
156
159
  for (const existingArg of this.constructorArgs) {
@@ -161,6 +164,11 @@ class ContractBuilder {
161
164
  this.constructorArgs.push(arg);
162
165
  }
163
166
  addConstructorCode(code) {
167
+ for (const existingCode of this.constructorCode) {
168
+ if (existingCode === code) {
169
+ return;
170
+ }
171
+ }
164
172
  this.constructorCode.push(code);
165
173
  }
166
174
  addDerives(derive) {
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Contract } from './contract';
1
+ import { ContractBuilder } from './contract';
2
2
  import type { CommonContractOptions } from './common-options';
3
3
  export declare const defaults: Required<FungibleOptions>;
4
4
  export declare function printFungible(opts?: FungibleOptions): string;
@@ -11,7 +11,9 @@ export interface FungibleOptions extends CommonContractOptions {
11
11
  premint?: string;
12
12
  mintable?: boolean;
13
13
  }
14
- export declare function buildFungible(opts: FungibleOptions): Contract;
14
+ export declare function withDefaults(opts: FungibleOptions): Required<FungibleOptions>;
15
+ export declare function isAccessControlRequired(opts: Partial<FungibleOptions>): boolean;
16
+ export declare function buildFungible(opts: FungibleOptions): ContractBuilder;
15
17
  export declare const premintPattern: RegExp;
16
18
  /**
17
19
  * Calculates the initial supply that would be used in an Fungible contract based on a given premint amount and number of decimals.
@@ -22,4 +24,5 @@ export declare const premintPattern: RegExp;
22
24
  * @throws OptionsError if `premint` has more than one decimal character or is more precise than allowed by the `decimals` argument.
23
25
  */
24
26
  export declare function getInitialSupply(premint: string, decimals: number): string;
27
+ export declare const functions: Record<"symbol" | "name" | "total_supply" | "balance" | "allowance" | "transfer" | "transfer_from" | "approve" | "decimals" | "burn" | "burn_from" | "mint" | "mint_with_caller", import("./contract").BaseFunction>;
25
28
  //# sourceMappingURL=fungible.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fungible.d.ts","sourceRoot":"","sources":["../src/fungible.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAO3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAQ9D,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAUrC,CAAC;AAEX,wBAAgB,aAAa,CAAC,IAAI,GAAE,eAA0B,GAAG,MAAM,CAEtE;AAED,MAAM,WAAW,eAAgB,SAAQ,qBAAqB;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAcD,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,QAAQ,CA+B7D;AA8DD,eAAO,MAAM,cAAc,QAAkB,CAAC;AAqB9C;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA+B1E"}
1
+ {"version":3,"file":"fungible.d.ts","sourceRoot":"","sources":["../src/fungible.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAM7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAQ9D,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAUrC,CAAC;AAEX,wBAAgB,aAAa,CAAC,IAAI,GAAE,eAA0B,GAAG,MAAM,CAEtE;AAED,MAAM,WAAW,eAAgB,SAAQ,qBAAqB;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC,CAU7E;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAE/E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CA+BpE;AAkGD,eAAO,MAAM,cAAc,QAAkB,CAAC;AAoB9C;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA+B1E;AAED,eAAO,MAAM,SAAS,sNA0FpB,CAAC"}
package/dist/fungible.js CHANGED
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.premintPattern = exports.defaults = void 0;
3
+ exports.functions = exports.premintPattern = exports.defaults = void 0;
4
4
  exports.printFungible = printFungible;
5
+ exports.withDefaults = withDefaults;
6
+ exports.isAccessControlRequired = isAccessControlRequired;
5
7
  exports.buildFungible = buildFungible;
6
8
  exports.getInitialSupply = getInitialSupply;
7
9
  const contract_1 = require("./contract");
@@ -23,7 +25,7 @@ exports.defaults = {
23
25
  upgradeable: false,
24
26
  premint: '0',
25
27
  mintable: false,
26
- access: common_options_2.contractDefaults.access, // TODO: Determine whether Access Control options should be visible in the UI before they are implemented as modules
28
+ access: common_options_2.contractDefaults.access,
27
29
  info: common_options_2.contractDefaults.info,
28
30
  };
29
31
  function printFungible(opts = exports.defaults) {
@@ -41,6 +43,9 @@ function withDefaults(opts) {
41
43
  mintable: (_d = opts.mintable) !== null && _d !== void 0 ? _d : exports.defaults.mintable,
42
44
  };
43
45
  }
46
+ function isAccessControlRequired(opts) {
47
+ return opts.mintable === true || opts.pausable === true || opts.upgradeable === true;
48
+ }
44
49
  function buildFungible(opts) {
45
50
  const c = new contract_1.ContractBuilder(opts.name);
46
51
  const allOpts = withDefaults(opts);
@@ -66,38 +71,64 @@ function buildFungible(opts) {
66
71
  }
67
72
  function addBase(c, name, symbol, pausable) {
68
73
  // Set metadata
69
- c.addConstructorCode(`fungible::metadata::set_metadata(e, 18, String::from_str(e, "${name}"), String::from_str(e, "${symbol}"));`);
74
+ c.addConstructorCode(`Base::set_metadata(e, 18, String::from_str(e, "${name}"), String::from_str(e, "${symbol}"));`);
70
75
  // Set token functions
71
- c.addUseClause('stellar_fungible', 'self', { alias: 'fungible' });
72
- c.addUseClause('stellar_fungible', 'FungibleToken');
76
+ c.addUseClause('stellar_tokens::fungible', 'Base');
77
+ c.addUseClause('stellar_tokens::fungible', 'FungibleToken');
78
+ c.addUseClause('stellar_macros', 'default_impl');
73
79
  c.addUseClause('soroban_sdk', 'contract');
74
80
  c.addUseClause('soroban_sdk', 'contractimpl');
75
- c.addUseClause('soroban_sdk', 'Address');
76
81
  c.addUseClause('soroban_sdk', 'String');
77
82
  c.addUseClause('soroban_sdk', 'Env');
78
- c.addUseClause('soroban_sdk', 'Symbol');
79
83
  const fungibleTokenTrait = {
80
84
  traitName: 'FungibleToken',
81
85
  structName: c.name,
82
- tags: ['contractimpl'],
86
+ tags: ['default_impl', 'contractimpl'],
87
+ assocType: 'type ContractType = Base;',
83
88
  };
84
- c.addTraitFunction(fungibleTokenTrait, functions.total_supply);
85
- c.addTraitFunction(fungibleTokenTrait, functions.balance);
86
- c.addTraitFunction(fungibleTokenTrait, functions.allowance);
87
- c.addTraitFunction(fungibleTokenTrait, functions.transfer);
88
- c.addTraitFunction(fungibleTokenTrait, functions.transfer_from);
89
- c.addTraitFunction(fungibleTokenTrait, functions.approve);
90
- c.addTraitFunction(fungibleTokenTrait, functions.decimals);
91
- c.addTraitFunction(fungibleTokenTrait, functions.name);
92
- c.addTraitFunction(fungibleTokenTrait, functions.symbol);
89
+ c.addTraitImplBlock(fungibleTokenTrait);
93
90
  if (pausable) {
94
- c.addUseClause('stellar_pausable_macros', 'when_not_paused');
95
- c.addFunctionTag(functions.transfer, 'when_not_paused', fungibleTokenTrait);
96
- c.addFunctionTag(functions.transfer_from, 'when_not_paused', fungibleTokenTrait);
91
+ c.addUseClause('soroban_sdk', 'Address');
92
+ c.addUseClause('stellar_macros', 'when_not_paused');
93
+ c.addTraitFunction(fungibleTokenTrait, exports.functions.transfer);
94
+ c.addFunctionTag(exports.functions.transfer, 'when_not_paused', fungibleTokenTrait);
95
+ c.addTraitFunction(fungibleTokenTrait, exports.functions.transfer_from);
96
+ c.addFunctionTag(exports.functions.transfer_from, 'when_not_paused', fungibleTokenTrait);
97
+ }
98
+ }
99
+ function addMintable(c, access, pausable) {
100
+ c.addUseClause('soroban_sdk', 'Address');
101
+ switch (access) {
102
+ case false:
103
+ break;
104
+ case 'ownable': {
105
+ c.addFreeFunction(exports.functions.mint);
106
+ (0, set_access_control_1.requireAccessControl)(c, undefined, exports.functions.mint, access);
107
+ if (pausable) {
108
+ c.addFunctionTag(exports.functions.mint, 'when_not_paused');
109
+ }
110
+ break;
111
+ }
112
+ case 'roles': {
113
+ c.addFreeFunction(exports.functions.mint_with_caller);
114
+ (0, set_access_control_1.requireAccessControl)(c, undefined, exports.functions.mint_with_caller, access, {
115
+ useMacro: true,
116
+ caller: 'caller',
117
+ role: 'minter',
118
+ });
119
+ if (pausable) {
120
+ c.addFunctionTag(exports.functions.mint_with_caller, 'when_not_paused');
121
+ }
122
+ break;
123
+ }
124
+ default: {
125
+ const _ = access;
126
+ throw new Error('Unknown value for `access`');
127
+ }
97
128
  }
98
129
  }
99
130
  function addBurnable(c, pausable) {
100
- c.addUseClause('stellar_fungible', 'burnable::FungibleBurnable');
131
+ c.addUseClause('stellar_tokens::fungible', 'burnable::FungibleBurnable');
101
132
  c.addUseClause('soroban_sdk', 'Address');
102
133
  const fungibleBurnableTrait = {
103
134
  traitName: 'FungibleBurnable',
@@ -105,12 +136,17 @@ function addBurnable(c, pausable) {
105
136
  tags: ['contractimpl'],
106
137
  section: 'Extensions',
107
138
  };
108
- c.addTraitFunction(fungibleBurnableTrait, functions.burn);
109
- c.addTraitFunction(fungibleBurnableTrait, functions.burn_from);
110
139
  if (pausable) {
111
- c.addUseClause('stellar_pausable_macros', 'when_not_paused');
112
- c.addFunctionTag(functions.burn, 'when_not_paused', fungibleBurnableTrait);
113
- c.addFunctionTag(functions.burn_from, 'when_not_paused', fungibleBurnableTrait);
140
+ c.addUseClause('stellar_macros', 'when_not_paused');
141
+ c.addTraitFunction(fungibleBurnableTrait, exports.functions.burn);
142
+ c.addFunctionTag(exports.functions.burn, 'when_not_paused', fungibleBurnableTrait);
143
+ c.addTraitFunction(fungibleBurnableTrait, exports.functions.burn_from);
144
+ c.addFunctionTag(exports.functions.burn_from, 'when_not_paused', fungibleBurnableTrait);
145
+ }
146
+ else {
147
+ // prepend '#[default_impl]'
148
+ fungibleBurnableTrait.tags.unshift('default_impl');
149
+ c.addTraitImplBlock(fungibleBurnableTrait);
114
150
  }
115
151
  }
116
152
  exports.premintPattern = /^(\d*\.?\d*)$/;
@@ -123,10 +159,9 @@ function addPremint(c, amount) {
123
159
  }
124
160
  // TODO: handle signed int?
125
161
  const premintAbsolute = (0, convert_strings_1.toUint)(getInitialSupply(amount, 18), 'premint', 'u128');
126
- c.addUseClause('stellar_fungible', 'mintable::FungibleMintable');
127
162
  c.addUseClause('soroban_sdk', 'Address');
128
163
  c.addConstructorArgument({ name: 'recipient', type: 'Address' });
129
- c.addConstructorCode(`fungible::mintable::mint(e, &recipient, ${premintAbsolute});`);
164
+ c.addConstructorCode(`Base::mint(e, &recipient, ${premintAbsolute});`);
130
165
  }
131
166
  }
132
167
  /**
@@ -173,36 +208,22 @@ function getInitialSupply(premint, decimals) {
173
208
  }
174
209
  return result;
175
210
  }
176
- function addMintable(c, access, pausable) {
177
- c.addUseClause('stellar_fungible', 'mintable::FungibleMintable');
178
- const fungibleMintableTrait = {
179
- traitName: 'FungibleMintable',
180
- structName: c.name,
181
- tags: ['contractimpl'],
182
- section: 'Extensions',
183
- };
184
- c.addTraitFunction(fungibleMintableTrait, functions.mint);
185
- (0, set_access_control_1.requireAccessControl)(c, fungibleMintableTrait, functions.mint, access);
186
- if (pausable) {
187
- c.addFunctionTag(functions.mint, 'when_not_paused', fungibleMintableTrait);
188
- }
189
- }
190
- const functions = (0, define_functions_1.defineFunctions)({
211
+ exports.functions = (0, define_functions_1.defineFunctions)({
191
212
  // Token Functions
192
213
  total_supply: {
193
214
  args: [(0, common_options_1.getSelfArg)()],
194
215
  returns: 'i128',
195
- code: ['fungible::total_supply(e)'],
216
+ code: ['Self::ContractType::total_supply(e)'],
196
217
  },
197
218
  balance: {
198
219
  args: [(0, common_options_1.getSelfArg)(), { name: 'account', type: 'Address' }],
199
220
  returns: 'i128',
200
- code: ['fungible::balance(e, &account)'],
221
+ code: ['Self::ContractType::balance(e, &account)'],
201
222
  },
202
223
  allowance: {
203
224
  args: [(0, common_options_1.getSelfArg)(), { name: 'owner', type: 'Address' }, { name: 'spender', type: 'Address' }],
204
225
  returns: 'i128',
205
- code: ['fungible::allowance(e, &owner, &spender)'],
226
+ code: ['Self::ContractType::allowance(e, &owner, &spender)'],
206
227
  },
207
228
  transfer: {
208
229
  args: [
@@ -211,7 +232,7 @@ const functions = (0, define_functions_1.defineFunctions)({
211
232
  { name: 'to', type: 'Address' },
212
233
  { name: 'amount', type: 'i128' },
213
234
  ],
214
- code: ['fungible::transfer(e, &from, &to, amount)'],
235
+ code: ['Self::ContractType::transfer(e, &from, &to, amount)'],
215
236
  },
216
237
  transfer_from: {
217
238
  args: [
@@ -221,7 +242,7 @@ const functions = (0, define_functions_1.defineFunctions)({
221
242
  { name: 'to', type: 'Address' },
222
243
  { name: 'amount', type: 'i128' },
223
244
  ],
224
- code: ['fungible::transfer_from(e, &spender, &from, &to, amount)'],
245
+ code: ['Self::ContractType::transfer_from(e, &spender, &from, &to, amount)'],
225
246
  },
226
247
  approve: {
227
248
  args: [
@@ -231,27 +252,27 @@ const functions = (0, define_functions_1.defineFunctions)({
231
252
  { name: 'amount', type: 'i128' },
232
253
  { name: 'live_until_ledger', type: 'u32' },
233
254
  ],
234
- code: ['fungible::approve(e, &owner, &spender, amount, live_until_ledger)'],
255
+ code: ['Self::ContractType::approve(e, &owner, &spender, amount, live_until_ledger)'],
235
256
  },
236
257
  decimals: {
237
258
  args: [(0, common_options_1.getSelfArg)()],
238
259
  returns: 'u32',
239
- code: ['fungible::metadata::decimals(e)'],
260
+ code: ['Self::ContractType::decimals(e)'],
240
261
  },
241
262
  name: {
242
263
  args: [(0, common_options_1.getSelfArg)()],
243
264
  returns: 'String',
244
- code: ['fungible::metadata::name(e)'],
265
+ code: ['Self::ContractType::name(e)'],
245
266
  },
246
267
  symbol: {
247
268
  args: [(0, common_options_1.getSelfArg)()],
248
269
  returns: 'String',
249
- code: ['fungible::metadata::symbol(e)'],
270
+ code: ['Self::ContractType::symbol(e)'],
250
271
  },
251
272
  // Extensions
252
273
  burn: {
253
274
  args: [(0, common_options_1.getSelfArg)(), { name: 'from', type: 'Address' }, { name: 'amount', type: 'i128' }],
254
- code: ['fungible::burnable::burn(e, &from, amount)'],
275
+ code: ['Base::burn(e, &from, amount)'],
255
276
  },
256
277
  burn_from: {
257
278
  args: [
@@ -260,11 +281,21 @@ const functions = (0, define_functions_1.defineFunctions)({
260
281
  { name: 'from', type: 'Address' },
261
282
  { name: 'amount', type: 'i128' },
262
283
  ],
263
- code: ['fungible::burnable::burn_from(e, &spender, &from, amount)'],
284
+ code: ['Base::burn_from(e, &spender, &from, amount)'],
264
285
  },
265
286
  mint: {
266
287
  args: [(0, common_options_1.getSelfArg)(), { name: 'account', type: 'Address' }, { name: 'amount', type: 'i128' }],
267
- code: ['fungible::mintable::mint(e, &account, amount);'],
288
+ code: ['Base::mint(e, &account, amount);'],
289
+ },
290
+ mint_with_caller: {
291
+ name: 'mint',
292
+ args: [
293
+ (0, common_options_1.getSelfArg)(),
294
+ { name: 'account', type: 'Address' },
295
+ { name: 'amount', type: 'i128' },
296
+ { name: 'caller', type: 'Address' },
297
+ ],
298
+ code: ['Base::mint(e, &account, amount);'],
268
299
  },
269
300
  });
270
301
  //# sourceMappingURL=fungible.js.map