@openzeppelin/wizard-stellar 0.2.2 → 0.3.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 (93) hide show
  1. package/dist/add-pausable.d.ts.map +1 -1
  2. package/dist/add-pausable.js +9 -4
  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 +6 -2
  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 +7 -1
  16. package/dist/contract.d.ts.map +1 -1
  17. package/dist/contract.js +17 -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 +80 -50
  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 +91 -71
  39. package/dist/non-fungible.js.map +1 -1
  40. package/dist/print.d.ts.map +1 -1
  41. package/dist/print.js +13 -5
  42. package/dist/print.js.map +1 -1
  43. package/dist/set-access-control.d.ts +7 -4
  44. package/dist/set-access-control.d.ts.map +1 -1
  45. package/dist/set-access-control.js +57 -15
  46. package/dist/set-access-control.js.map +1 -1
  47. package/dist/set-info.d.ts +2 -0
  48. package/dist/set-info.d.ts.map +1 -1
  49. package/dist/set-info.js +6 -2
  50. package/dist/set-info.js.map +1 -1
  51. package/dist/stablecoin.d.ts +11 -0
  52. package/dist/stablecoin.d.ts.map +1 -0
  53. package/dist/stablecoin.js +103 -0
  54. package/dist/stablecoin.js.map +1 -0
  55. package/dist/utils/define-functions.d.ts +4 -2
  56. package/dist/utils/define-functions.d.ts.map +1 -1
  57. package/dist/utils/define-functions.js +7 -1
  58. package/dist/utils/define-functions.js.map +1 -1
  59. package/dist/utils/version.d.ts +3 -3
  60. package/dist/utils/version.js +2 -2
  61. package/dist/zip-rust.d.ts +5 -0
  62. package/dist/zip-rust.d.ts.map +1 -0
  63. package/dist/zip-rust.js +49 -0
  64. package/dist/zip-rust.js.map +1 -0
  65. package/dist/zip-scaffold.d.ts +0 -3
  66. package/dist/zip-scaffold.d.ts.map +1 -1
  67. package/dist/zip-scaffold.js +9 -85
  68. package/dist/zip-scaffold.js.map +1 -1
  69. package/dist/zip-shared.d.ts +26 -0
  70. package/dist/zip-shared.d.ts.map +1 -0
  71. package/dist/zip-shared.js +79 -0
  72. package/dist/zip-shared.js.map +1 -0
  73. package/package.json +1 -1
  74. package/src/add-pausable.ts +9 -4
  75. package/src/add-upgradeable.ts +6 -2
  76. package/src/api.ts +27 -4
  77. package/src/build-generic.ts +6 -0
  78. package/src/contract.ts +22 -2
  79. package/src/fungible.ts +84 -56
  80. package/src/generate/sources.ts +7 -0
  81. package/src/generate/stablecoin.ts +23 -0
  82. package/src/index.ts +2 -0
  83. package/src/kind.ts +1 -0
  84. package/src/non-fungible.ts +98 -77
  85. package/src/print.ts +15 -5
  86. package/src/set-access-control.ts +72 -19
  87. package/src/set-info.ts +8 -1
  88. package/src/stablecoin.ts +124 -0
  89. package/src/utils/define-functions.ts +11 -4
  90. package/src/utils/version.ts +2 -2
  91. package/src/zip-rust.ts +57 -0
  92. package/src/zip-scaffold.ts +16 -91
  93. package/src/zip-shared.ts +85 -0
