@openzeppelin/wizard-stellar 0.6.3 → 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +4 -0
  2. package/dist/account.d.ts +19 -0
  3. package/dist/account.d.ts.map +1 -0
  4. package/dist/account.js +251 -0
  5. package/dist/account.js.map +1 -0
  6. package/dist/add-upgradeable.d.ts +9 -0
  7. package/dist/add-upgradeable.d.ts.map +1 -1
  8. package/dist/add-upgradeable.js +25 -0
  9. package/dist/add-upgradeable.js.map +1 -1
  10. package/dist/api.d.ts +7 -0
  11. package/dist/api.d.ts.map +1 -1
  12. package/dist/api.js +6 -1
  13. package/dist/api.js.map +1 -1
  14. package/dist/build-generic.d.ts +4 -0
  15. package/dist/build-generic.d.ts.map +1 -1
  16. package/dist/build-generic.js +3 -0
  17. package/dist/build-generic.js.map +1 -1
  18. package/dist/contract.d.ts +21 -2
  19. package/dist/contract.d.ts.map +1 -1
  20. package/dist/contract.js +11 -0
  21. package/dist/contract.js.map +1 -1
  22. package/dist/fungible.d.ts.map +1 -1
  23. package/dist/fungible.js +1 -1
  24. package/dist/fungible.js.map +1 -1
  25. package/dist/generate/account.d.ts +3 -0
  26. package/dist/generate/account.d.ts.map +1 -0
  27. package/dist/generate/account.js +21 -0
  28. package/dist/generate/account.js.map +1 -0
  29. package/dist/generate/sources.d.ts.map +1 -1
  30. package/dist/generate/sources.js +6 -0
  31. package/dist/generate/sources.js.map +1 -1
  32. package/dist/index.d.ts +2 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +8 -6
  35. package/dist/index.js.map +1 -1
  36. package/dist/kind.js +1 -0
  37. package/dist/kind.js.map +1 -1
  38. package/dist/print.js +39 -9
  39. package/dist/print.js.map +1 -1
  40. package/dist/utils/compile-test.d.ts.map +1 -1
  41. package/dist/utils/compile-test.js +1 -0
  42. package/dist/utils/compile-test.js.map +1 -1
  43. package/dist/zip-rust.d.ts.map +1 -1
  44. package/dist/zip-rust.js +14 -1
  45. package/dist/zip-rust.js.map +1 -1
  46. package/dist/zip-shared.d.ts +14 -0
  47. package/dist/zip-shared.d.ts.map +1 -1
  48. package/dist/zip-shared.js +212 -1
  49. package/dist/zip-shared.js.map +1 -1
  50. package/package.json +1 -1
  51. package/src/account.ts +319 -0
  52. package/src/add-upgradeable.ts +29 -0
  53. package/src/api.ts +12 -0
  54. package/src/build-generic.ts +6 -0
  55. package/src/contract.ts +24 -2
  56. package/src/fungible.ts +1 -1
  57. package/src/generate/account.ts +21 -0
  58. package/src/generate/sources.ts +7 -0
  59. package/src/index.ts +2 -0
  60. package/src/kind.ts +1 -0
  61. package/src/print.ts +47 -18
  62. package/src/utils/compile-test.ts +1 -0
  63. package/src/zip-rust.ts +16 -4
  64. package/src/zip-shared.ts +231 -0
package/README.md CHANGED
@@ -13,6 +13,10 @@ This package provides a programmatic API. For a web interface, see https://wizar
13
13
  The following contract types are supported:
14
14
  - `fungible`
15
15
  - `nonFungible`
16
+ - `stablecoin`
17
+ - `vault`
18
+ - `governor`
19
+ - `account`
16
20
 
17
21
  Each contract type has functions/constants as defined below.
18
22
 
