@openzeppelin/wizard-stellar 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +1 -0
  2. package/dist/add-pausable.js +7 -7
  3. package/dist/add-pausable.js.map +1 -1
  4. package/dist/add-upgradeable.d.ts +4 -0
  5. package/dist/add-upgradeable.d.ts.map +1 -0
  6. package/dist/add-upgradeable.js +26 -0
  7. package/dist/add-upgradeable.js.map +1 -0
  8. package/dist/api.d.ts +3 -0
  9. package/dist/api.d.ts.map +1 -1
  10. package/dist/api.js +6 -1
  11. package/dist/api.js.map +1 -1
  12. package/dist/build-generic.d.ts +4 -0
  13. package/dist/build-generic.d.ts.map +1 -1
  14. package/dist/build-generic.js +5 -2
  15. package/dist/build-generic.js.map +1 -1
  16. package/dist/contract.d.ts +22 -11
  17. package/dist/contract.d.ts.map +1 -1
  18. package/dist/contract.js +58 -12
  19. package/dist/contract.js.map +1 -1
  20. package/dist/fungible.d.ts +1 -0
  21. package/dist/fungible.d.ts.map +1 -1
  22. package/dist/fungible.js +38 -32
  23. package/dist/fungible.js.map +1 -1
  24. package/dist/generate/fungible.d.ts.map +1 -1
  25. package/dist/generate/fungible.js +1 -0
  26. package/dist/generate/fungible.js.map +1 -1
  27. package/dist/generate/non-fungible.d.ts +3 -0
  28. package/dist/generate/non-fungible.d.ts.map +1 -0
  29. package/dist/generate/non-fungible.js +24 -0
  30. package/dist/generate/non-fungible.js.map +1 -0
  31. package/dist/generate/sources.d.ts.map +1 -1
  32. package/dist/generate/sources.js +6 -0
  33. package/dist/generate/sources.js.map +1 -1
  34. package/dist/index.d.ts +1 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +3 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/kind.js +2 -1
  39. package/dist/kind.js.map +1 -1
  40. package/dist/non-fungible.d.ts +17 -0
  41. package/dist/non-fungible.d.ts.map +1 -0
  42. package/dist/non-fungible.js +356 -0
  43. package/dist/non-fungible.js.map +1 -0
  44. package/dist/print.d.ts.map +1 -1
  45. package/dist/print.js +53 -17
  46. package/dist/print.js.map +1 -1
  47. package/dist/set-access-control.d.ts +2 -2
  48. package/dist/set-access-control.d.ts.map +1 -1
  49. package/dist/set-access-control.js +2 -7
  50. package/dist/set-access-control.js.map +1 -1
  51. package/dist/test.js +3 -0
  52. package/dist/test.js.map +1 -1
  53. package/dist/utils/version.d.ts +3 -3
  54. package/dist/utils/version.js +2 -2
  55. package/package.json +3 -4
  56. package/src/add-pausable.ts +7 -7
  57. package/src/add-upgradeable.ts +30 -0
  58. package/src/api.ts +8 -0
  59. package/src/build-generic.ts +9 -2
  60. package/src/contract.ts +73 -21
  61. package/src/fungible.ts +38 -30
  62. package/src/generate/fungible.ts +1 -0
  63. package/src/generate/non-fungible.ts +24 -0
  64. package/src/generate/sources.ts +7 -0
  65. package/src/index.ts +1 -0
  66. package/src/kind.ts +2 -1
  67. package/src/non-fungible.ts +410 -0
  68. package/src/print.ts +77 -28
  69. package/src/set-access-control.ts +8 -9
  70. package/src/test.ts +4 -0
  71. package/src/utils/version.ts +2 -2
package/README.md CHANGED
@@ -12,6 +12,7 @@ This package provides a programmatic API. For a web interface, see https://wizar
12
12
 
13
13
  The following contract types are supported:
14
14
  - `fungible`
15
+ - `nonFungible`
15
16
 
16
17
  Each contract type has functions/constants as defined below.
17
18
 