@@ -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,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,QAsB7D"}
@@ -7,6 +7,7 @@ const define_functions_1 = require("./utils/define-functions");
7
7
  function addPausable(c, access) {
8
8
  c.addUseClause('stellar_pausable', 'self', { alias: 'pausable' });
9
9
  c.addUseClause('stellar_pausable', 'Pausable');
10
+ c.addUseClause('stellar_default_impl_macro', 'default_impl');
10
11
  const pausableTrait = {
11
12
  traitName: 'Pausable',
12
13
  structName: c.name,
@@ -16,8 +17,12 @@ function addPausable(c, access) {
16
17
  c.addTraitFunction(pausableTrait, functions.paused);
17
18
  c.addTraitFunction(pausableTrait, functions.pause);
18
19
  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
+ (0, set_access_control_1.requireAccessControl)(c, pausableTrait, functions.pause, access, { useMacro: true, role: 'pauser', caller: 'caller' });
21
+ (0, set_access_control_1.requireAccessControl)(c, pausableTrait, functions.unpause, access, {
22
+ useMacro: true,
23
+ role: 'pauser',
24
+ caller: 'caller',
25
+ });
21
26
  }
22
27
  const functions = (0, define_functions_1.defineFunctions)({
23
28
  paused: {
@@ -27,11 +32,11 @@ const functions = (0, define_functions_1.defineFunctions)({
27
32
  },
28
33
  pause: {
29
34
  args: [(0, common_options_1.getSelfArg)(), { name: 'caller', type: 'Address' }],
30
- code: ['pausable::pause(e, &caller)'],
35
+ code: ['pausable::pause(e)'],
31
36
  },
32
37
  unpause: {
33
38
  args: [(0, common_options_1.getSelfArg)(), { name: 'caller', type: 'Address' }],
34
- code: ['pausable::unpause(e, &caller)'],
39
+ code: ['pausable::unpause(e)'],
35
40
  },
36
41
  });
37
42
  //# 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,kCAsBC;AA5BD,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;IAC/C,CAAC,CAAC,YAAY,CAAC,4BAA4B,EAAE,cAAc,CAAC,CAAC;IAE7D,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,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtH,IAAA,yCAAoB,EAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE;QAChE,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,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;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,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,wBAAgB,cAAc,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,QA2BhE"}
@@ -8,7 +8,7 @@ function addUpgradeable(c, access) {
8
8
  const functions = (0, define_functions_1.defineFunctions)({
9
9
  _require_auth: {
10
10
  args: [(0, common_options_1.getSelfArg)(), { name: 'operator', type: '&Address' }],
11
- code: ['operator.require_auth();'],
11
+ code: [],
12
12
  },
13
13
  });
14
14
  c.addUseClause('stellar_upgradeable', 'UpgradeableInternal');
@@ -21,6 +21,10 @@ function addUpgradeable(c, access) {
21
21
  section: 'Utils',
22
22
  };
23
23
  c.addTraitFunction(upgradeableTrait, functions._require_auth);
24
- (0, set_access_control_1.requireAccessControl)(c, upgradeableTrait, functions._require_auth, access, '*operator');
24
+ (0, set_access_control_1.requireAccessControl)(c, upgradeableTrait, functions._require_auth, access, {
25
+ useMacro: false,
26
+ role: 'upgrader',
27
+ caller: 'operator',
28
+ });
25
29
  }
26
30
  //# 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,wCA2BC;AAjCD,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,EAAE;SACT;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;QACzE,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"}
@@ -1,5 +1,7 @@
1
1
  export interface Contract {
2
2
  license: string;
3
+ securityContact: string;
4
+ documentations: string[];
3
5
  name: string;
4
6
  useClauses: UseClause[];
5
7
  constructorCode: string[];
@@ -50,8 +52,8 @@ export interface BaseFunction {
50
52
  returns?: string;
51
53
  }
52
54
  export interface ContractFunction extends BaseFunction {
55
+ tags: string[];
53
56
  codeBefore?: string[];
54
- tag?: string;
55
57
  }
56
58
  export interface Variable {
57
59
  name: string;
@@ -65,7 +67,9 @@ export interface Argument {
65
67
  export declare class ContractBuilder implements Contract {
66
68
  readonly name: string;
67
69
  license: string;
70
+ securityContact: string;
68
71
  ownable: boolean;
72
+ readonly documentations: string[];
69
73
  readonly constructorArgs: Argument[];
70
74
  readonly constructorCode: string[];
71
75
  private implementedTraitsMap;
@@ -98,5 +102,7 @@ export declare class ContractBuilder implements Contract {
98
102
  addConstructorArgument(arg: Argument): void;
99
103
  addConstructorCode(code: string): void;
100
104
  addDerives(derive: string): void;
105
+ addDocumentation(description: string): void;
106
+ addSecurityTag(securityContact: string): void;
101
107
  }
102
108
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,iBAAiB,EAAE,cAAc,EAAE,CAAC;IACpC,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEhG,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,SAAS;IAChB,eAAe,SAAM;IACrB,OAAO,UAAS;IAEhB,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAM;IAEvC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,CAAM;IAC1C,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAM;IAExC,OAAO,CAAC,oBAAoB,CAA0C;IACtE,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,UAAU,CAA0B;gBAEhC,IAAI,EAAE,MAAM;IAIxB,IAAI,iBAAiB,IAAI,cAAc,EAAE,CAExC;IAED,IAAI,aAAa,IAAI,gBAAgB,EAAE,CAEtC;IAED,IAAI,SAAS,IAAI,QAAQ,EAAE,CAE1B;IAED,IAAI,UAAU,IAAI,SAAS,EAAE,CAE5B;IAED,IAAI,MAAM,IAAI,KAAK,EAAE,CAEpB;IAED,IAAI,OAAO,IAAI,MAAM,EAAE,CAEtB;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAU5C,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAW1G,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IASxC,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,GAAG,cAAc;IAqBhE,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,gBAAgB;IAkBnD,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,EAAE,EAAE,EAAE,YAAY,GAAG,gBAAgB;IAuBnF,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAShE,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,mBAAmB;IAS3B,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAKnG,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAKnF,sBAAsB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;IAS3C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAStC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIhC,gBAAgB,CAAC,WAAW,EAAE,MAAM;IAIpC,cAAc,CAAC,eAAe,EAAE,MAAM;CAGvC"}
package/dist/contract.js CHANGED
@@ -5,7 +5,9 @@ const convert_strings_1 = require("./utils/convert-strings");
5
5
  class ContractBuilder {
6
6
  constructor(name) {
7
7
  this.license = 'MIT';
8
+ this.securityContact = '';
8
9
  this.ownable = false;
10
+ this.documentations = [];
9
11
  this.constructorArgs = [];
10
12
  this.constructorCode = [];
11
13
  this.implementedTraitsMap = new Map();
@@ -95,6 +97,7 @@ class ContractBuilder {
95
97
  const contractFn = {
96
98
  ...fn,
97
99
  pub: true,
100
+ tags: [],
98
101
  codeBefore: [],
99
102
  };
100
103
  this.freeFunctionsMap.set(signature, contractFn);
@@ -115,6 +118,7 @@ class ContractBuilder {
115
118
  // Otherwise, add the function
116
119
  const contractFn = {
117
120
  ...fn,
121
+ tags: [],
118
122
  codeBefore: [],
119
123
  };
120
124
  t.functions.push(contractFn);
@@ -147,8 +151,9 @@ class ContractBuilder {
147
151
  existingFn.codeBefore = [...((_a = existingFn.codeBefore) !== null && _a !== void 0 ? _a : []), ...codeBefore];
148
152
  }
149
153
  addFunctionTag(fn, tag, baseTrait) {
154
+ var _a;
150
155
  const existingFn = this.getOrCreateFunction(fn, baseTrait);
151
- existingFn.tag = tag;
156
+ existingFn.tags = [...((_a = existingFn.tags) !== null && _a !== void 0 ? _a : []), tag];
152
157
  }
153
158
  addConstructorArgument(arg) {
154
159
  for (const existingArg of this.constructorArgs) {
@@ -159,11 +164,22 @@ class ContractBuilder {
159
164
  this.constructorArgs.push(arg);
160
165
  }
161
166
  addConstructorCode(code) {
167
+ for (const existingCode of this.constructorCode) {
168
+ if (existingCode === code) {
169
+ return;
170
+ }
171
+ }
162
172
  this.constructorCode.push(code);
163
173
  }
164
174
  addDerives(derive) {
165
175
  this.derivesSet.add(derive);
166
176
  }
177
+ addDocumentation(description) {
178
+ this.documentations.push(description);
179
+ }
180
+ addSecurityTag(securityContact) {
181
+ this.securityContact = securityContact;
182
+ }
167
183
  }
168
184
  exports.ContractBuilder = ContractBuilder;
169
185
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
@@ -1,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;AAiGD,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,34 +71,59 @@ 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' });
76
+ c.addUseClause('stellar_fungible', 'Base');
72
77
  c.addUseClause('stellar_fungible', 'FungibleToken');
78
+ c.addUseClause('stellar_default_impl_macro', 'default_impl');
73
79
  c.addUseClause('soroban_sdk', 'contract');
74
80
  c.addUseClause('soroban_sdk', 'contractimpl');
75
81
  c.addUseClause('soroban_sdk', 'Address');
76
82
  c.addUseClause('soroban_sdk', 'String');
77
83
  c.addUseClause('soroban_sdk', 'Env');
78
- c.addUseClause('soroban_sdk', 'Symbol');
79
84
  const fungibleTokenTrait = {
80
85
  traitName: 'FungibleToken',
81
86
  structName: c.name,
82
- tags: ['contractimpl'],
87
+ tags: ['default_impl', 'contractimpl'],
88
+ assocType: 'type ContractType = Base;',
83
89
  };
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);
90
+ c.addTraitImplBlock(fungibleTokenTrait);
93
91
  if (pausable) {
94
92
  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);
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
+ switch (access) {
101
+ case false:
102
+ break;
103
+ case 'ownable': {
104
+ c.addFreeFunction(exports.functions.mint);
105
+ (0, set_access_control_1.requireAccessControl)(c, undefined, exports.functions.mint, access);
106
+ if (pausable) {
107
+ c.addFunctionTag(exports.functions.mint, 'when_not_paused');
108
+ }
109
+ break;
110
+ }
111
+ case 'roles': {
112
+ c.addFreeFunction(exports.functions.mint_with_caller);
113
+ (0, set_access_control_1.requireAccessControl)(c, undefined, exports.functions.mint_with_caller, access, {
114
+ useMacro: true,
115
+ caller: 'caller',
116
+ role: 'minter',
117
+ });
118
+ if (pausable) {
119
+ c.addFunctionTag(exports.functions.mint_with_caller, 'when_not_paused');
120
+ }
121
+ break;
122
+ }
123
+ default: {
124
+ const _ = access;
125
+ throw new Error('Unknown value for `access`');
126
+ }
97
127
  }
98
128
  }
99
129
  function addBurnable(c, pausable) {
@@ -105,12 +135,17 @@ function addBurnable(c, pausable) {
105
135
  tags: ['contractimpl'],
106
136
  section: 'Extensions',
107
137
  };
108
- c.addTraitFunction(fungibleBurnableTrait, functions.burn);
109
- c.addTraitFunction(fungibleBurnableTrait, functions.burn_from);
110
138
  if (pausable) {
111
139
  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.addTraitFunction(fungibleBurnableTrait, exports.functions.burn);
141
+ c.addFunctionTag(exports.functions.burn, 'when_not_paused', fungibleBurnableTrait);
142
+ c.addTraitFunction(fungibleBurnableTrait, exports.functions.burn_from);
143
+ c.addFunctionTag(exports.functions.burn_from, 'when_not_paused', fungibleBurnableTrait);
144
+ }
145
+ else {
146
+ // prepend '#[default_impl]'
147
+ fungibleBurnableTrait.tags.unshift('default_impl');
148
+ c.addTraitImplBlock(fungibleBurnableTrait);
114
149
  }
115
150
  }
116
151
  exports.premintPattern = /^(\d*\.?\d*)$/;
@@ -123,10 +158,9 @@ function addPremint(c, amount) {
123
158
  }
124
159
  // TODO: handle signed int?
125
160
  const premintAbsolute = (0, convert_strings_1.toUint)(getInitialSupply(amount, 18), 'premint', 'u128');
126
- c.addUseClause('stellar_fungible', 'mintable::FungibleMintable');
127
161
  c.addUseClause('soroban_sdk', 'Address');
128
162
  c.addConstructorArgument({ name: 'recipient', type: 'Address' });
129
- c.addConstructorCode(`fungible::mintable::mint(e, &recipient, ${premintAbsolute});`);
163
+ c.addConstructorCode(`Base::mint(e, &recipient, ${premintAbsolute});`);
130
164
  }
131
165
  }
132
166
  /**
@@ -173,36 +207,22 @@ function getInitialSupply(premint, decimals) {
173
207
  }
174
208
  return result;
175
209
  }
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)({
210
+ exports.functions = (0, define_functions_1.defineFunctions)({
191
211
  // Token Functions
192
212
  total_supply: {
193
213
  args: [(0, common_options_1.getSelfArg)()],
194
214
  returns: 'i128',
195
- code: ['fungible::total_supply(e)'],
215
+ code: ['Self::ContractType::total_supply(e)'],
196
216
  },
197
217
  balance: {
198
218
  args: [(0, common_options_1.getSelfArg)(), { name: 'account', type: 'Address' }],
199
219
  returns: 'i128',
200
- code: ['fungible::balance(e, &account)'],
220
+ code: ['Self::ContractType::balance(e, &account)'],
201
221
  },
202
222
  allowance: {
203
223
  args: [(0, common_options_1.getSelfArg)(), { name: 'owner', type: 'Address' }, { name: 'spender', type: 'Address' }],
204
224
  returns: 'i128',
205
- code: ['fungible::allowance(e, &owner, &spender)'],
225
+ code: ['Self::ContractType::allowance(e, &owner, &spender)'],
206
226
  },
207
227
  transfer: {
208
228
  args: [
@@ -211,7 +231,7 @@ const functions = (0, define_functions_1.defineFunctions)({
211
231
  { name: 'to', type: 'Address' },
212
232
  { name: 'amount', type: 'i128' },
213
233
  ],
214
- code: ['fungible::transfer(e, &from, &to, amount)'],
234
+ code: ['Self::ContractType::transfer(e, &from, &to, amount)'],
215
235
  },
216
236
  transfer_from: {
217
237
  args: [
@@ -221,7 +241,7 @@ const functions = (0, define_functions_1.defineFunctions)({
221
241
  { name: 'to', type: 'Address' },
222
242
  { name: 'amount', type: 'i128' },
223
243
  ],
224
- code: ['fungible::transfer_from(e, &spender, &from, &to, amount)'],
244
+ code: ['Self::ContractType::transfer_from(e, &spender, &from, &to, amount)'],
225
245
  },
226
246
  approve: {
227
247
  args: [
@@ -231,27 +251,27 @@ const functions = (0, define_functions_1.defineFunctions)({
231
251
  { name: 'amount', type: 'i128' },
232
252
  { name: 'live_until_ledger', type: 'u32' },
233
253
  ],
234
- code: ['fungible::approve(e, &owner, &spender, amount, live_until_ledger)'],
254
+ code: ['Self::ContractType::approve(e, &owner, &spender, amount, live_until_ledger)'],
235
255
  },
236
256
  decimals: {
237
257
  args: [(0, common_options_1.getSelfArg)()],
238
258
  returns: 'u32',
239
- code: ['fungible::metadata::decimals(e)'],
259
+ code: ['Self::ContractType::decimals(e)'],
240
260
  },
241
261
  name: {
242
262
  args: [(0, common_options_1.getSelfArg)()],
243
263
  returns: 'String',
244
- code: ['fungible::metadata::name(e)'],
264
+ code: ['Self::ContractType::name(e)'],
245
265
  },
246
266
  symbol: {
247
267
  args: [(0, common_options_1.getSelfArg)()],
248
268
  returns: 'String',
249
- code: ['fungible::metadata::symbol(e)'],
269
+ code: ['Self::ContractType::symbol(e)'],
250
270
  },
251
271
  // Extensions
252
272
  burn: {
253
273
  args: [(0, common_options_1.getSelfArg)(), { name: 'from', type: 'Address' }, { name: 'amount', type: 'i128' }],
254
- code: ['fungible::burnable::burn(e, &from, amount)'],
274
+ code: ['Base::burn(e, &from, amount)'],
255
275
  },
256
276
  burn_from: {
257
277
  args: [
@@ -260,11 +280,21 @@ const functions = (0, define_functions_1.defineFunctions)({
260
280
  { name: 'from', type: 'Address' },
261
281
  { name: 'amount', type: 'i128' },
262
282
  ],
263
- code: ['fungible::burnable::burn_from(e, &spender, &from, amount)'],
283
+ code: ['Base::burn_from(e, &spender, &from, amount)'],
264
284
  },
265
285
  mint: {
266
286
  args: [(0, common_options_1.getSelfArg)(), { name: 'account', type: 'Address' }, { name: 'amount', type: 'i128' }],
267
- code: ['fungible::mintable::mint(e, &account, amount);'],
287
+ code: ['Base::mint(e, &account, amount);'],
288
+ },
289
+ mint_with_caller: {
290
+ name: 'mint',
291
+ args: [
292
+ (0, common_options_1.getSelfArg)(),
293
+ { name: 'account', type: 'Address' },
294
+ { name: 'amount', type: 'i128' },
295
+ { name: 'caller', type: 'Address' },
296
+ ],
297
+ code: ['Base::mint(e, &account, amount);'],
268
298
  },
269
299
  });
270
300
  //# sourceMappingURL=fungible.js.map