@@ -0,0 +1,19 @@
1
+ import { ContractBuilder } from './contract';
2
+ import type { CommonOptions } from './common-options';
3
+ export declare const policyOptions: readonly [false, "simple-threshold", "weighted-threshold"];
4
+ export type Policy = (typeof policyOptions)[number];
5
+ export declare const defaults: Required<AccountOptions>;
6
+ export declare function printAccount(opts?: AccountOptions): string;
7
+ export interface AccountOptions extends CommonOptions {
8
+ name: string;
9
+ delegatedSigners?: boolean;
10
+ ed25519Signers?: boolean;
11
+ webauthnSigners?: boolean;
12
+ policy?: Policy;
13
+ executionEntryPoint?: boolean;
14
+ upgradeable?: boolean;
15
+ }
16
+ export declare function withDefaults(opts: AccountOptions): Required<AccountOptions>;
17
+ export declare function buildAccount(opts: AccountOptions): ContractBuilder;
18
+ export declare const functions: Record<"__check_auth", import("./contract").BaseFunction>;
19
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,eAAO,MAAM,aAAa,4DAA6D,CAAC;AAExF,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAgBpD,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,cAAc,CASpC,CAAC;AAEX,wBAAgB,YAAY,CAAC,IAAI,GAAE,cAAyB,GAAG,MAAM,CAEpE;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,CAW3E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe,CA0BlE;AAuND,eAAO,MAAM,SAAS,2DAYpB,CAAC"}
@@ -0,0 +1,251 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.functions = exports.defaults = exports.policyOptions = void 0;
4
+ exports.printAccount = printAccount;
5
+ exports.withDefaults = withDefaults;
6
+ exports.buildAccount = buildAccount;
7
+ const contract_1 = require("./contract");
8
+ const add_upgradeable_1 = require("./add-upgradeable");
9
+ const define_functions_1 = require("./utils/define-functions");
10
+ const common_options_1 = require("./common-options");
11
+ const set_info_1 = require("./set-info");
12
+ const print_1 = require("./print");
13
+ const error_1 = require("./error");
14
+ exports.policyOptions = [false, 'simple-threshold', 'weighted-threshold'];
15
+ // Verifier and policy contracts are deployment arguments, not wizard inputs: one
16
+ // wasm then works on both networks. The generated code points at the Stellar
17
+ // Registry, a third-party index of deployed contracts, so that whoever deploys
18
+ // has somewhere to start looking. Vetting the contract is up to them.
19
+ const REGISTRY_HINT = [
20
+ 'Take one you trust from the Stellar Registry:',
21
+ 'https://testnet.rgstry.xyz (testnet) or https://stellar.rgstry.xyz (mainnet).',
22
+ ];
23
+ // Error code for the single runtime check the generated constructor performs.
24
+ // Kept clear of the library's ranges: `stellar_accounts` uses 3000+ for smart
25
+ // account errors and 3200+ for policy errors.
26
+ const WEIGHTS_LENGTH_MISMATCH_ERROR = 1;
27
+ exports.defaults = {
28
+ name: 'MyAccount',
29
+ delegatedSigners: true,
30
+ ed25519Signers: false,
31
+ webauthnSigners: false,
32
+ policy: 'simple-threshold',
33
+ executionEntryPoint: true,
34
+ upgradeable: false,
35
+ info: common_options_1.defaults.info,
36
+ };
37
+ function printAccount(opts = exports.defaults) {
38
+ return (0, print_1.printContract)(buildAccount(opts));
39
+ }
40
+ function withDefaults(opts) {
41
+ return {
42
+ ...opts,
43
+ ...(0, common_options_1.withCommonDefaults)(opts),
44
+ delegatedSigners: opts.delegatedSigners ?? exports.defaults.delegatedSigners,
45
+ ed25519Signers: opts.ed25519Signers ?? exports.defaults.ed25519Signers,
46
+ webauthnSigners: opts.webauthnSigners ?? exports.defaults.webauthnSigners,
47
+ policy: opts.policy ?? exports.defaults.policy,
48
+ executionEntryPoint: opts.executionEntryPoint ?? exports.defaults.executionEntryPoint,
49
+ upgradeable: opts.upgradeable ?? exports.defaults.upgradeable,
50
+ };
51
+ }
52
+ function buildAccount(opts) {
53
+ const c = new contract_1.ContractBuilder(opts.name);
54
+ const allOpts = withDefaults(opts);
55
+ // A context rule may legally hold only policies, but such an account could
56
+ // never authenticate anything, so a signer type is required here.
57
+ if (!allOpts.delegatedSigners && !allOpts.ed25519Signers && !allOpts.webauthnSigners) {
58
+ throw new error_1.OptionsError({
59
+ delegatedSigners: 'At least one signer type is required',
60
+ });
61
+ }
62
+ addBase(c, allOpts);
63
+ if (allOpts.executionEntryPoint) {
64
+ addExecutionEntryPoint(c);
65
+ }
66
+ if (allOpts.upgradeable) {
67
+ (0, add_upgradeable_1.addSelfAuthUpgradeable)(c);
68
+ }
69
+ (0, set_info_1.setInfo)(c, allOpts.info);
70
+ return c;
71
+ }
72
+ // External signer types differ only in which verifier contract validates their
73
+ // signatures, so they share a constructor argument shape.
74
+ const externalSigners = [
75
+ { option: 'ed25519Signers', prefix: 'ed25519', label: 'Ed25519' },
76
+ { option: 'webauthnSigners', prefix: 'webauthn', label: 'WebAuthn' },
77
+ ];
78
+ function contextRuleName(policy) {
79
+ switch (policy) {
80
+ case false:
81
+ return 'default';
82
+ case 'simple-threshold':
83
+ return 'multisig';
84
+ case 'weighted-threshold':
85
+ return 'weighted-multisig';
86
+ default: {
87
+ const _ = policy;
88
+ throw new Error('Unknown value for `policy`');
89
+ }
90
+ }
91
+ }
92
+ function addBase(c, opts) {
93
+ c.addUseClause('soroban_sdk', 'contract');
94
+ c.addUseClause('soroban_sdk', 'contractimpl');
95
+ c.addUseClause('soroban_sdk', 'Address');
96
+ c.addUseClause('soroban_sdk', 'Env');
97
+ c.addUseClause('soroban_sdk', 'Map');
98
+ c.addUseClause('soroban_sdk', 'String');
99
+ c.addUseClause('soroban_sdk', 'Val');
100
+ c.addUseClause('soroban_sdk', 'Vec');
101
+ c.addUseClause('soroban_sdk::auth', 'Context');
102
+ c.addUseClause('soroban_sdk::auth', 'CustomAccountInterface');
103
+ c.addUseClause('soroban_sdk::crypto', 'Hash');
104
+ c.addUseClause('stellar_accounts::smart_account', 'self', { alias: 'smart_account' });
105
+ c.addUseClause('stellar_accounts::smart_account', 'AuthPayload');
106
+ // `ContextRule` is the return type of several `SmartAccount` methods, which the
107
+ // contracttrait macro needs in scope even though the generated code never
108
+ // names it.
109
+ c.addUseClause('stellar_accounts::smart_account', 'ContextRule');
110
+ c.addUseClause('stellar_accounts::smart_account', 'ContextRuleType');
111
+ c.addUseClause('stellar_accounts::smart_account', 'Signer');
112
+ c.addUseClause('stellar_accounts::smart_account', 'SmartAccount');
113
+ c.addUseClause('stellar_accounts::smart_account', 'SmartAccountError');
114
+ // The arguments the signers are read from, in assembly order: what `weights`
115
+ // is positionally aligned with.
116
+ const signerArgs = [];
117
+ const signerLines = ['let mut signers = Vec::new(e);'];
118
+ if (opts.delegatedSigners) {
119
+ signerArgs.push('delegated_signers');
120
+ c.addConstructorArgument({ name: 'delegated_signers', type: 'Vec<Address>' });
121
+ signerLines.push('for account in delegated_signers.iter() {', ' signers.push_back(Signer::Delegated(account));', '}');
122
+ }
123
+ for (const { option, prefix, label } of externalSigners) {
124
+ if (!opts[option])
125
+ continue;
126
+ signerArgs.push(`${prefix}_keys`);
127
+ c.addUseClause('soroban_sdk', 'Bytes');
128
+ // Verifier contracts are stateless, immutable and shareable, so one address
129
+ // per signature type serves every key of that type.
130
+ c.addConstructorArgument({
131
+ name: `${prefix}_verifier`,
132
+ type: 'Address',
133
+ comment: [`${label} verifier contract, shared by every ${label} key.`, ...REGISTRY_HINT],
134
+ });
135
+ c.addConstructorArgument({ name: `${prefix}_keys`, type: 'Vec<Bytes>' });
136
+ signerLines.push(`for key in ${prefix}_keys.iter() {`, ` signers.push_back(Signer::External(${prefix}_verifier.clone(), key));`, '}');
137
+ }
138
+ // Adding the policy after the signers keeps the signer arguments first, which
139
+ // is the order `weights` is aligned with.
140
+ const policyCode = addPolicy(c, opts, signerArgs);
141
+ c.addConstructorCodeBlock([...signerLines, '']);
142
+ c.addConstructorCodeBlock([...policyCode, '']);
143
+ // The trait's `add_context_rule` requires auth from the account itself, which
144
+ // cannot be satisfied before any rule exists, so the constructor goes through
145
+ // the module-level function instead.
146
+ c.addConstructorCodeBlock([
147
+ 'smart_account::add_context_rule(',
148
+ ' e,',
149
+ ' &ContextRuleType::Default,',
150
+ ` &String::from_str(e, "${contextRuleName(opts.policy)}"),`,
151
+ ' None,',
152
+ ' &signers,',
153
+ ' &policies,',
154
+ ');',
155
+ ]);
156
+ c.addTraitFunction({
157
+ traitName: 'CustomAccountInterface',
158
+ structName: c.name,
159
+ tags: ['contractimpl'],
160
+ assocType: ['type Error = SmartAccountError;', 'type Signature = AuthPayload;'],
161
+ priority: 0,
162
+ }, exports.functions.__check_auth);
163
+ // Every `SmartAccount` method authorizes with
164
+ // `e.current_contract_address().require_auth()`, which routes back into
165
+ // `__check_auth` and the context rules, so the library defaults are kept as is.
166
+ c.addTraitImplBlock({
167
+ traitName: 'SmartAccount',
168
+ structName: c.name,
169
+ tags: ['contractimpl(contracttrait)'],
170
+ priority: 1,
171
+ });
172
+ }
173
+ /**
174
+ * Adds the policy constructor arguments and returns the code that builds the
175
+ * policy map passed to `add_context_rule`.
176
+ */
177
+ function addPolicy(c, opts, signerArgs) {
178
+ if (opts.policy === false) {
179
+ return ['let policies: Map<Address, Val> = Map::new(e);'];
180
+ }
181
+ c.addUseClause('soroban_sdk', 'IntoVal');
182
+ const lines = [];
183
+ let installParam;
184
+ if (opts.policy === 'weighted-threshold') {
185
+ c.addUseClause('soroban_sdk', 'panic_with_error');
186
+ c.addUseClause('stellar_accounts::policies::weighted_threshold', 'WeightedThresholdAccountParams');
187
+ c.addError('WeightsLengthMismatch', WEIGHTS_LENGTH_MISMATCH_ERROR);
188
+ // A flat vector rather than a `Map<Signer, u32>` so that callers never have
189
+ // to spell out `Signer` values, which is the point of the typed
190
+ // per-signer-type arguments. The assembly order fixes the signer indices,
191
+ // so whoever deploys the contract needs to know it.
192
+ c.addConstructorArgument({
193
+ name: 'weights',
194
+ type: 'Vec<u32>',
195
+ comment: signerArgs.length === 1
196
+ ? [`One weight per signer, positionally aligned with \`${signerArgs[0]}\`.`]
197
+ : [
198
+ 'One weight per signer, positionally aligned with the signers assembled',
199
+ `from ${signerArgs.join(', ')}, in that order.`,
200
+ ],
201
+ });
202
+ lines.push('if weights.len() != signers.len() {', ` panic_with_error!(e, ${c.name}Error::WeightsLengthMismatch);`, '}', '', 'let mut signer_weights: Map<Signer, u32> = Map::new(e);', 'for (i, signer) in signers.iter().enumerate() {', ' signer_weights.set(signer, weights.get_unchecked(i as u32));', '}', '');
203
+ installParam = 'WeightedThresholdAccountParams { signer_weights, threshold }';
204
+ }
205
+ else {
206
+ c.addUseClause('stellar_accounts::policies::simple_threshold', 'SimpleThresholdAccountParams');
207
+ installParam = 'SimpleThresholdAccountParams { threshold }';
208
+ }
209
+ // The threshold is a deployment argument because it is only valid relative to
210
+ // the number of signers, which is not known when the contract is generated.
211
+ c.addConstructorArgument({ name: 'threshold', type: 'u32' });
212
+ c.addConstructorArgument({
213
+ name: 'threshold_policy',
214
+ type: 'Address',
215
+ comment: [
216
+ `${opts.policy === 'weighted-threshold' ? 'Weighted threshold' : 'Simple threshold'} policy contract.`,
217
+ ...REGISTRY_HINT,
218
+ ],
219
+ });
220
+ lines.push('let mut policies: Map<Address, Val> = Map::new(e);', 'policies.set(', ' threshold_policy,', ` ${installParam}.into_val(e),`, ');');
221
+ return lines;
222
+ }
223
+ // Direct contract-to-contract calls are always authorized in Soroban, so an
224
+ // account needs this entry point to reach contracts it owns, such as its own
225
+ // policies, without the call re-entering `__check_auth`.
226
+ function addExecutionEntryPoint(c) {
227
+ c.addUseClause('stellar_accounts::smart_account', 'ExecutionEntryPoint');
228
+ // `execute` takes the target function name as a `Symbol`, which the
229
+ // contracttrait macro needs in scope.
230
+ c.addUseClause('soroban_sdk', 'Symbol');
231
+ c.addTraitImplBlock({
232
+ traitName: 'ExecutionEntryPoint',
233
+ structName: c.name,
234
+ tags: ['contractimpl(contracttrait)'],
235
+ priority: 2,
236
+ });
237
+ }
238
+ exports.functions = (0, define_functions_1.defineFunctions)({
239
+ // CustomAccountInterface Trait
240
+ __check_auth: {
241
+ args: [
242
+ { name: 'e', type: 'Env' },
243
+ { name: 'signature_payload', type: 'Hash<32>' },
244
+ { name: 'signatures', type: 'AuthPayload' },
245
+ { name: 'auth_contexts', type: 'Vec<Context>' },
246
+ ],
247
+ returns: 'Result<(), Self::Error>',
248
+ code: ['smart_account::do_check_auth(&e, &signature_payload, &signatures, &auth_contexts)'],
249
+ },
250
+ });
251
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":";;;AAsCA,oCAEC;AAYD,oCAWC;AAED,oCA0BC;AA3FD,yCAA6C;AAC7C,uDAA2D;AAC3D,+DAA2D;AAE3D,qDAAkF;AAClF,yCAAqC;AACrC,mCAAwC;AACxC,mCAAuC;AAE1B,QAAA,aAAa,GAAG,CAAC,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,CAAU,CAAC;AAIxF,iFAAiF;AACjF,6EAA6E;AAC7E,+EAA+E;AAC/E,sEAAsE;AACtE,MAAM,aAAa,GAAG;IACpB,+CAA+C;IAC/C,+EAA+E;CAChF,CAAC;AAEF,8EAA8E;AAC9E,8EAA8E;AAC9E,8CAA8C;AAC9C,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAE3B,QAAA,QAAQ,GAA6B;IAChD,IAAI,EAAE,WAAW;IACjB,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,KAAK;IACtB,MAAM,EAAE,kBAAkB;IAC1B,mBAAmB,EAAE,IAAI;IACzB,WAAW,EAAE,KAAK;IAClB,IAAI,EAAE,yBAAc,CAAC,IAAI;CACjB,CAAC;AAEX,SAAgB,YAAY,CAAC,OAAuB,gBAAQ;IAC1D,OAAO,IAAA,qBAAa,EAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAYD,SAAgB,YAAY,CAAC,IAAoB;IAC/C,OAAO;QACL,GAAG,IAAI;QACP,GAAG,IAAA,mCAAkB,EAAC,IAAI,CAAC;QAC3B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,gBAAQ,CAAC,gBAAgB;QACpE,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,gBAAQ,CAAC,cAAc;QAC9D,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,gBAAQ,CAAC,eAAe;QACjE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,gBAAQ,CAAC,MAAM;QACtC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,gBAAQ,CAAC,mBAAmB;QAC7E,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,gBAAQ,CAAC,WAAW;KACtD,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,IAAoB;IAC/C,MAAM,CAAC,GAAG,IAAI,0BAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEnC,2EAA2E;IAC3E,kEAAkE;IAClE,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QACrF,MAAM,IAAI,oBAAY,CAAC;YACrB,gBAAgB,EAAE,sCAAsC;SACzD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAEpB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAChC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,IAAA,wCAAsB,EAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,IAAA,kBAAO,EAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,+EAA+E;AAC/E,0DAA0D;AAC1D,MAAM,eAAe,GAAsF;IACzG,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACjE,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;CACrE,CAAC;AAEF,SAAS,eAAe,CAAC,MAAc;IACrC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,KAAK;YACR,OAAO,SAAS,CAAC;QACnB,KAAK,kBAAkB;YACrB,OAAO,UAAU,CAAC;QACpB,KAAK,oBAAoB;YACvB,OAAO,mBAAmB,CAAC;QAC7B,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAU,MAAM,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,CAAkB,EAAE,IAA8B;IACjE,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAC1C,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,YAAY,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,YAAY,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC;IAC9D,CAAC,CAAC,YAAY,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC,YAAY,CAAC,iCAAiC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;IACtF,CAAC,CAAC,YAAY,CAAC,iCAAiC,EAAE,aAAa,CAAC,CAAC;IACjE,gFAAgF;IAChF,0EAA0E;IAC1E,YAAY;IACZ,CAAC,CAAC,YAAY,CAAC,iCAAiC,EAAE,aAAa,CAAC,CAAC;IACjE,CAAC,CAAC,YAAY,CAAC,iCAAiC,EAAE,iBAAiB,CAAC,CAAC;IACrE,CAAC,CAAC,YAAY,CAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC,CAAC,YAAY,CAAC,iCAAiC,EAAE,cAAc,CAAC,CAAC;IAClE,CAAC,CAAC,YAAY,CAAC,iCAAiC,EAAE,mBAAmB,CAAC,CAAC;IAEvE,6EAA6E;IAC7E,gCAAgC;IAChC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,WAAW,GAAa,CAAC,gCAAgC,CAAC,CAAC;IAEjE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACrC,CAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC9E,WAAW,CAAC,IAAI,CACd,2CAA2C,EAC3C,oDAAoD,EACpD,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,SAAS;QAE5B,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACvC,4EAA4E;QAC5E,oDAAoD;QACpD,CAAC,CAAC,sBAAsB,CAAC;YACvB,IAAI,EAAE,GAAG,MAAM,WAAW;YAC1B,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC,GAAG,KAAK,uCAAuC,KAAK,OAAO,EAAE,GAAG,aAAa,CAAC;SACzF,CAAC,CAAC;QACH,CAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QACzE,WAAW,CAAC,IAAI,CACd,cAAc,MAAM,gBAAgB,EACpC,0CAA0C,MAAM,2BAA2B,EAC3E,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,0CAA0C;IAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAElD,CAAC,CAAC,uBAAuB,CAAC,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,uBAAuB,CAAC,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,8EAA8E;IAC9E,8EAA8E;IAC9E,qCAAqC;IACrC,CAAC,CAAC,uBAAuB,CAAC;QACxB,kCAAkC;QAClC,QAAQ;QACR,gCAAgC;QAChC,6BAA6B,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;QAC9D,WAAW;QACX,eAAe;QACf,gBAAgB;QAChB,IAAI;KACL,CAAC,CAAC;IAEH,CAAC,CAAC,gBAAgB,CAChB;QACE,SAAS,EAAE,wBAAwB;QACnC,UAAU,EAAE,CAAC,CAAC,IAAI;QAClB,IAAI,EAAE,CAAC,cAAc,CAAC;QACtB,SAAS,EAAE,CAAC,iCAAiC,EAAE,+BAA+B,CAAC;QAC/E,QAAQ,EAAE,CAAC;KACZ,EACD,iBAAS,CAAC,YAAY,CACvB,CAAC;IAEF,8CAA8C;IAC9C,wEAAwE;IACxE,gFAAgF;IAChF,CAAC,CAAC,iBAAiB,CAAC;QAClB,SAAS,EAAE,cAAc;QACzB,UAAU,EAAE,CAAC,CAAC,IAAI;QAClB,IAAI,EAAE,CAAC,6BAA6B,CAAC;QACrC,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,CAAkB,EAAE,IAA8B,EAAE,UAAoB;IACzF,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,gDAAgD,CAAC,CAAC;IAC5D,CAAC;IAED,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,YAAoB,CAAC;IAEzB,IAAI,IAAI,CAAC,MAAM,KAAK,oBAAoB,EAAE,CAAC;QACzC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;QAClD,CAAC,CAAC,YAAY,CAAC,gDAAgD,EAAE,gCAAgC,CAAC,CAAC;QACnG,CAAC,CAAC,QAAQ,CAAC,uBAAuB,EAAE,6BAA6B,CAAC,CAAC;QACnE,4EAA4E;QAC5E,gEAAgE;QAChE,0EAA0E;QAC1E,oDAAoD;QACpD,CAAC,CAAC,sBAAsB,CAAC;YACvB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,UAAU;YAChB,OAAO,EACL,UAAU,CAAC,MAAM,KAAK,CAAC;gBACrB,CAAC,CAAC,CAAC,sDAAsD,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC5E,CAAC,CAAC;oBACE,wEAAwE;oBACxE,QAAQ,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB;iBAChD;SACR,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CACR,qCAAqC,EACrC,4BAA4B,CAAC,CAAC,IAAI,gCAAgC,EAClE,GAAG,EACH,EAAE,EACF,yDAAyD,EACzD,iDAAiD,EACjD,kEAAkE,EAClE,GAAG,EACH,EAAE,CACH,CAAC;QACF,YAAY,GAAG,8DAA8D,CAAC;IAChF,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,YAAY,CAAC,8CAA8C,EAAE,8BAA8B,CAAC,CAAC;QAC/F,YAAY,GAAG,4CAA4C,CAAC;IAC9D,CAAC;IAED,8EAA8E;IAC9E,4EAA4E;IAC5E,CAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,sBAAsB,CAAC;QACvB,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACP,GAAG,IAAI,CAAC,MAAM,KAAK,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,kBAAkB,mBAAmB;YACtG,GAAG,aAAa;SACjB;KACF,CAAC,CAAC;IAEH,KAAK,CAAC,IAAI,CACR,oDAAoD,EACpD,eAAe,EACf,uBAAuB,EACvB,OAAO,YAAY,eAAe,EAClC,IAAI,CACL,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4EAA4E;AAC5E,6EAA6E;AAC7E,yDAAyD;AACzD,SAAS,sBAAsB,CAAC,CAAkB;IAChD,CAAC,CAAC,YAAY,CAAC,iCAAiC,EAAE,qBAAqB,CAAC,CAAC;IACzE,oEAAoE;IACpE,sCAAsC;IACtC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAExC,CAAC,CAAC,iBAAiB,CAAC;QAClB,SAAS,EAAE,qBAAqB;QAChC,UAAU,EAAE,CAAC,CAAC,IAAI;QAClB,IAAI,EAAE,CAAC,6BAA6B,CAAC;QACrC,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,SAAS,GAAG,IAAA,kCAAe,EAAC;IACvC,+BAA+B;IAC/B,YAAY,EAAE;QACZ,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE;YAC1B,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,UAAU,EAAE;YAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE;YAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE;SAChD;QACD,OAAO,EAAE,yBAAyB;QAClC,IAAI,EAAE,CAAC,mFAAmF,CAAC;KAC5F;CACF,CAAC,CAAC"}
@@ -1,4 +1,13 @@
1
1
  import type { Access } from './set-access-control';