@@ -5,17 +5,17 @@ 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('openzeppelin_pausable', 'self', { alias: 'pausable' });
9
- c.addUseClause('openzeppelin_pausable', 'Pausable');
8
+ c.addUseClause('stellar_pausable', 'self', { alias: 'pausable' });
9
+ c.addUseClause('stellar_pausable', 'Pausable');
10
10
  const pausableTrait = {
11
- name: 'Pausable',
12
- for: c.name,
11
+ traitName: 'Pausable',
12
+ structName: c.name,
13
13
  tags: ['contractimpl'],
14
14
  section: 'Utils',
15
15
  };
16
- c.addFunction(pausableTrait, functions.paused);
17
- c.addFunction(pausableTrait, functions.pause);
18
- c.addFunction(pausableTrait, functions.unpause);
16
+ c.addTraitFunction(pausableTrait, functions.paused);
17
+ c.addTraitFunction(pausableTrait, functions.pause);
18
+ c.addTraitFunction(pausableTrait, functions.unpause);
19
19
  (0, set_access_control_1.requireAccessControl)(c, pausableTrait, functions.pause, access, 'caller');
20
20
  (0, set_access_control_1.requireAccessControl)(c, pausableTrait, functions.unpause, access, 'caller');
21
21
  }
@@ -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,uBAAuB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,YAAY,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;IAEpD,MAAM,aAAa,GAAG;QACpB,IAAI,EAAE,UAAU;QAChB,GAAG,EAAE,CAAC,CAAC,IAAI;QACX,IAAI,EAAE,CAAC,cAAc,CAAC;QACtB,OAAO,EAAE,OAAO;KACjB,CAAC;IAEF,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAEhD,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,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"}
@@ -0,0 +1,4 @@
1
+ import type { Access } from './set-access-control';
2
+ import type { ContractBuilder } from './contract';
3
+ export declare function addUpgradeable(c: ContractBuilder, access: Access): void;
4
+ //# sourceMappingURL=add-upgradeable.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addUpgradeable = addUpgradeable;
4
+ const common_options_1 = require("./common-options");
5
+ const set_access_control_1 = require("./set-access-control");
6
+ const define_functions_1 = require("./utils/define-functions");
7
+ function addUpgradeable(c, access) {
8
+ const functions = (0, define_functions_1.defineFunctions)({
9
+ _require_auth: {
10
+ args: [(0, common_options_1.getSelfArg)(), { name: 'operator', type: '&Address' }],
11
+ code: ['operator.require_auth();'],
12
+ },
13
+ });
14
+ c.addUseClause('stellar_upgradeable', 'UpgradeableInternal');
15
+ c.addUseClause('stellar_upgradeable_macros', 'Upgradeable');
16
+ c.addDerives('Upgradeable');
17
+ const upgradeableTrait = {
18
+ traitName: 'UpgradeableInternal',
19
+ structName: c.name,
20
+ tags: [],
21
+ section: 'Utils',
22
+ };
23
+ c.addTraitFunction(upgradeableTrait, functions._require_auth);
24
+ (0, set_access_control_1.requireAccessControl)(c, upgradeableTrait, functions._require_auth, access, '*operator');
25
+ }
26
+ //# sourceMappingURL=add-upgradeable.js.map
@@ -0,0 +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"}
package/dist/api.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { CommonContractOptions } from './common-options';
2
2
  import type { FungibleOptions } from './fungible';
