@openzeppelin/wizard-stellar 0.6.2 → 0.6.4
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.
- package/README.md +4 -0
- package/dist/account.d.ts +19 -0
- package/dist/account.d.ts.map +1 -0
- package/dist/account.js +251 -0
- package/dist/account.js.map +1 -0
- package/dist/add-upgradeable.d.ts +9 -0
- package/dist/add-upgradeable.d.ts.map +1 -1
- package/dist/add-upgradeable.js +25 -0
- package/dist/add-upgradeable.js.map +1 -1
- package/dist/api.d.ts +10 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +12 -1
- package/dist/api.js.map +1 -1
- package/dist/build-generic.d.ts +8 -0
- package/dist/build-generic.d.ts.map +1 -1
- package/dist/build-generic.js +6 -0
- package/dist/build-generic.js.map +1 -1
- package/dist/contract.d.ts +21 -2
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +11 -0
- package/dist/contract.js.map +1 -1
- package/dist/generate/account.d.ts +3 -0
- package/dist/generate/account.d.ts.map +1 -0
- package/dist/generate/account.js +21 -0
- package/dist/generate/account.js.map +1 -0
- package/dist/generate/sources.d.ts.map +1 -1
- package/dist/generate/sources.js +12 -0
- package/dist/generate/sources.js.map +1 -1
- package/dist/generate/vault.d.ts +3 -0
- package/dist/generate/vault.d.ts.map +1 -0
- package/dist/generate/vault.js +21 -0
- package/dist/generate/vault.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- package/dist/kind.js +2 -0
- package/dist/kind.js.map +1 -1
- package/dist/print.js +39 -9
- package/dist/print.js.map +1 -1
- package/dist/utils/compile-test.d.ts.map +1 -1
- package/dist/utils/compile-test.js +5 -1
- package/dist/utils/compile-test.js.map +1 -1
- package/dist/vault.d.ts +16 -0
- package/dist/vault.d.ts.map +1 -0
- package/dist/vault.js +334 -0
- package/dist/vault.js.map +1 -0
- package/dist/zip-rust.d.ts.map +1 -1
- package/dist/zip-rust.js +14 -1
- package/dist/zip-rust.js.map +1 -1
- package/dist/zip-shared.d.ts +15 -0
- package/dist/zip-shared.d.ts.map +1 -1
- package/dist/zip-shared.js +271 -1
- package/dist/zip-shared.js.map +1 -1
- package/package.json +1 -1
- package/src/account.ts +319 -0
- package/src/add-upgradeable.ts +29 -0
- package/src/api.ts +25 -0
- package/src/build-generic.ts +12 -0
- package/src/contract.ts +24 -2
- package/src/generate/account.ts +21 -0
- package/src/generate/sources.ts +14 -0
- package/src/generate/vault.ts +21 -0
- package/src/index.ts +4 -0
- package/src/kind.ts +2 -0
- package/src/print.ts +47 -18
- package/src/utils/compile-test.ts +6 -1
- package/src/vault.ts +378 -0
- package/src/zip-rust.ts +17 -1
- package/src/zip-shared.ts +293 -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"}
|
package/dist/account.js
ADDED
|
@@ -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":"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"}
|
|
@@ -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"}
|
package/dist/add-upgradeable.js
CHANGED
|
@@ -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":";;
|
|
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,8 +1,10 @@
|
|
|
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';
|
|
5
6
|
import type { StablecoinOptions } from './stablecoin';
|
|
7
|
+
import type { VaultOptions } from './vault';
|
|
6
8
|
export interface WizardContractAPI<Options extends CommonOptions> {
|
|
7
9
|
/**
|
|
8
10
|
* Returns a string representation of a contract generated using the provided options. If opts is not provided, uses `defaults`.
|
|
@@ -20,12 +22,20 @@ export interface AccessControlAPI<Options extends CommonContractOptions> {
|
|
|
20
22
|
*/
|
|
21
23
|
isAccessControlRequired: (opts: Partial<Options>) => boolean;
|
|
22
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>;
|
|
23
30
|
export type Fungible = WizardContractAPI<FungibleOptions> & AccessControlAPI<FungibleOptions>;
|
|
24
31
|
export type Governor = WizardContractAPI<GovernorOptions> & AccessControlAPI<GovernorOptions>;
|
|
25
32
|
export type NonFungible = WizardContractAPI<NonFungibleOptions> & AccessControlAPI<NonFungibleOptions>;
|
|
26
33
|
export type Stablecoin = WizardContractAPI<StablecoinOptions> & AccessControlAPI<StablecoinOptions>;
|
|
34
|
+
export type Vault = WizardContractAPI<VaultOptions> & AccessControlAPI<VaultOptions>;
|
|
35
|
+
export declare const account: Account;
|
|
27
36
|
export declare const fungible: Fungible;
|
|
28
37
|
export declare const governor: Governor;
|
|
29
38
|
export declare const nonFungible: NonFungible;
|
|
30
39
|
export declare const stablecoin: Stablecoin;
|
|
40
|
+
export declare const vault: Vault;
|
|
31
41
|
//# 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,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;
|
|
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,10 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
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
|
+
const vault_1 = require("./vault");
|
|
5
6
|
const fungible_1 = require("./fungible");
|
|
6
7
|
const governor_1 = require("./governor");
|
|
7
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
|
+
};
|
|
8
14
|
exports.fungible = {
|
|
9
15
|
print: fungible_1.printFungible,
|
|
10
16
|
defaults: fungible_1.defaults,
|
|
@@ -25,4 +31,9 @@ exports.stablecoin = {
|
|
|
25
31
|
defaults: stablecoin_1.defaults,
|
|
26
32
|
isAccessControlRequired: stablecoin_1.isAccessControlRequired,
|
|
27
33
|
};
|
|
34
|
+
exports.vault = {
|
|
35
|
+
print: vault_1.printVault,
|
|
36
|
+
defaults: vault_1.defaults,
|
|
37
|
+
isAccessControlRequired: vault_1.isAccessControlRequired,
|
|
38
|
+
};
|
|
28
39
|
//# 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":";;;
|
|
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"}
|
package/dist/build-generic.d.ts
CHANGED
|
@@ -1,8 +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';
|
|
6
|
+
import type { VaultOptions } from './vault';
|
|
5
7
|
export interface KindedOptions {
|
|
8
|
+
Account: {
|
|
9
|
+
kind: 'Account';
|
|
10
|
+
} & AccountOptions;
|
|
6
11
|
Fungible: {
|
|
7
12
|
kind: 'Fungible';
|
|
8
13
|
} & FungibleOptions;
|
|
@@ -15,6 +20,9 @@ export interface KindedOptions {
|
|
|
15
20
|
Stablecoin: {
|
|
16
21
|
kind: 'Stablecoin';
|
|
17
22
|
} & StablecoinOptions;
|
|
23
|
+
Vault: {
|
|
24
|
+
kind: 'Vault';
|
|
25
|
+
} & VaultOptions;
|
|
18
26
|
}
|
|
19
27
|
export type GenericOptions = KindedOptions[keyof KindedOptions];
|
|
20
28
|
export declare function buildGeneric(opts: GenericOptions): import("./contract").Contract | import("./contract").ContractBuilder;
|
|
@@ -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;
|
|
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"}
|
package/dist/build-generic.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
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");
|
|
7
8
|
const stablecoin_1 = require("./stablecoin");
|
|
9
|
+
const vault_1 = require("./vault");
|
|
8
10
|
function buildGeneric(opts) {
|
|
9
11
|
switch (opts.kind) {
|
|
12
|
+
case 'Account':
|
|
13
|
+
return (0, account_1.buildAccount)(opts);
|
|
10
14
|
case 'Fungible':
|
|
11
15
|
return (0, fungible_1.buildFungible)(opts);
|
|
12
16
|
case 'Governor':
|
|
@@ -15,6 +19,8 @@ function buildGeneric(opts) {
|
|
|
15
19
|
return (0, non_fungible_1.buildNonFungible)(opts);
|
|
16
20
|
case 'Stablecoin':
|
|
17
21
|
return (0, stablecoin_1.buildStablecoin)(opts);
|
|
22
|
+
case 'Vault':
|
|
23
|
+
return (0, vault_1.buildVault)(opts);
|
|
18
24
|
default: {
|
|
19
25
|
const _ = opts;
|
|
20
26
|
throw new Error('Unknown kind');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-generic.js","sourceRoot":"","sources":["../src/build-generic.ts"],"names":[],"mappings":";;
|
|
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"}
|
package/dist/contract.d.ts
CHANGED
|
@@ -34,7 +34,11 @@ export interface BaseTraitImplBlock {
|
|
|
34
34
|
traitName: string;
|
|
35
35
|
structName: string;
|
|
36
36
|
tags: string[];
|
|
37
|
-
|
|
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: {
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,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,oBAAoB,EAAE,MAAM,EAAE,EAAE,CAAC;IACjC,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;
|
|
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
|
}
|
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":";;;AAAA,6DAAoE;
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
|