2
2
  import type { ContractBuilder } from './contract';
3
+ /**
4
+ * Makes the contract upgradeable, authorized by the contract itself rather than
5
+ * by an access control role.
6
+ *
7
+ * Used by smart accounts, where authorization always flows through
8
+ * `__check_auth` and the account's context rules: an `Ownable`/`AccessControl`
9
+ * gate would add a second, weaker authorization path.
10
+ */
11
+ export declare function addSelfAuthUpgradeable(c: ContractBuilder): void;
3
12
  export declare function addUpgradeable(c: ContractBuilder, access: Access, explicitImplementations: boolean): void;
4
13
  //# sourceMappingURL=add-upgradeable.d.ts.map
@@ -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,EAAgB,eAAe,EAAE,MAAM,YAAY,CAAC;AAGhE,wBAAgB,cAAc,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB,EAAE,OAAO,QAyClG"}
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;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,eAAe,QAmBxD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB,EAAE,OAAO,QAyClG"}
@@ -1,9 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addSelfAuthUpgradeable = addSelfAuthUpgradeable;
3
4
  exports.addUpgradeable = addUpgradeable;
4
5
  const common_options_1 = require("./common-options");
5
6
  const set_access_control_1 = require("./set-access-control");
6
7
  const define_functions_1 = require("./utils/define-functions");