3
+ import type { NonFungibleOptions } from './non-fungible';
3
4
  export interface WizardContractAPI<Options extends CommonContractOptions> {
4
5
  /**
5
6
  * Returns a string representation of a contract generated using the provided options. If opts is not provided, uses `defaults`.
@@ -18,5 +19,7 @@ export interface AccessControlAPI<Options extends CommonContractOptions> {
18
19
  isAccessControlRequired: (opts: Partial<Options>) => boolean;
19
20
  }
20
21
  export type Fungible = WizardContractAPI<FungibleOptions>;
22
+ export type NonFungible = WizardContractAPI<NonFungibleOptions>;
21
23
  export declare const fungible: Fungible;
24
+ export declare const nonFungible: NonFungible;
22
25
  //# 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;AAGlD,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;AAE1D,eAAO,MAAM,QAAQ,EAAE,QAGtB,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;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"}
package/dist/api.js CHANGED
@@ -1,9 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fungible = void 0;
3
+ exports.nonFungible = exports.fungible = void 0;
4
4
  const fungible_1 = require("./fungible");
5
+ const non_fungible_1 = require("./non-fungible");
5
6
  exports.fungible = {
6
7
  print: fungible_1.printFungible,
7
8
  defaults: fungible_1.defaults,
8
9
  };
10
+ exports.nonFungible = {
11
+ print: non_fungible_1.printNonFungible,
12
+ defaults: non_fungible_1.defaults,
13
+ };
9
14
  //# 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":";;;AAEA,yCAAyE;AAwB5D,QAAA,QAAQ,GAAa;IAChC,KAAK,EAAE,wBAAa;IACpB,QAAQ,EAAE,mBAAgB;CAC3B,CAAC"}
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,8 +1,12 @@
1
1
  import type { FungibleOptions } from './fungible';
2
+ import type { NonFungibleOptions } from './non-fungible';
2
3
  export interface KindedOptions {
3
4
  Fungible: {
4
5
  kind: 'Fungible';
5
6
  } & FungibleOptions;
7
+ NonFungible: {
8
+ kind: 'NonFungible';
9
+ } & NonFungibleOptions;
6
10
  }
7
11
  export type GenericOptions = KindedOptions[keyof KindedOptions];
8
12
  export declare function buildGeneric(opts: GenericOptions): import("./contract").Contract;
@@ -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;AAGlD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG,eAAe,CAAC;CAClD;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,aAAa,CAAC,CAAC;AAEhE,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,iCAShD"}
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"}
@@ -2,13 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildGeneric = buildGeneric;
4
4
  const fungible_1 = require("./fungible");
5
+ const non_fungible_1 = require("./non-fungible");
5
6
  function buildGeneric(opts) {
6
7
  switch (opts.kind) {
7
8
  case 'Fungible':
8
9
  return (0, fungible_1.buildFungible)(opts);
10
+ case 'NonFungible':
11
+ return (0, non_fungible_1.buildNonFungible)(opts);
9
12
  default: {
10
- const _ = opts.kind; // TODO: When there are additional kinds above, change this assignment to just `opts` instead of `opts.kind`
11
- throw new Error('Unknown ERC');
13
+ const _ = opts;
14
+ throw new Error('Unknown kind');
12
15
  }
13
16
  }
14
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build-generic.js","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":";;AASA,oCASC;AAjBD,yCAA2C;AAQ3C,SAAgB,YAAY,CAAC,IAAoB;IAC/C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAU,IAAI,CAAC,IAAI,CAAC,CAAC,4GAA4G;YACxI,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC"}
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"}
@@ -4,10 +4,12 @@ export interface Contract {
4
4
  useClauses: UseClause[];
5
5
  constructorCode: string[];
6
6
  constructorArgs: Argument[];
7
- implementedTraits: ImplementedTrait[];
7
+ implementedTraits: TraitImplBlock[];
8
+ freeFunctions: ContractFunction[];
8
9
  variables: Variable[];
9
10
  errors: Error[];
10
11
  ownable: boolean;
12
+ derives: string[];
11
13
  }
12
14
  export interface Error {
13
15
  name: string;
@@ -25,10 +27,11 @@ export interface UseClause {
25
27
  groupable?: boolean;
26
28
  alias?: string;
27
29
  }
28
- export interface BaseImplementedTrait {
29
- name: string;
30
- for: string;
30
+ export interface BaseTraitImplBlock {
31
+ traitName: string;
32
+ structName: string;
31
33
  tags: string[];
34
+ assocType?: string;
32
35
  section?: string;
33
36
  /**
34
37
  * Priority for which trait to print first.
@@ -36,14 +39,14 @@ export interface BaseImplementedTrait {
36
39
  */
37
40
  priority?: number;
38
41
  }
39
- export interface ImplementedTrait extends BaseImplementedTrait {
42
+ export interface TraitImplBlock extends BaseTraitImplBlock {
40
43
  functions: ContractFunction[];
41
- section?: string;
42
44
  }
43
45
  export interface BaseFunction {
44
46
  name: string;
45
47
  args: Argument[];
46
48
  code: string[];
49
+ pub?: boolean;
47
50
  returns?: string;
48
51
  }
49
52
  export interface ContractFunction extends BaseFunction {
@@ -66,26 +69,34 @@ export declare class ContractBuilder implements Contract {
66
69
  readonly constructorArgs: Argument[];
67
70
  readonly constructorCode: string[];
68
71
  private implementedTraitsMap;
72
+ private freeFunctionsMap;
69
73
  private variablesMap;
70
74
  private useClausesMap;
71
75
  private errorsMap;
76
+ private derivesSet;
72
77
  constructor(name: string);
73
- get implementedTraits(): ImplementedTrait[];
78
+ get implementedTraits(): TraitImplBlock[];
79
+ get freeFunctions(): ContractFunction[];
74
80
  get variables(): Variable[];
75
81
  get useClauses(): UseClause[];
76
82
  get errors(): Error[];
83
+ get derives(): string[];
77
84
  addError(name: string, num: number): boolean;
78
85
  addUseClause(containerPath: string, name: string, options?: {
79
86
  groupable?: boolean;
80
87
  alias?: string;
81
88
  }): void;
82
89
  addVariable(variable: Variable): boolean;
83
- addImplementedTrait(baseTrait: BaseImplementedTrait): ImplementedTrait;
84
- addFunction(baseTrait: BaseImplementedTrait, fn: BaseFunction): ContractFunction;
90
+ addTraitImplBlock(baseTrait: BaseTraitImplBlock): TraitImplBlock;
91
+ addFreeFunction(fn: BaseFunction): ContractFunction;
92
+ addTraitFunction(baseTrait: BaseTraitImplBlock, fn: BaseFunction): ContractFunction;
93
+ overrideAssocType(traitName: string, newAssocType: string): void;
85
94
  private getFunctionSignature;
86
- addFunctionCodeBefore(baseTrait: BaseImplementedTrait, fn: BaseFunction, codeBefore: string[]): void;
87
- addFunctionTag(baseTrait: BaseImplementedTrait, fn: BaseFunction, tag: string): void;
95
+ private getOrCreateFunction;
96
+ addFunctionCodeBefore(fn: BaseFunction, codeBefore: string[], baseTrait?: BaseTraitImplBlock): void;
97
+ addFunctionTag(fn: BaseFunction, tag: string, baseTrait?: BaseTraitImplBlock): void;
88
98
  addConstructorArgument(arg: Argument): void;
89
99
  addConstructorCode(code: string): void;
100
+ addDerives(derive: string): void;
90
101
  }
91
102
  //# 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":"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"}
package/dist/contract.js CHANGED
@@ -9,14 +9,19 @@ class ContractBuilder {
9
9
  this.constructorArgs = [];
10
10
  this.constructorCode = [];
11
11
  this.implementedTraitsMap = new Map();
12
+ this.freeFunctionsMap = new Map();
12
13
  this.variablesMap = new Map();
13
14
  this.useClausesMap = new Map();
14
15
  this.errorsMap = new Map();
16
+ this.derivesSet = new Set();
15
17
  this.name = (0, convert_strings_1.toIdentifier)(name, true);
16
18
  }
17
19
  get implementedTraits() {
18
20
  return [...this.implementedTraitsMap.values()];
19
21
  }
22
+ get freeFunctions() {
23
+ return [...this.freeFunctionsMap.values()];
24
+ }
20
25
  get variables() {
21
26
  return [...this.variablesMap.values()];
22
27
  }
@@ -26,6 +31,9 @@ class ContractBuilder {
26
31
  get errors() {
27
32
  return [...this.errorsMap.values()];
28
33
  }
34
+ get derives() {
35
+ return [...this.derivesSet];
36
+ }
29
37
  addError(name, num) {
30
38
  if (this.errorsMap.has(name)) {
31
39
  return false;
@@ -56,17 +64,18 @@ class ContractBuilder {
56
64
  return true;
57
65
  }
58
66
  }
59
- addImplementedTrait(baseTrait) {
60
- const key = baseTrait.name;
67
+ addTraitImplBlock(baseTrait) {
68
+ const key = baseTrait.traitName;
61
69
  const existingTrait = this.implementedTraitsMap.get(key);
62
70
  if (existingTrait !== undefined) {
63
71
  return existingTrait;
64
72
  }
65
73
  else {
66
74
  const t = {
67
- name: baseTrait.name,
68
- for: baseTrait.for,
75
+ traitName: baseTrait.traitName,
76
+ structName: baseTrait.structName,
69
77
  tags: [...baseTrait.tags],
78
+ assocType: baseTrait.assocType,
70
79
  functions: [],
71
80
  section: baseTrait.section,
72
81
  priority: baseTrait.priority,
@@ -75,8 +84,26 @@ class ContractBuilder {
75
84
  return t;
76
85
  }
77
86
  }
78
- addFunction(baseTrait, fn) {
79
- const t = this.addImplementedTrait(baseTrait);
87
+ // used for adding a function to the `impl Contract` block
88
+ addFreeFunction(fn) {
89
+ const signature = this.getFunctionSignature(fn);
90
+ const existingFn = this.freeFunctionsMap.get(signature);
91
+ if (existingFn !== undefined) {
92
+ return existingFn;
93
+ }
94
+ else {
95
+ const contractFn = {
96
+ ...fn,
97
+ pub: true,
98
+ codeBefore: [],
99
+ };
100
+ this.freeFunctionsMap.set(signature, contractFn);
101
+ return contractFn;
102
+ }
103
+ }
104
+ // used for adding a function to a trait implementation block
105
+ addTraitFunction(baseTrait, fn) {
106
+ const t = this.addTraitImplBlock(baseTrait);
80
107
  const signature = this.getFunctionSignature(fn);
81
108
  // Look for the existing function with the same signature and return it if found
82
109
  for (let i = 0; i < t.functions.length; i++) {
@@ -93,18 +120,34 @@ class ContractBuilder {
93
120
  t.functions.push(contractFn);
94
121
  return contractFn;
95
122
  }
123
+ overrideAssocType(traitName, newAssocType) {
124
+ const trait = this.implementedTraitsMap.get(traitName);
125
+ if (trait) {
126
+ trait.assocType = newAssocType;
127
+ }
128
+ else {
129
+ throw new Error(`Trait '${traitName}' does not exist and cannot be overridden.`);
130
+ }
131
+ }
96
132
  getFunctionSignature(fn) {
97
133
  return [fn.name, '(', ...fn.args.map(a => a.name), ')'].join('');
98
134
  }
99
- addFunctionCodeBefore(baseTrait, fn, codeBefore) {
135
+ getOrCreateFunction(fn, baseTrait) {
136
+ if (baseTrait === undefined) {
137
+ return this.addFreeFunction(fn);
138
+ }
139
+ else {
140
+ this.addTraitImplBlock(baseTrait);
141
+ return this.addTraitFunction(baseTrait, fn);
142
+ }
143
+ }
144
+ addFunctionCodeBefore(fn, codeBefore, baseTrait) {
100
145
  var _a;
101
- this.addImplementedTrait(baseTrait);
102
- const existingFn = this.addFunction(baseTrait, fn);
146
+ const existingFn = this.getOrCreateFunction(fn, baseTrait);
103
147
  existingFn.codeBefore = [...((_a = existingFn.codeBefore) !== null && _a !== void 0 ? _a : []), ...codeBefore];
104
148
  }
105
- addFunctionTag(baseTrait, fn, tag) {
106
- this.addImplementedTrait(baseTrait);
107
- const existingFn = this.addFunction(baseTrait, fn);
149
+ addFunctionTag(fn, tag, baseTrait) {
150
+ const existingFn = this.getOrCreateFunction(fn, baseTrait);
108
151
  existingFn.tag = tag;
109
152
  }
110
153
  addConstructorArgument(arg) {
@@ -118,6 +161,9 @@ class ContractBuilder {
118
161
  addConstructorCode(code) {
119
162
  this.constructorCode.push(code);
120
163
  }
164
+ addDerives(derive) {
165
+ this.derivesSet.add(derive);
166
+ }
121
167
  }
122
168
  exports.ContractBuilder = ContractBuilder;
123
169
  //# 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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"}
@@ -7,6 +7,7 @@ export interface FungibleOptions extends CommonContractOptions {
7
7
  symbol: string;
8
8
  burnable?: boolean;
9
9
  pausable?: boolean;
10
+ upgradeable?: boolean;
10
11
  premint?: string;
11
12
  mintable?: boolean;
12
13
  }
@@ -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;AAM3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAQ9D,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,eAAe,CASrC,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,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAaD,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,QAAQ,CA2B7D;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,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"}
package/dist/fungible.js CHANGED
@@ -7,6 +7,7 @@ exports.getInitialSupply = getInitialSupply;
7
7
  const contract_1 = require("./contract");
8
8
  const set_access_control_1 = require("./set-access-control");
9
9
  const add_pausable_1 = require("./add-pausable");
10
+ const add_upgradeable_1 = require("./add-upgradeable");
10
11
  const define_functions_1 = require("./utils/define-functions");
11
12
  const common_options_1 = require("./common-options");
12
13
  const set_info_1 = require("./set-info");
@@ -19,6 +20,7 @@ exports.defaults = {
19
20
  symbol: 'MTK',
20
21
  burnable: false,
21
22
  pausable: false,
23
+ upgradeable: false,
22
24
  premint: '0',
23
25
  mintable: false,
24
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,14 +30,15 @@ function printFungible(opts = exports.defaults) {
28
30
  return (0, print_1.printContract)(buildFungible(opts));
29
31
  }
30
32
  function withDefaults(opts) {
31
- var _a, _b, _c;
33
+ var _a, _b, _c, _d;
32
34
  return {
33
35
  ...opts,
34
36
  ...(0, common_options_1.withCommonContractDefaults)(opts),
35
37
  burnable: (_a = opts.burnable) !== null && _a !== void 0 ? _a : exports.defaults.burnable,
36
38
  pausable: (_b = opts.pausable) !== null && _b !== void 0 ? _b : exports.defaults.pausable,
39
+ upgradeable: (_c = opts.upgradeable) !== null && _c !== void 0 ? _c : exports.defaults.upgradeable,
37
40
  premint: opts.premint || exports.defaults.premint,
38
- mintable: (_c = opts.mintable) !== null && _c !== void 0 ? _c : exports.defaults.mintable,
41
+ mintable: (_d = opts.mintable) !== null && _d !== void 0 ? _d : exports.defaults.mintable,
39
42
  };
40
43
  }
41
44
  function buildFungible(opts) {
@@ -48,6 +51,9 @@ function buildFungible(opts) {
48
51
  if (allOpts.pausable) {
49
52
  (0, add_pausable_1.addPausable)(c, allOpts.access);
50
53
  }
54
+ if (allOpts.upgradeable) {
55
+ (0, add_upgradeable_1.addUpgradeable)(c, allOpts.access);
56
+ }
51
57
  if (allOpts.burnable) {
52
58
  addBurnable(c, allOpts.pausable);
53
59
  }
@@ -62,8 +68,8 @@ function addBase(c, name, symbol, pausable) {
62
68
  // Set metadata
63
69
  c.addConstructorCode(`fungible::metadata::set_metadata(e, 18, String::from_str(e, "${name}"), String::from_str(e, "${symbol}"));`);
64
70
  // Set token functions
65
- c.addUseClause('openzeppelin_fungible_token', 'self', { alias: 'fungible' });
66
- c.addUseClause('openzeppelin_fungible_token', 'FungibleToken');
71
+ c.addUseClause('stellar_fungible', 'self', { alias: 'fungible' });
72
+ c.addUseClause('stellar_fungible', 'FungibleToken');
67
73
  c.addUseClause('soroban_sdk', 'contract');
68
74
  c.addUseClause('soroban_sdk', 'contractimpl');
69
75
  c.addUseClause('soroban_sdk', 'Address');
@@ -71,40 +77,40 @@ function addBase(c, name, symbol, pausable) {
71
77
  c.addUseClause('soroban_sdk', 'Env');
72
78
  c.addUseClause('soroban_sdk', 'Symbol');
73
79
  const fungibleTokenTrait = {
74
- name: 'FungibleToken',
75
- for: c.name,
80
+ traitName: 'FungibleToken',
81
+ structName: c.name,
76
82
  tags: ['contractimpl'],
77
83
  };
78
- c.addFunction(fungibleTokenTrait, functions.total_supply);
79
- c.addFunction(fungibleTokenTrait, functions.balance);
80
- c.addFunction(fungibleTokenTrait, functions.allowance);
81
- c.addFunction(fungibleTokenTrait, functions.transfer);
82
- c.addFunction(fungibleTokenTrait, functions.transfer_from);
83
- c.addFunction(fungibleTokenTrait, functions.approve);
84
- c.addFunction(fungibleTokenTrait, functions.decimals);
85
- c.addFunction(fungibleTokenTrait, functions.name);
86
- c.addFunction(fungibleTokenTrait, functions.symbol);
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);
87
93
  if (pausable) {
88
- c.addUseClause('openzeppelin_pausable_macros', 'when_not_paused');
89
- c.addFunctionTag(fungibleTokenTrait, functions.transfer, 'when_not_paused');
90
- c.addFunctionTag(fungibleTokenTrait, functions.transfer_from, 'when_not_paused');
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
97
  }
92
98
  }
93
99
  function addBurnable(c, pausable) {
94
- c.addUseClause('openzeppelin_fungible_token', 'burnable::FungibleBurnable');
100
+ c.addUseClause('stellar_fungible', 'burnable::FungibleBurnable');
95
101
  c.addUseClause('soroban_sdk', 'Address');
96
102
  const fungibleBurnableTrait = {
97
- name: 'FungibleBurnable',
98
- for: c.name,
103
+ traitName: 'FungibleBurnable',
104
+ structName: c.name,
99
105
  tags: ['contractimpl'],
100
106
  section: 'Extensions',
101
107
  };
102
- c.addFunction(fungibleBurnableTrait, functions.burn);
103
- c.addFunction(fungibleBurnableTrait, functions.burn_from);
108
+ c.addTraitFunction(fungibleBurnableTrait, functions.burn);
109
+ c.addTraitFunction(fungibleBurnableTrait, functions.burn_from);
104
110
  if (pausable) {
105
- c.addUseClause('openzeppelin_pausable_macros', 'when_not_paused');
106
- c.addFunctionTag(fungibleBurnableTrait, functions.burn, 'when_not_paused');
107
- c.addFunctionTag(fungibleBurnableTrait, functions.burn_from, 'when_not_paused');
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);
108
114
  }
109
115
  }
110
116
  exports.premintPattern = /^(\d*\.?\d*)$/;
@@ -117,7 +123,7 @@ function addPremint(c, amount) {
117
123
  }
118
124
  // TODO: handle signed int?
119
125
  const premintAbsolute = (0, convert_strings_1.toUint)(getInitialSupply(amount, 18), 'premint', 'u128');
120
- c.addUseClause('openzeppelin_fungible_token', 'mintable::FungibleMintable');
126
+ c.addUseClause('stellar_fungible', 'mintable::FungibleMintable');
121
127
  c.addUseClause('soroban_sdk', 'Address');
122
128
  c.addConstructorArgument({ name: 'recipient', type: 'Address' });
123
129
  c.addConstructorCode(`fungible::mintable::mint(e, &recipient, ${premintAbsolute});`);
@@ -168,17 +174,17 @@ function getInitialSupply(premint, decimals) {
168
174
  return result;
169
175
  }
170
176
  function addMintable(c, access, pausable) {
171
- c.addUseClause('openzeppelin_fungible_token', 'mintable::FungibleMintable');
177
+ c.addUseClause('stellar_fungible', 'mintable::FungibleMintable');
172
178
  const fungibleMintableTrait = {
173
- name: 'FungibleMintable',
174
- for: c.name,
179
+ traitName: 'FungibleMintable',
180
+ structName: c.name,
175
181
  tags: ['contractimpl'],
176
182
  section: 'Extensions',
177
183
  };
178
- c.addFunction(fungibleMintableTrait, functions.mint);
184
+ c.addTraitFunction(fungibleMintableTrait, functions.mint);
179
185
  (0, set_access_control_1.requireAccessControl)(c, fungibleMintableTrait, functions.mint, access);
180
186
  if (pausable) {
181
- c.addFunctionTag(fungibleMintableTrait, functions.mint, 'when_not_paused');
187
+ c.addFunctionTag(functions.mint, 'when_not_paused', fungibleMintableTrait);
182
188
  }
183
189
  }
184
190
  const functions = (0, define_functions_1.defineFunctions)({