8
+ /**
9
+ * Makes the contract upgradeable, authorized by the contract itself rather than
10
+ * by an access control role.
11
+ *
12
+ * Used by smart accounts, where authorization always flows through
13
+ * `__check_auth` and the account's context rules: an `Ownable`/`AccessControl`
14
+ * gate would add a second, weaker authorization path.
15
+ */
16
+ function addSelfAuthUpgradeable(c) {
17
+ c.addUseClause('soroban_sdk', 'Address');
18
+ c.addUseClause('soroban_sdk', 'BytesN');
19
+ c.addUseClause('stellar_contract_utils::upgradeable', 'self', { alias: 'upgradeable' });
20
+ c.addUseClause('stellar_contract_utils::upgradeable', 'Upgradeable');
21
+ c.addTraitFunction({
22
+ traitName: 'Upgradeable',
23
+ structName: c.name,
24
+ tags: ['contractimpl'],
25
+ section: 'Utils',
26
+ }, {
27
+ name: 'upgrade',
28
+ args: [(0, common_options_1.getSelfArg)(), { name: 'new_wasm_hash', type: 'BytesN<32>' }, { name: '_operator', type: 'Address' }],
29
+ code: ['e.current_contract_address().require_auth()', 'upgradeable::upgrade(e, &new_wasm_hash)'],
30
+ });
31
+ }
7
32
  function addUpgradeable(c, access, explicitImplementations) {
8
33
  const functions = (0, define_functions_1.defineFunctions)({
9
34
  upgrade: {
@@ -1 +1 @@
1
- {"version":3,"file":"add-upgradeable.js","sourceRoot":"","sources":["../src/add-upgradeable.ts"],"names":[],"mappings":";;AAMA,wCAyCC;AA/CD,qDAA8C;AAE9C,6DAA4D;AAE5D,+DAA2D;AAE3D,SAAgB,cAAc,CAAC,CAAkB,EAAE,MAAc,EAAE,uBAAgC;IACjG,MAAM,SAAS,GAAG,IAAA,kCAAe,EAAC;QAChC,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC1G,IAAI,EAAE,CAAC,yCAAyC,CAAC;SAClD;QACD,uBAAuB,EAAE;YACvB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC3G,IAAI,EAAE,CAAC,yCAAyC,CAAC;SAClD;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,YAAY,CAAC,qCAAqC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IACxF,CAAC,CAAC,YAAY,CAAC,qCAAqC,EAAE,aAAa,CAAC,CAAC;IAErE,MAAM,gBAAgB,GAAG;QACvB,SAAS,EAAE,aAAa;QACxB,UAAU,EAAE,CAAC,CAAC,IAAI;QAClB,IAAI,EAAE,CAAC,cAAc,CAAC;QACtB,OAAO,EAAE,OAAO;KACjB,CAAC;IAEF,MAAM,SAAS,GAAiB,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;IAE7G,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAEhD,IAAA,yCAAoB,EAClB,CAAC,EACD,gBAAgB,EAChB,SAAS,EACT,MAAM,EACN;QACE,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,UAAU;KACnB,EACD,uBAAuB,CACxB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"add-upgradeable.js","sourceRoot":"","sources":["../src/add-upgradeable.ts"],"names":[],"mappings":";;AAcA,wDAmBC;AAED,wCAyCC;AA5ED,qDAA8C;AAE9C,6DAA4D;AAE5D,+DAA2D;AAE3D;;;;;;;GAOG;AACH,SAAgB,sBAAsB,CAAC,CAAkB;IACvD,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,YAAY,CAAC,qCAAqC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IACxF,CAAC,CAAC,YAAY,CAAC,qCAAqC,EAAE,aAAa,CAAC,CAAC;IAErE,CAAC,CAAC,gBAAgB,CAChB;QACE,SAAS,EAAE,aAAa;QACxB,UAAU,EAAE,CAAC,CAAC,IAAI;QAClB,IAAI,EAAE,CAAC,cAAc,CAAC;QACtB,OAAO,EAAE,OAAO;KACjB,EACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC3G,IAAI,EAAE,CAAC,6CAA6C,EAAE,yCAAyC,CAAC;KACjG,CACF,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,CAAkB,EAAE,MAAc,EAAE,uBAAgC;IACjG,MAAM,SAAS,GAAG,IAAA,kCAAe,EAAC;QAChC,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC1G,IAAI,EAAE,CAAC,yCAAyC,CAAC;SAClD;QACD,uBAAuB,EAAE;YACvB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC,IAAA,2BAAU,GAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC3G,IAAI,EAAE,CAAC,yCAAyC,CAAC;SAClD;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,YAAY,CAAC,qCAAqC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IACxF,CAAC,CAAC,YAAY,CAAC,qCAAqC,EAAE,aAAa,CAAC,CAAC;IAErE,MAAM,gBAAgB,GAAG;QACvB,SAAS,EAAE,aAAa;QACxB,UAAU,EAAE,CAAC,CAAC,IAAI;QAClB,IAAI,EAAE,CAAC,cAAc,CAAC;QACtB,OAAO,EAAE,OAAO;KACjB,CAAC;IAEF,MAAM,SAAS,GAAiB,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;IAE7G,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAEhD,IAAA,yCAAoB,EAClB,CAAC,EACD,gBAAgB,EAChB,SAAS,EACT,MAAM,EACN;QACE,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,UAAU;KACnB,EACD,uBAAuB,CACxB,CAAC;AACJ,CAAC"}
package/dist/api.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { CommonContractOptions, CommonOptions } from './common-options';
2
+ import type { AccountOptions } from './account';
2
3
  import type { FungibleOptions } from './fungible';
3
4
  import type { GovernorOptions } from './governor';
4
5
  import type { NonFungibleOptions } from './non-fungible';
@@ -21,11 +22,17 @@ export interface AccessControlAPI<Options extends CommonContractOptions> {
21
22
  */
22
23
  isAccessControlRequired: (opts: Partial<Options>) => boolean;
23
24
  }
25
+ /**
26
+ * A smart account authorizes everything through `__check_auth` and its context
27
+ * rules, so it has no `access` option and therefore no `AccessControlAPI`.
28
+ */
29
+ export type Account = WizardContractAPI<AccountOptions>;
24
30
  export type Fungible = WizardContractAPI<FungibleOptions> & AccessControlAPI<FungibleOptions>;
25
31
  export type Governor = WizardContractAPI<GovernorOptions> & AccessControlAPI<GovernorOptions>;
26
32
  export type NonFungible = WizardContractAPI<NonFungibleOptions> & AccessControlAPI<NonFungibleOptions>;
27
33
  export type Stablecoin = WizardContractAPI<StablecoinOptions> & AccessControlAPI<StablecoinOptions>;
28
34
  export type Vault = WizardContractAPI<VaultOptions> & AccessControlAPI<VaultOptions>;
35
+ export declare const account: Account;
29
36
  export declare const fungible: Fungible;
30
37
  export declare const governor: Governor;
31
38
  export declare const nonFungible: NonFungible;
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,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,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;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA2B5C,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,aAAa;IAC9D;;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,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;AACpG,MAAM,MAAM,KAAK,GAAG,iBAAiB,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAErF,eAAO,MAAM,QAAQ,EAAE,QAItB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,QAItB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAIzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAIxB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,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;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA4B5C,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,aAAa;IAC9D;;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;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACxD,MAAM,MAAM,QAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAC9F,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;AACpG,MAAM,MAAM,KAAK,GAAG,iBAAiB,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAErF,eAAO,MAAM,OAAO,EAAE,OAGrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,QAItB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,QAItB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAIzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,UAIxB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC"}
package/dist/api.js CHANGED
@@ -1,11 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.vault = exports.stablecoin = exports.nonFungible = exports.governor = exports.fungible = void 0;
3
+ exports.vault = exports.stablecoin = exports.nonFungible = exports.governor = exports.fungible = exports.account = void 0;
4
4
  const stablecoin_1 = require("./stablecoin");
5
5
  const vault_1 = require("./vault");
6
6
  const fungible_1 = require("./fungible");
7
7
  const governor_1 = require("./governor");
8
8
  const non_fungible_1 = require("./non-fungible");
9
+ const account_1 = require("./account");
10
+ exports.account = {
11
+ print: account_1.printAccount,
12
+ defaults: account_1.defaults,
13
+ };
9
14
  exports.fungible = {
10
15
  print: fungible_1.printFungible,
11
16
  defaults: fungible_1.defaults,
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;AAMA,6CAIsB;AACtB,mCAIiB;AACjB,yCAIoB;AACpB,yCAIoB;AACpB,iDAIwB;AA4BX,QAAA,QAAQ,GAAa;IAChC,KAAK,EAAE,wBAAa;IACpB,QAAQ,EAAE,mBAAgB;IAC1B,uBAAuB,EAAE,kCAA+B;CACzD,CAAC;AAEW,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;AAEW,QAAA,KAAK,GAAU;IAC1B,KAAK,EAAE,kBAAU;IACjB,QAAQ,EAAE,gBAAa;IACvB,uBAAuB,EAAE,+BAA4B;CACtD,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;AAOA,6CAIsB;AACtB,mCAIiB;AACjB,yCAIoB;AACpB,yCAIoB;AACpB,iDAIwB;AACxB,uCAAsE;AAiCzD,QAAA,OAAO,GAAY;IAC9B,KAAK,EAAE,sBAAY;IACnB,QAAQ,EAAE,kBAAe;CAC1B,CAAC;AAEW,QAAA,QAAQ,GAAa;IAChC,KAAK,EAAE,wBAAa;IACpB,QAAQ,EAAE,mBAAgB;IAC1B,uBAAuB,EAAE,kCAA+B;CACzD,CAAC;AAEW,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;AAEW,QAAA,KAAK,GAAU;IAC1B,KAAK,EAAE,kBAAU;IACjB,QAAQ,EAAE,gBAAa;IACvB,uBAAuB,EAAE,+BAA4B;CACtD,CAAC"}
@@ -1,9 +1,13 @@
1
+ import type { AccountOptions } from './account';
1
2
  import type { FungibleOptions } from './fungible';
2
3
  import type { GovernorOptions } from './governor';
3
4
  import type { NonFungibleOptions } from './non-fungible';
4
5
  import type { StablecoinOptions } from './stablecoin';
5
6
  import type { VaultOptions } from './vault';
6
7
  export interface KindedOptions {
8
+ Account: {
9
+ kind: 'Account';
10
+ } & AccountOptions;
7
11
  Fungible: {
8
12
  kind: 'Fungible';
9
13
  } & FungibleOptions;
@@ -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,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG,eAAe,CAAC;IACjD,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;IACvD,KAAK,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,YAAY,CAAC;CACzC;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,aAAa,CAAC,CAAC;AAEhE,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,wEAsBhD"}
1
+ {"version":3,"file":"build-generic.d.ts","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,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;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG,cAAc,CAAC;IAC9C,QAAQ,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG,eAAe,CAAC;IACjD,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;IACvD,KAAK,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,YAAY,CAAC;CACzC;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,aAAa,CAAC,CAAC;AAEhE,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,wEAyBhD"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildGeneric = buildGeneric;
4
+ const account_1 = require("./account");
4
5
  const fungible_1 = require("./fungible");
5
6
  const governor_1 = require("./governor");
6
7
  const non_fungible_1 = require("./non-fungible");
@@ -8,6 +9,8 @@ const stablecoin_1 = require("./stablecoin");
8
9
  const vault_1 = require("./vault");
9
10
  function buildGeneric(opts) {
10
11
  switch (opts.kind) {
12
+ case 'Account':
13
+ return (0, account_1.buildAccount)(opts);
11
14
  case 'Fungible':
12
15
  return (0, fungible_1.buildFungible)(opts);
13
16
  case 'Governor':
@@ -1 +1 @@
1
- {"version":3,"file":"build-generic.js","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":";;AAqBA,oCAsBC;AA1CD,yCAA2C;AAE3C,yCAA2C;AAE3C,iDAAkD;AAElD,6CAA+C;AAE/C,mCAAqC;AAYrC,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,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,KAAK,OAAO;YACV,OAAO,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC;QAE1B,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":";;AAwBA,oCAyBC;AAhDD,uCAAyC;AAEzC,yCAA2C;AAE3C,yCAA2C;AAE3C,iDAAkD;AAElD,6CAA+C;AAE/C,mCAAqC;AAarC,SAAgB,YAAY,CAAC,IAAoB;IAC/C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,IAAA,sBAAY,EAAC,IAAI,CAAC,CAAC;QAE5B,KAAK,UAAU;YACb,OAAO,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC;QAE7B,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,KAAK,OAAO;YACV,OAAO,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC;QAE1B,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,CAAC,GAAU,IAAI,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -34,7 +34,11 @@ export interface BaseTraitImplBlock {
34
34
  traitName: string;
35
35
  structName: string;
36
36
  tags: string[];
37
- assocType?: string;
37
+ /**
38
+ * Associated type bindings for the impl block. An array declares several of
39
+ * them, one per line (e.g. `CustomAccountInterface`'s `Error` and `Signature`).
40
+ */
41
+ assocType?: string | string[];
38
42
  section?: string;
39
43
  /**
40
44
  * Priority for which trait to print first.
@@ -64,6 +68,12 @@ export interface Variable {
64
68
  export interface Argument {
65
69
  name: string;
66
70
  type?: string;
71
+ /**
72
+ * Comment lines printed above the argument. Forces one argument per line, so
73
+ * only worth using where the caller needs guidance that the type cannot carry,
74
+ * such as where to obtain an address.
75
+ */
76
+ comment?: string[];
67
77
  }
68
78
  export declare class ContractBuilder implements Contract {
69
79
  readonly name: string;
@@ -97,7 +107,7 @@ export declare class ContractBuilder implements Contract {
97
107
  addFreeFunction(fn: BaseFunction): ContractFunction;
98
108
  addTraitForEachFunctions(baseTrait: BaseTraitImplBlock, functions: Record<string, BaseFunction>): void;
99
109
  addTraitFunction(baseTrait: BaseTraitImplBlock, fn: BaseFunction): ContractFunction;
100
- overrideAssocType(traitName: string, newAssocType: string): void;
110
+ overrideAssocType(traitName: string, newAssocType: string | string[]): void;
101
111
  private getFunctionSignature;
102
112
  private getOrCreateFunction;
103
113
  addFunctionCodeBefore(fn: BaseFunction, codeBefore: string[], baseTrait?: BaseTraitImplBlock): void;
@@ -106,6 +116,15 @@ export declare class ContractBuilder implements Contract {
106
116
  addTopLevelDeclaration(lines: string[]): void;
107
117
  addConstructorArgument(arg: Argument): void;
108
118
  addConstructorCode(code: string): void;
119
+ /**
120
+ * Appends a block of constructor code verbatim, keeping duplicate lines.
121
+ *
122
+ * `addConstructorCode` deduplicates, which is right for the idempotent setup
123
+ * statements each generator contributes, but wrong for a multi-line block
124
+ * where lines such as `}` legitimately repeat. Empty entries separate groups
125
+ * and are printed as blank lines.
126
+ */
127
+ addConstructorCodeBlock(lines: string[]): void;
109
128
  addDerives(derive: string): void;
110
129
  addDocumentation(description: string): void;
111
130
  addContractMetadata(metadata: {
@@ -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
@@ -179,6 +179,17 @@ class ContractBuilder {
179
179
  }
180
180
  this.constructorCode.push(code);
181
181
  }
182
+ /**
183
+ * Appends a block of constructor code verbatim, keeping duplicate lines.
184
+ *
185
+ * `addConstructorCode` deduplicates, which is right for the idempotent setup
186
+ * statements each generator contributes, but wrong for a multi-line block
187
+ * where lines such as `}` legitimately repeat. Empty entries separate groups
188
+ * and are printed as blank lines.
189
+ */
190
+ addConstructorCodeBlock(lines) {
191
+ this.constructorCode.push(...lines);
192
+ }
182
193
  addDerives(derive) {
183
194
  this.derivesSet.add(derive);
184
195
  }
@@ -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 +1 @@
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;AAW9D,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAarC,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,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,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,CAY7E;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAE/E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAyCpE;AAiJD,eAAO,MAAM,cAAc,QAAkB,CAAC;AAkB9C;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA+B1E;AAED,eAAO,MAAM,SAAS,sNA0FpB,CAAC"}
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;AAW9D,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAarC,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,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,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,CAY7E;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAE/E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAyCpE;AAiJD,eAAO,MAAM,cAAc,QAAoB,CAAC;AAkBhD;;;;;;;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
@@ -177,7 +177,7 @@ function addBurnable(c, votes, pausable, explicitImplementations) {
177
177
  c.addTraitImplBlock(fungibleBurnableTrait);
178
178
  }
179
179
  }
180
- exports.premintPattern = /^(\d*\.?\d*)$/;
180
+ exports.premintPattern = /^\d*(?:\.\d*)?$/;
181
181
  function addPremint(c, amount, decimals, votes) {
182
182
  if (amount !== undefined && amount !== '0') {
183
183
  if (!exports.premintPattern.test(amount)) {