@algorandfoundation/algokit-client-generator 2.6.0 → 3.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.mjs +4 -0
- package/cli.d.ts +0 -1
- package/cli.js +47 -49
- package/cli.js.map +1 -1
- package/cli.mjs +56 -0
- package/cli.mjs.map +1 -0
- package/client/app-types.d.ts +0 -1
- package/client/app-types.js +92 -97
- package/client/app-types.js.map +1 -1
- package/client/app-types.mjs +135 -0
- package/client/app-types.mjs.map +1 -0
- package/client/call-client.d.ts +0 -1
- package/client/call-client.js +145 -143
- package/client/call-client.js.map +1 -1
- package/client/call-client.mjs +320 -0
- package/client/call-client.mjs.map +1 -0
- package/client/call-composer-types.d.ts +0 -1
- package/client/call-composer-types.js +60 -62
- package/client/call-composer-types.js.map +1 -1
- package/client/call-composer-types.mjs +122 -0
- package/client/call-composer-types.mjs.map +1 -0
- package/client/call-composer.d.ts +0 -1
- package/client/call-composer.js +76 -78
- package/client/call-composer.js.map +1 -1
- package/client/call-composer.mjs +128 -0
- package/client/call-composer.mjs.map +1 -0
- package/client/call-factory.d.ts +0 -1
- package/client/call-factory.js +62 -62
- package/client/call-factory.js.map +1 -1
- package/client/call-factory.mjs +121 -0
- package/client/call-factory.mjs.map +1 -0
- package/client/deploy-types.d.ts +1 -2
- package/client/deploy-types.js +42 -40
- package/client/deploy-types.js.map +1 -1
- package/client/deploy-types.mjs +94 -0
- package/client/deploy-types.mjs.map +1 -0
- package/client/generate.d.ts +2 -2
- package/client/generate.js +28 -27
- package/client/generate.js.map +1 -1
- package/client/generate.mjs +36 -0
- package/client/generate.mjs.map +1 -0
- package/client/generator-context.d.ts +7 -2
- package/client/generator-context.js +39 -38
- package/client/generator-context.js.map +1 -1
- package/client/generator-context.mjs +21 -0
- package/client/generator-context.mjs.map +1 -0
- package/client/helpers/get-call-config-summary.d.ts +1 -2
- package/client/helpers/get-call-config-summary.js +8 -25
- package/client/helpers/get-call-config-summary.js.map +1 -1
- package/client/helpers/get-call-config-summary.mjs +55 -0
- package/client/helpers/get-call-config-summary.mjs.map +1 -0
- package/client/helpers/get-equivalent-type.d.ts +0 -1
- package/client/helpers/get-equivalent-type.js +21 -20
- package/client/helpers/get-equivalent-type.js.map +1 -1
- package/client/helpers/get-equivalent-type.mjs +57 -0
- package/client/helpers/get-equivalent-type.mjs.map +1 -0
- package/client/imports.d.ts +0 -1
- package/client/imports.js +4 -4
- package/client/imports.js.map +1 -1
- package/client/imports.mjs +28 -0
- package/client/imports.mjs.map +1 -0
- package/client/utility-types.d.ts +0 -1
- package/client/utility-types.js +27 -25
- package/client/utility-types.js.map +1 -1
- package/client/utility-types.mjs +48 -0
- package/client/utility-types.mjs.map +1 -0
- package/dev.d.ts +0 -1
- package/index.d.ts +0 -1
- package/index.js +14 -12
- package/index.js.map +1 -1
- package/index.mjs +4 -0
- package/index.mjs.map +1 -0
- package/output/writer.d.ts +0 -1
- package/output/writer.js +45 -38
- package/output/writer.js.map +1 -1
- package/output/writer.mjs +140 -0
- package/output/writer.mjs.map +1 -0
- package/package.json +9 -4
- package/schema/application.schema.json.js +375 -0
- package/schema/application.schema.json.js.map +1 -0
- package/schema/application.schema.json.mjs +364 -0
- package/schema/application.schema.json.mjs.map +1 -0
- package/schema/contract.schema.json.js +160 -0
- package/schema/contract.schema.json.js.map +1 -0
- package/schema/contract.schema.json.mjs +149 -0
- package/schema/contract.schema.json.mjs.map +1 -0
- package/schema/load.d.ts +0 -1
- package/schema/load.js +16 -41
- package/schema/load.js.map +1 -1
- package/schema/load.mjs +23 -0
- package/schema/load.mjs.map +1 -0
- package/tests/approval-tests.spec.d.ts +0 -1
- package/tests/util.d.ts +1 -0
- package/util/boom.d.ts +0 -1
- package/util/boom.js +4 -4
- package/util/boom.js.map +1 -1
- package/util/boom.mjs +6 -0
- package/util/boom.mjs.map +1 -0
- package/util/color-console.d.ts +0 -1
- package/util/color-console.js +12 -13
- package/util/color-console.js.map +1 -1
- package/util/color-console.mjs +17 -0
- package/util/color-console.mjs.map +1 -0
- package/util/not-falsy.d.ts +0 -1
- package/util/sanitization.d.ts +12 -6
- package/util/sanitization.js +54 -15
- package/util/sanitization.js.map +1 -1
- package/util/sanitization.mjs +54 -0
- package/util/sanitization.mjs.map +1 -0
- package/bin/cli.js +0 -4
- package/cli.d.ts.map +0 -1
- package/client/app-types.d.ts.map +0 -1
- package/client/call-client.d.ts.map +0 -1
- package/client/call-composer-types.d.ts.map +0 -1
- package/client/call-composer.d.ts.map +0 -1
- package/client/call-factory.d.ts.map +0 -1
- package/client/deploy-types.d.ts.map +0 -1
- package/client/generate.d.ts.map +0 -1
- package/client/generator-context.d.ts.map +0 -1
- package/client/helpers/get-call-config-summary.d.ts.map +0 -1
- package/client/helpers/get-equivalent-type.d.ts.map +0 -1
- package/client/imports.d.ts.map +0 -1
- package/client/utility-types.d.ts.map +0 -1
- package/dev.d.ts.map +0 -1
- package/dev.js +0 -5
- package/dev.js.map +0 -1
- package/index.d.ts.map +0 -1
- package/output/writer.d.ts.map +0 -1
- package/schema/application.schema.json +0 -354
- package/schema/contract.schema.json +0 -139
- package/schema/load.d.ts.map +0 -1
- package/tests/approval-tests.spec.d.ts.map +0 -1
- package/tests/approval-tests.spec.js +0 -24
- package/tests/approval-tests.spec.js.map +0 -1
- package/util/boom.d.ts.map +0 -1
- package/util/color-console.d.ts.map +0 -1
- package/util/not-falsy.d.ts.map +0 -1
- package/util/not-falsy.js +0 -6
- package/util/not-falsy.js.map +0 -1
- package/util/sanitization.d.ts.map +0 -1
package/client/call-client.js
CHANGED
|
@@ -1,62 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var algokit = require('@algorandfoundation/algokit-utils');
|
|
4
|
+
var writer = require('../output/writer.js');
|
|
5
|
+
var getCallConfigSummary = require('./helpers/get-call-config-summary.js');
|
|
6
|
+
var deployTypes = require('./deploy-types.js');
|
|
7
|
+
var callComposer = require('./call-composer.js');
|
|
8
|
+
|
|
9
|
+
function _interopNamespaceDefault(e) {
|
|
10
|
+
var n = Object.create(null);
|
|
11
|
+
if (e) {
|
|
12
|
+
Object.keys(e).forEach(function (k) {
|
|
13
|
+
if (k !== 'default') {
|
|
14
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return e[k]; }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
7
21
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.callClient = void 0;
|
|
27
|
-
const algokit = __importStar(require("@algorandfoundation/algokit-utils"));
|
|
28
|
-
const writer_1 = require("../output/writer");
|
|
29
|
-
const sanitization_1 = require("../util/sanitization");
|
|
30
|
-
const get_call_config_summary_1 = require("./helpers/get-call-config-summary");
|
|
31
|
-
const deploy_types_1 = require("./deploy-types");
|
|
32
|
-
const call_composer_1 = require("./call-composer");
|
|
22
|
+
n.default = e;
|
|
23
|
+
return Object.freeze(n);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var algokit__namespace = /*#__PURE__*/_interopNamespaceDefault(algokit);
|
|
27
|
+
|
|
33
28
|
function* callClient(ctx) {
|
|
34
29
|
const { app, name } = ctx;
|
|
35
|
-
yield*
|
|
36
|
-
yield `export class ${
|
|
37
|
-
yield
|
|
38
|
-
yield*
|
|
30
|
+
yield* writer.jsDoc(`A client to make calls to the ${app.contract.name} smart contract`);
|
|
31
|
+
yield `export class ${ctx.sanitizer.makeSafeTypeIdentifier(app.contract.name)}Client {`;
|
|
32
|
+
yield writer.IncIndent;
|
|
33
|
+
yield* writer.jsDoc(`The underlying \`ApplicationClient\` for when you want to have more flexibility`);
|
|
39
34
|
yield 'public readonly appClient: ApplicationClient';
|
|
40
|
-
yield
|
|
35
|
+
yield writer.NewLine;
|
|
41
36
|
yield `private readonly sender: SendTransactionFrom | undefined`;
|
|
42
|
-
yield
|
|
43
|
-
yield*
|
|
44
|
-
description: `Creates a new instance of \`${
|
|
37
|
+
yield writer.NewLine;
|
|
38
|
+
yield* writer.jsDoc({
|
|
39
|
+
description: `Creates a new instance of \`${ctx.sanitizer.makeSafeTypeIdentifier(app.contract.name)}Client\``,
|
|
45
40
|
params: {
|
|
46
41
|
appDetails: 'appDetails The details to identify the app to deploy',
|
|
47
42
|
algod: 'An algod client instance',
|
|
48
43
|
},
|
|
49
44
|
});
|
|
50
45
|
yield `constructor(appDetails: AppDetails, private algod: Algodv2) {`;
|
|
51
|
-
yield
|
|
46
|
+
yield writer.IncIndent;
|
|
52
47
|
yield `this.sender = appDetails.sender`;
|
|
53
48
|
yield 'this.appClient = algokit.getAppClient({';
|
|
54
|
-
yield*
|
|
49
|
+
yield* writer.indent('...appDetails,', 'app: APP_SPEC');
|
|
55
50
|
yield '}, algod)';
|
|
56
|
-
yield
|
|
51
|
+
yield writer.DecIndent;
|
|
57
52
|
yield '}';
|
|
58
|
-
yield
|
|
59
|
-
yield*
|
|
53
|
+
yield writer.NewLine;
|
|
54
|
+
yield* writer.jsDoc({
|
|
60
55
|
description: 'Checks for decode errors on the AppCallTransactionResult and maps the return value to the specified generic type',
|
|
61
56
|
params: {
|
|
62
57
|
result: 'The AppCallTransactionResult to be mapped',
|
|
@@ -64,20 +59,20 @@ function* callClient(ctx) {
|
|
|
64
59
|
},
|
|
65
60
|
returns: 'The smart contract response with an updated return value',
|
|
66
61
|
});
|
|
67
|
-
yield*
|
|
68
|
-
yield
|
|
62
|
+
yield* writer.inline(`protected mapReturnValue<TReturn, TResult extends AppCallTransactionResult = AppCallTransactionResult>`, `(result: AppCallTransactionResult, returnValueFormatter?: (value: any) => TReturn): `, `AppCallTransactionResultOfType<TReturn> & TResult {`);
|
|
63
|
+
yield writer.IncIndent;
|
|
69
64
|
yield `if(result.return?.decodeError) {`;
|
|
70
|
-
yield*
|
|
65
|
+
yield* writer.indent(`throw result.return.decodeError`);
|
|
71
66
|
yield `}`;
|
|
72
67
|
yield `const returnValue = result.return?.returnValue !== undefined && returnValueFormatter !== undefined`;
|
|
73
|
-
yield
|
|
68
|
+
yield writer.IncIndent;
|
|
74
69
|
yield `? returnValueFormatter(result.return.returnValue)`;
|
|
75
70
|
yield `: result.return?.returnValue as TReturn | undefined`;
|
|
76
71
|
yield `return { ...result, return: returnValue } as AppCallTransactionResultOfType<TReturn> & TResult`;
|
|
77
|
-
yield
|
|
78
|
-
yield
|
|
79
|
-
yield
|
|
80
|
-
yield*
|
|
72
|
+
yield writer.DecIndent;
|
|
73
|
+
yield writer.DecIndentAndCloseBlock;
|
|
74
|
+
yield writer.NewLine;
|
|
75
|
+
yield* writer.jsDoc({
|
|
81
76
|
description: 'Calls the ABI method with the matching signature using an onCompletion code of NO_OP',
|
|
82
77
|
params: {
|
|
83
78
|
typedCallParams: 'An object containing the method signature, args, and any other relevant parameters',
|
|
@@ -86,21 +81,20 @@ function* callClient(ctx) {
|
|
|
86
81
|
returns: 'The result of the smart contract call',
|
|
87
82
|
});
|
|
88
83
|
yield `public async call<TSignature extends keyof ${name}['methods']>(typedCallParams: TypedCallParams<TSignature>, returnValueFormatter?: (value: any) => MethodReturn<TSignature>) {`;
|
|
89
|
-
yield
|
|
84
|
+
yield writer.IncIndent;
|
|
90
85
|
yield `return this.mapReturnValue<MethodReturn<TSignature>>(await this.appClient.call(typedCallParams), returnValueFormatter)`;
|
|
91
|
-
yield
|
|
92
|
-
yield
|
|
86
|
+
yield writer.DecIndentAndCloseBlock;
|
|
87
|
+
yield writer.NewLine;
|
|
93
88
|
yield* opMethods(ctx);
|
|
94
89
|
yield* clearState(ctx);
|
|
95
90
|
yield* noopMethods(ctx);
|
|
96
91
|
yield* getStateMethods(ctx);
|
|
97
|
-
yield*
|
|
98
|
-
yield
|
|
92
|
+
yield* callComposer.composeMethod(ctx);
|
|
93
|
+
yield writer.DecIndentAndCloseBlock;
|
|
99
94
|
}
|
|
100
|
-
exports.callClient = callClient;
|
|
101
95
|
function* opMethods(ctx) {
|
|
102
96
|
const { app, callConfig, name } = ctx;
|
|
103
|
-
yield*
|
|
97
|
+
yield* writer.jsDoc({
|
|
104
98
|
description: `Idempotently deploys the ${app.contract.name} smart contract.`,
|
|
105
99
|
params: {
|
|
106
100
|
params: 'The arguments for the contract calls and any additional parameters for the call',
|
|
@@ -108,7 +102,7 @@ function* opMethods(ctx) {
|
|
|
108
102
|
returns: 'The deployment result',
|
|
109
103
|
});
|
|
110
104
|
yield `public deploy(params: ${name}DeployArgs & AppClientDeployCoreParams = {}): ReturnType<ApplicationClient['deploy']> {`;
|
|
111
|
-
yield
|
|
105
|
+
yield writer.IncIndent;
|
|
112
106
|
if (callConfig.createMethods.length)
|
|
113
107
|
yield `const createArgs = params.createCall?.(${name}CallFactory.create)`;
|
|
114
108
|
if (callConfig.updateMethods.length)
|
|
@@ -116,7 +110,7 @@ function* opMethods(ctx) {
|
|
|
116
110
|
if (callConfig.deleteMethods.length)
|
|
117
111
|
yield `const deleteArgs = params.deleteCall?.(${name}CallFactory.delete)`;
|
|
118
112
|
yield `return this.appClient.deploy({`;
|
|
119
|
-
yield
|
|
113
|
+
yield writer.IncIndent;
|
|
120
114
|
yield `...params,`;
|
|
121
115
|
if (callConfig.updateMethods.length)
|
|
122
116
|
yield 'updateArgs,';
|
|
@@ -126,18 +120,17 @@ function* opMethods(ctx) {
|
|
|
126
120
|
yield 'createArgs,';
|
|
127
121
|
yield `createOnCompleteAction: createArgs?.onCompleteAction,`;
|
|
128
122
|
}
|
|
129
|
-
yield
|
|
123
|
+
yield writer.DecIndent;
|
|
130
124
|
yield `})`;
|
|
131
|
-
yield
|
|
132
|
-
yield
|
|
125
|
+
yield writer.DecIndentAndCloseBlock;
|
|
126
|
+
yield writer.NewLine;
|
|
133
127
|
yield* operationMethod(ctx, `Creates a new instance of the ${app.contract.name} smart contract`, callConfig.createMethods, 'create', true);
|
|
134
128
|
yield* operationMethod(ctx, `Updates an existing instance of the ${app.contract.name} smart contract`, callConfig.updateMethods, 'update', true);
|
|
135
129
|
yield* operationMethod(ctx, `Deletes an existing instance of the ${app.contract.name} smart contract`, callConfig.deleteMethods, 'delete');
|
|
136
130
|
yield* operationMethod(ctx, `Opts the user into an existing instance of the ${app.contract.name} smart contract`, callConfig.optInMethods, 'optIn');
|
|
137
131
|
yield* operationMethod(ctx, `Makes a close out call to an existing instance of the ${app.contract.name} smart contract`, callConfig.closeOutMethods, 'closeOut');
|
|
138
132
|
}
|
|
139
|
-
function* operationMethod({ app, methodSignatureToUniqueName, name }, description, methods, verb, includeCompilation) {
|
|
140
|
-
var _a;
|
|
133
|
+
function* operationMethod({ app, methodSignatureToUniqueName, name, sanitizer }, description, methods, verb, includeCompilation) {
|
|
141
134
|
let responseTypeGenericParam;
|
|
142
135
|
switch (verb) {
|
|
143
136
|
case 'create':
|
|
@@ -151,49 +144,52 @@ function* operationMethod({ app, methodSignatureToUniqueName, name }, descriptio
|
|
|
151
144
|
break;
|
|
152
145
|
}
|
|
153
146
|
if (methods.length) {
|
|
154
|
-
yield*
|
|
147
|
+
yield* writer.jsDoc(`Gets available ${verb} methods`);
|
|
155
148
|
yield `public get ${verb}() {`;
|
|
156
|
-
yield
|
|
149
|
+
yield writer.IncIndent;
|
|
157
150
|
yield `const $this = this`;
|
|
158
151
|
yield `return {`;
|
|
159
|
-
yield
|
|
152
|
+
yield writer.IncIndent;
|
|
160
153
|
for (const methodSig of methods) {
|
|
161
|
-
const onComplete = verb === 'create' ?
|
|
162
|
-
if (methodSig ===
|
|
163
|
-
yield*
|
|
154
|
+
const onComplete = verb === 'create' ? deployTypes.getCreateOnCompleteOptions(methodSig, app) : undefined;
|
|
155
|
+
if (methodSig === getCallConfigSummary.BARE_CALL) {
|
|
156
|
+
yield* writer.jsDoc({
|
|
164
157
|
description: `${description} using a bare call.`,
|
|
165
158
|
params: {
|
|
166
159
|
args: `The arguments for the bare call`,
|
|
167
160
|
},
|
|
168
161
|
returns: `The ${verb} result`,
|
|
169
162
|
});
|
|
170
|
-
yield `async bare(args: BareCallArgs & AppClientCallCoreParams ${includeCompilation ? '& AppClientCompilationParams ' : ''}& CoreAppCallArgs${
|
|
171
|
-
yield*
|
|
163
|
+
yield `async bare(args: BareCallArgs & AppClientCallCoreParams ${includeCompilation ? '& AppClientCompilationParams ' : ''}& CoreAppCallArgs${onComplete?.type ? ` & ${onComplete.type}` : ''}${onComplete?.isOptional !== false ? ' = {}' : ''}) {`;
|
|
164
|
+
yield* writer.indent(`return $this.mapReturnValue<undefined${responseTypeGenericParam}>(await $this.appClient.${verb}(args))`);
|
|
172
165
|
yield '},';
|
|
173
166
|
}
|
|
174
167
|
else {
|
|
175
168
|
const uniqueName = methodSignatureToUniqueName[methodSig];
|
|
176
|
-
const method = app.contract.methods.find((m) =>
|
|
177
|
-
yield*
|
|
169
|
+
const method = app.contract.methods.find((m) => algokit__namespace.getABIMethodSignature(m) === methodSig);
|
|
170
|
+
yield* writer.jsDoc({
|
|
178
171
|
description: `${description} using the ${methodSig} ABI method.`,
|
|
179
172
|
params: {
|
|
180
173
|
args: `The arguments for the smart contract call`,
|
|
181
174
|
params: `Any additional parameters for the call`,
|
|
182
175
|
},
|
|
183
|
-
returns: `The ${verb} result${
|
|
176
|
+
returns: `The ${verb} result${method?.returns?.desc ? `: ${method.returns.desc}` : ''}`,
|
|
184
177
|
});
|
|
185
|
-
|
|
186
|
-
|
|
178
|
+
const methodName = sanitizer.makeSafeMethodIdentifier(uniqueName);
|
|
179
|
+
const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName);
|
|
180
|
+
const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(methodSig);
|
|
181
|
+
yield `async ${methodName}(args: MethodArgs<'${methodSigSafe}'>, params: AppClientCallCoreParams${includeCompilation ? ' & AppClientCompilationParams' : ''}${onComplete?.type ? ` & ${onComplete.type}` : ''}${onComplete?.isOptional !== false ? ' = {}' : ''}) {`;
|
|
182
|
+
yield* writer.indent(`return $this.mapReturnValue<MethodReturn<'${methodSigSafe}'>${responseTypeGenericParam}>(await $this.appClient.${verb}(${name}CallFactory.${verb}${methodNameAccessor}(args, params)))`);
|
|
187
183
|
yield '},';
|
|
188
184
|
}
|
|
189
185
|
}
|
|
190
|
-
yield
|
|
191
|
-
yield
|
|
192
|
-
yield
|
|
186
|
+
yield writer.DecIndentAndCloseBlock;
|
|
187
|
+
yield writer.DecIndentAndCloseBlock;
|
|
188
|
+
yield writer.NewLine;
|
|
193
189
|
}
|
|
194
190
|
}
|
|
195
191
|
function* clearState({ app }) {
|
|
196
|
-
yield*
|
|
192
|
+
yield* writer.jsDoc({
|
|
197
193
|
description: `Makes a clear_state call to an existing instance of the ${app.contract.name} smart contract.`,
|
|
198
194
|
params: {
|
|
199
195
|
args: `The arguments for the bare call`,
|
|
@@ -201,43 +197,43 @@ function* clearState({ app }) {
|
|
|
201
197
|
returns: `The clear_state result`,
|
|
202
198
|
});
|
|
203
199
|
yield `public clearState(args: BareCallArgs & AppClientCallCoreParams & CoreAppCallArgs = {}) {`;
|
|
204
|
-
yield
|
|
200
|
+
yield writer.IncIndent;
|
|
205
201
|
yield `return this.appClient.clearState(args)`;
|
|
206
|
-
yield
|
|
207
|
-
yield
|
|
202
|
+
yield writer.DecIndentAndCloseBlock;
|
|
203
|
+
yield writer.NewLine;
|
|
208
204
|
}
|
|
209
|
-
function* noopMethods({ app, name, callConfig, methodSignatureToUniqueName }) {
|
|
210
|
-
var _a, _b, _c, _d, _e;
|
|
205
|
+
function* noopMethods({ app, name, callConfig, methodSignatureToUniqueName, sanitizer }) {
|
|
211
206
|
for (const method of app.contract.methods) {
|
|
212
|
-
const methodSignature =
|
|
213
|
-
const methodName =
|
|
207
|
+
const methodSignature = algokit__namespace.getABIMethodSignature(method);
|
|
208
|
+
const methodName = sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]);
|
|
209
|
+
const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName);
|
|
214
210
|
// Skip methods which don't support a no_op call config
|
|
215
211
|
if (!callConfig.callMethods.includes(methodSignature))
|
|
216
212
|
continue;
|
|
217
|
-
yield*
|
|
218
|
-
description: `Calls the ${
|
|
213
|
+
yield* writer.jsDoc({
|
|
214
|
+
description: `Calls the ${algokit__namespace.getABIMethodSignature(method)} ABI method.`,
|
|
219
215
|
abiDescription: method.desc,
|
|
220
216
|
params: {
|
|
221
217
|
args: `The arguments for the contract call`,
|
|
222
218
|
params: `Any additional parameters for the call`,
|
|
223
219
|
},
|
|
224
|
-
returns: `The result of the call${
|
|
220
|
+
returns: `The result of the call${method?.returns?.desc ? `: ${method.returns.desc}` : ''}`,
|
|
225
221
|
});
|
|
226
|
-
|
|
227
|
-
yield
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
yield
|
|
222
|
+
const methodSignatureSafe = sanitizer.makeSafeStringTypeLiteral(methodSignature);
|
|
223
|
+
yield `public ${methodName}(args: MethodArgs<'${methodSignatureSafe}'>, params: AppClientCallCoreParams & CoreAppCallArgs = {}) {`;
|
|
224
|
+
yield writer.IncIndent;
|
|
225
|
+
const outputTypeName = app.hints?.[methodSignature]?.structs?.output?.name;
|
|
226
|
+
yield `return this.call(${name}CallFactory${methodNameAccessor}(args, params)${outputTypeName === undefined ? '' : `, ${sanitizer.makeSafeTypeIdentifier(outputTypeName)}`})`;
|
|
227
|
+
yield writer.DecIndent;
|
|
231
228
|
yield '}';
|
|
232
|
-
yield
|
|
229
|
+
yield writer.NewLine;
|
|
233
230
|
}
|
|
234
231
|
}
|
|
235
|
-
function* getStateMethods({ app, name }) {
|
|
236
|
-
|
|
237
|
-
const
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
yield* (0, writer_1.jsDoc)({
|
|
232
|
+
function* getStateMethods({ app, name, sanitizer }) {
|
|
233
|
+
const globalStateValues = app.schema.global?.declared && Object.values(app.schema.global?.declared);
|
|
234
|
+
const localStateValues = app.schema.local?.declared && Object.values(app.schema.local?.declared);
|
|
235
|
+
if (globalStateValues?.length || localStateValues?.length) {
|
|
236
|
+
yield* writer.jsDoc({
|
|
241
237
|
description: 'Extracts a binary state value out of an AppState dictionary',
|
|
242
238
|
params: {
|
|
243
239
|
state: 'The state dictionary containing the state value',
|
|
@@ -246,23 +242,23 @@ function* getStateMethods({ app, name }) {
|
|
|
246
242
|
returns: 'A BinaryState instance containing the state value, or undefined if the key was not found',
|
|
247
243
|
});
|
|
248
244
|
yield `private static getBinaryState(state: AppState, key: string): BinaryState | undefined {`;
|
|
249
|
-
yield
|
|
245
|
+
yield writer.IncIndent;
|
|
250
246
|
yield `const value = state[key]`;
|
|
251
247
|
yield `if (!value) return undefined`;
|
|
252
248
|
yield `if (!('valueRaw' in value))`;
|
|
253
|
-
yield*
|
|
249
|
+
yield* writer.indent(`throw new Error(\`Failed to parse state value for \${key}; received an int when expected a byte array\`)`);
|
|
254
250
|
yield `return {`;
|
|
255
|
-
yield
|
|
251
|
+
yield writer.IncIndent;
|
|
256
252
|
yield `asString(): string {`;
|
|
257
|
-
yield*
|
|
253
|
+
yield* writer.indent(`return value.value`);
|
|
258
254
|
yield `},`;
|
|
259
255
|
yield `asByteArray(): Uint8Array {`;
|
|
260
|
-
yield*
|
|
256
|
+
yield* writer.indent(`return value.valueRaw`);
|
|
261
257
|
yield `}`;
|
|
262
|
-
yield
|
|
263
|
-
yield
|
|
264
|
-
yield
|
|
265
|
-
yield*
|
|
258
|
+
yield writer.DecIndentAndCloseBlock;
|
|
259
|
+
yield writer.DecIndentAndCloseBlock;
|
|
260
|
+
yield writer.NewLine;
|
|
261
|
+
yield* writer.jsDoc({
|
|
266
262
|
description: 'Extracts a integer state value out of an AppState dictionary',
|
|
267
263
|
params: {
|
|
268
264
|
state: 'The state dictionary containing the state value',
|
|
@@ -271,69 +267,75 @@ function* getStateMethods({ app, name }) {
|
|
|
271
267
|
returns: 'An IntegerState instance containing the state value, or undefined if the key was not found',
|
|
272
268
|
});
|
|
273
269
|
yield `private static getIntegerState(state: AppState, key: string): IntegerState | undefined {`;
|
|
274
|
-
yield
|
|
270
|
+
yield writer.IncIndent;
|
|
275
271
|
yield `const value = state[key]`;
|
|
276
272
|
yield `if (!value) return undefined`;
|
|
277
273
|
yield `if ('valueRaw' in value)`;
|
|
278
|
-
yield*
|
|
274
|
+
yield* writer.indent(`throw new Error(\`Failed to parse state value for \${key}; received a byte array when expected a number\`)`);
|
|
279
275
|
yield `return {`;
|
|
280
|
-
yield
|
|
276
|
+
yield writer.IncIndent;
|
|
281
277
|
yield `asBigInt() {`;
|
|
282
|
-
yield*
|
|
278
|
+
yield* writer.indent(`return typeof value.value === 'bigint' ? value.value : BigInt(value.value)`);
|
|
283
279
|
yield `},`;
|
|
284
280
|
yield `asNumber(): number {`;
|
|
285
|
-
yield*
|
|
281
|
+
yield* writer.indent(`return typeof value.value === 'bigint' ? Number(value.value) : value.value`);
|
|
286
282
|
yield `},`;
|
|
287
|
-
yield
|
|
288
|
-
yield
|
|
289
|
-
yield
|
|
283
|
+
yield writer.DecIndentAndCloseBlock;
|
|
284
|
+
yield writer.DecIndentAndCloseBlock;
|
|
285
|
+
yield writer.NewLine;
|
|
290
286
|
}
|
|
291
|
-
if (globalStateValues
|
|
292
|
-
yield*
|
|
287
|
+
if (globalStateValues?.length) {
|
|
288
|
+
yield* writer.jsDoc(`Returns the smart contract's global state wrapped in a strongly typed accessor with options to format the stored value`);
|
|
293
289
|
yield `public async getGlobalState(): Promise<${name}['state']['global']> {`;
|
|
294
|
-
yield
|
|
290
|
+
yield writer.IncIndent;
|
|
295
291
|
yield `const state = await this.appClient.getGlobalState()`;
|
|
296
292
|
yield `return {`;
|
|
297
|
-
yield
|
|
293
|
+
yield writer.IncIndent;
|
|
298
294
|
for (const stateValue of globalStateValues) {
|
|
299
|
-
|
|
295
|
+
const stateKey = sanitizer.makeSafePropertyIdentifier(stateValue.key);
|
|
296
|
+
const stateKeyLiteral = sanitizer.makeSafeStringTypeLiteral(stateValue.key);
|
|
297
|
+
yield `get ${stateKey}() {`;
|
|
300
298
|
if (stateValue.type === 'uint64') {
|
|
301
|
-
yield*
|
|
299
|
+
yield* writer.indent(`return ${name}Client.getIntegerState(state, '${stateKeyLiteral}')`);
|
|
302
300
|
}
|
|
303
301
|
else {
|
|
304
|
-
yield*
|
|
302
|
+
yield* writer.indent(`return ${name}Client.getBinaryState(state, '${stateKeyLiteral}')`);
|
|
305
303
|
}
|
|
306
304
|
yield '},';
|
|
307
305
|
}
|
|
308
|
-
yield
|
|
309
|
-
yield
|
|
310
|
-
yield
|
|
306
|
+
yield writer.DecIndentAndCloseBlock;
|
|
307
|
+
yield writer.DecIndentAndCloseBlock;
|
|
308
|
+
yield writer.NewLine;
|
|
311
309
|
}
|
|
312
|
-
if (localStateValues
|
|
313
|
-
yield*
|
|
310
|
+
if (localStateValues?.length) {
|
|
311
|
+
yield* writer.jsDoc({
|
|
314
312
|
description: `Returns the smart contract's local state wrapped in a strongly typed accessor with options to format the stored value`,
|
|
315
313
|
params: {
|
|
316
314
|
account: `The address of the account for which to read local state from`,
|
|
317
315
|
},
|
|
318
316
|
});
|
|
319
317
|
yield `public async getLocalState(account: string | SendTransactionFrom): Promise<${name}['state']['local']> {`;
|
|
320
|
-
yield
|
|
318
|
+
yield writer.IncIndent;
|
|
321
319
|
yield `const state = await this.appClient.getLocalState(account)`;
|
|
322
320
|
yield `return {`;
|
|
323
|
-
yield
|
|
321
|
+
yield writer.IncIndent;
|
|
324
322
|
for (const stateValue of localStateValues) {
|
|
325
|
-
|
|
323
|
+
const stateKey = sanitizer.makeSafePropertyIdentifier(stateValue.key);
|
|
324
|
+
const stateKeyLiteral = sanitizer.makeSafeStringTypeLiteral(stateValue.key);
|
|
325
|
+
yield `get ${stateKey}() {`;
|
|
326
326
|
if (stateValue.type === 'uint64') {
|
|
327
|
-
yield*
|
|
327
|
+
yield* writer.indent(`return ${name}Client.getIntegerState(state, '${stateKeyLiteral}')`);
|
|
328
328
|
}
|
|
329
329
|
else {
|
|
330
|
-
yield*
|
|
330
|
+
yield* writer.indent(`return ${name}Client.getBinaryState(state, '${stateKeyLiteral}')`);
|
|
331
331
|
}
|
|
332
332
|
yield '},';
|
|
333
333
|
}
|
|
334
|
-
yield
|
|
335
|
-
yield
|
|
336
|
-
yield
|
|
334
|
+
yield writer.DecIndentAndCloseBlock;
|
|
335
|
+
yield writer.DecIndentAndCloseBlock;
|
|
336
|
+
yield writer.NewLine;
|
|
337
337
|
}
|
|
338
338
|
}
|
|
339
|
-
|
|
339
|
+
|
|
340
|
+
exports.callClient = callClient;
|
|
341
|
+
//# sourceMappingURL=call-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-client.js","sourceRoot":"","sources":["../../src/client/call-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"call-client.js","sources":["../../src/client/call-client.ts"],"sourcesContent":["import * as algokit from '@algorandfoundation/algokit-utils'\nimport { DecIndent, DecIndentAndCloseBlock, DocumentParts, IncIndent, indent, inline, jsDoc, NewLine } from '../output/writer'\n\nimport { BARE_CALL, MethodList } from './helpers/get-call-config-summary'\nimport { GeneratorContext } from './generator-context'\nimport { getCreateOnCompleteOptions } from './deploy-types'\nimport { composeMethod } from './call-composer'\n\nexport function* callClient(ctx: GeneratorContext): DocumentParts {\n const { app, name } = ctx\n\n yield* jsDoc(`A client to make calls to the ${app.contract.name} smart contract`)\n yield `export class ${ctx.sanitizer.makeSafeTypeIdentifier(app.contract.name)}Client {`\n yield IncIndent\n yield* jsDoc(`The underlying \\`ApplicationClient\\` for when you want to have more flexibility`)\n yield 'public readonly appClient: ApplicationClient'\n yield NewLine\n yield `private readonly sender: SendTransactionFrom | undefined`\n yield NewLine\n\n yield* jsDoc({\n description: `Creates a new instance of \\`${ctx.sanitizer.makeSafeTypeIdentifier(app.contract.name)}Client\\``,\n params: {\n appDetails: 'appDetails The details to identify the app to deploy',\n algod: 'An algod client instance',\n },\n })\n\n yield `constructor(appDetails: AppDetails, private algod: Algodv2) {`\n yield IncIndent\n yield `this.sender = appDetails.sender`\n yield 'this.appClient = algokit.getAppClient({'\n yield* indent('...appDetails,', 'app: APP_SPEC')\n yield '}, algod)'\n yield DecIndent\n yield '}'\n yield NewLine\n\n yield* jsDoc({\n description: 'Checks for decode errors on the AppCallTransactionResult and maps the return value to the specified generic type',\n params: {\n result: 'The AppCallTransactionResult to be mapped',\n returnValueFormatter: 'An optional delegate to format the return value if required',\n },\n returns: 'The smart contract response with an updated return value',\n })\n yield* inline(\n `protected mapReturnValue<TReturn, TResult extends AppCallTransactionResult = AppCallTransactionResult>`,\n `(result: AppCallTransactionResult, returnValueFormatter?: (value: any) => TReturn): `,\n `AppCallTransactionResultOfType<TReturn> & TResult {`,\n )\n yield IncIndent\n yield `if(result.return?.decodeError) {`\n yield* indent(`throw result.return.decodeError`)\n yield `}`\n yield `const returnValue = result.return?.returnValue !== undefined && returnValueFormatter !== undefined`\n yield IncIndent\n yield `? returnValueFormatter(result.return.returnValue)`\n yield `: result.return?.returnValue as TReturn | undefined`\n yield `return { ...result, return: returnValue } as AppCallTransactionResultOfType<TReturn> & TResult`\n yield DecIndent\n yield DecIndentAndCloseBlock\n yield NewLine\n\n yield* jsDoc({\n description: 'Calls the ABI method with the matching signature using an onCompletion code of NO_OP',\n params: {\n typedCallParams: 'An object containing the method signature, args, and any other relevant parameters',\n returnValueFormatter: 'An optional delegate which when provided will be used to map non-undefined return values to the target type',\n },\n returns: 'The result of the smart contract call',\n })\n yield `public async call<TSignature extends keyof ${name}['methods']>(typedCallParams: TypedCallParams<TSignature>, returnValueFormatter?: (value: any) => MethodReturn<TSignature>) {`\n yield IncIndent\n yield `return this.mapReturnValue<MethodReturn<TSignature>>(await this.appClient.call(typedCallParams), returnValueFormatter)`\n yield DecIndentAndCloseBlock\n yield NewLine\n\n yield* opMethods(ctx)\n yield* clearState(ctx)\n yield* noopMethods(ctx)\n yield* getStateMethods(ctx)\n yield* composeMethod(ctx)\n yield DecIndentAndCloseBlock\n}\n\nfunction* opMethods(ctx: GeneratorContext): DocumentParts {\n const { app, callConfig, name } = ctx\n\n yield* jsDoc({\n description: `Idempotently deploys the ${app.contract.name} smart contract.`,\n params: {\n params: 'The arguments for the contract calls and any additional parameters for the call',\n },\n returns: 'The deployment result',\n })\n yield `public deploy(params: ${name}DeployArgs & AppClientDeployCoreParams = {}): ReturnType<ApplicationClient['deploy']> {`\n yield IncIndent\n\n if (callConfig.createMethods.length) yield `const createArgs = params.createCall?.(${name}CallFactory.create)`\n if (callConfig.updateMethods.length) yield `const updateArgs = params.updateCall?.(${name}CallFactory.update)`\n if (callConfig.deleteMethods.length) yield `const deleteArgs = params.deleteCall?.(${name}CallFactory.delete)`\n\n yield `return this.appClient.deploy({`\n yield IncIndent\n yield `...params,`\n if (callConfig.updateMethods.length) yield 'updateArgs,'\n if (callConfig.deleteMethods.length) yield 'deleteArgs,'\n if (callConfig.createMethods.length) {\n yield 'createArgs,'\n yield `createOnCompleteAction: createArgs?.onCompleteAction,`\n }\n yield DecIndent\n yield `})`\n yield DecIndentAndCloseBlock\n yield NewLine\n yield* operationMethod(ctx, `Creates a new instance of the ${app.contract.name} smart contract`, callConfig.createMethods, 'create', true)\n yield* operationMethod(\n ctx,\n `Updates an existing instance of the ${app.contract.name} smart contract`,\n callConfig.updateMethods,\n 'update',\n true,\n )\n yield* operationMethod(ctx, `Deletes an existing instance of the ${app.contract.name} smart contract`, callConfig.deleteMethods, 'delete')\n yield* operationMethod(\n ctx,\n `Opts the user into an existing instance of the ${app.contract.name} smart contract`,\n callConfig.optInMethods,\n 'optIn',\n )\n yield* operationMethod(\n ctx,\n `Makes a close out call to an existing instance of the ${app.contract.name} smart contract`,\n callConfig.closeOutMethods,\n 'closeOut',\n )\n}\n\nfunction* operationMethod(\n { app, methodSignatureToUniqueName, name, sanitizer }: GeneratorContext,\n description: string,\n methods: MethodList,\n verb: 'create' | 'update' | 'optIn' | 'closeOut' | 'delete',\n includeCompilation?: boolean,\n): DocumentParts {\n let responseTypeGenericParam\n switch (verb) {\n case 'create':\n responseTypeGenericParam = ', AppCreateCallTransactionResult'\n break\n case 'update':\n responseTypeGenericParam = ', AppUpdateCallTransactionResult'\n break\n default:\n responseTypeGenericParam = ''\n break\n }\n if (methods.length) {\n yield* jsDoc(`Gets available ${verb} methods`)\n yield `public get ${verb}() {`\n yield IncIndent\n yield `const $this = this`\n yield `return {`\n yield IncIndent\n for (const methodSig of methods) {\n const onComplete = verb === 'create' ? getCreateOnCompleteOptions(methodSig, app) : undefined\n if (methodSig === BARE_CALL) {\n yield* jsDoc({\n description: `${description} using a bare call.`,\n params: {\n args: `The arguments for the bare call`,\n },\n returns: `The ${verb} result`,\n })\n yield `async bare(args: BareCallArgs & AppClientCallCoreParams ${\n includeCompilation ? '& AppClientCompilationParams ' : ''\n }& CoreAppCallArgs${onComplete?.type ? ` & ${onComplete.type}` : ''}${onComplete?.isOptional !== false ? ' = {}' : ''}) {`\n yield* indent(`return $this.mapReturnValue<undefined${responseTypeGenericParam}>(await $this.appClient.${verb}(args))`)\n yield '},'\n } else {\n const uniqueName = methodSignatureToUniqueName[methodSig]\n const method = app.contract.methods.find((m) => algokit.getABIMethodSignature(m) === methodSig)\n yield* jsDoc({\n description: `${description} using the ${methodSig} ABI method.`,\n params: {\n args: `The arguments for the smart contract call`,\n params: `Any additional parameters for the call`,\n },\n returns: `The ${verb} result${method?.returns?.desc ? `: ${method.returns.desc}` : ''}`,\n })\n const methodName = sanitizer.makeSafeMethodIdentifier(uniqueName)\n const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName)\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(methodSig)\n yield `async ${methodName}(args: MethodArgs<'${methodSigSafe}'>, params: AppClientCallCoreParams${\n includeCompilation ? ' & AppClientCompilationParams' : ''\n }${onComplete?.type ? ` & ${onComplete.type}` : ''}${onComplete?.isOptional !== false ? ' = {}' : ''}) {`\n yield* indent(\n `return $this.mapReturnValue<MethodReturn<'${methodSigSafe}'>${responseTypeGenericParam}>(await $this.appClient.${verb}(${name}CallFactory.${verb}${methodNameAccessor}(args, params)))`,\n )\n yield '},'\n }\n }\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield NewLine\n }\n}\n\nfunction* clearState({ app }: GeneratorContext): DocumentParts {\n yield* jsDoc({\n description: `Makes a clear_state call to an existing instance of the ${app.contract.name} smart contract.`,\n params: {\n args: `The arguments for the bare call`,\n },\n returns: `The clear_state result`,\n })\n yield `public clearState(args: BareCallArgs & AppClientCallCoreParams & CoreAppCallArgs = {}) {`\n yield IncIndent\n yield `return this.appClient.clearState(args)`\n yield DecIndentAndCloseBlock\n yield NewLine\n}\n\nfunction* noopMethods({ app, name, callConfig, methodSignatureToUniqueName, sanitizer }: GeneratorContext): DocumentParts {\n for (const method of app.contract.methods) {\n const methodSignature = algokit.getABIMethodSignature(method)\n const methodName = sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature])\n const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName)\n // Skip methods which don't support a no_op call config\n if (!callConfig.callMethods.includes(methodSignature)) continue\n yield* jsDoc({\n description: `Calls the ${algokit.getABIMethodSignature(method)} ABI method.`,\n abiDescription: method.desc,\n params: {\n args: `The arguments for the contract call`,\n params: `Any additional parameters for the call`,\n },\n returns: `The result of the call${method?.returns?.desc ? `: ${method.returns.desc}` : ''}`,\n })\n const methodSignatureSafe = sanitizer.makeSafeStringTypeLiteral(methodSignature)\n yield `public ${methodName}(args: MethodArgs<'${methodSignatureSafe}'>, params: AppClientCallCoreParams & CoreAppCallArgs = {}) {`\n yield IncIndent\n const outputTypeName = app.hints?.[methodSignature]?.structs?.output?.name\n yield `return this.call(${name}CallFactory${methodNameAccessor}(args, params)${\n outputTypeName === undefined ? '' : `, ${sanitizer.makeSafeTypeIdentifier(outputTypeName)}`\n })`\n yield DecIndent\n yield '}'\n yield NewLine\n }\n}\n\nfunction* getStateMethods({ app, name, sanitizer }: GeneratorContext): DocumentParts {\n const globalStateValues = app.schema.global?.declared && Object.values(app.schema.global?.declared)\n const localStateValues = app.schema.local?.declared && Object.values(app.schema.local?.declared)\n if (globalStateValues?.length || localStateValues?.length) {\n yield* jsDoc({\n description: 'Extracts a binary state value out of an AppState dictionary',\n params: {\n state: 'The state dictionary containing the state value',\n key: 'The key of the state value',\n },\n returns: 'A BinaryState instance containing the state value, or undefined if the key was not found',\n })\n yield `private static getBinaryState(state: AppState, key: string): BinaryState | undefined {`\n yield IncIndent\n yield `const value = state[key]`\n yield `if (!value) return undefined`\n yield `if (!('valueRaw' in value))`\n yield* indent(`throw new Error(\\`Failed to parse state value for \\${key}; received an int when expected a byte array\\`)`)\n yield `return {`\n yield IncIndent\n yield `asString(): string {`\n yield* indent(`return value.value`)\n yield `},`\n yield `asByteArray(): Uint8Array {`\n yield* indent(`return value.valueRaw`)\n yield `}`\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield NewLine\n\n yield* jsDoc({\n description: 'Extracts a integer state value out of an AppState dictionary',\n params: {\n state: 'The state dictionary containing the state value',\n key: 'The key of the state value',\n },\n returns: 'An IntegerState instance containing the state value, or undefined if the key was not found',\n })\n yield `private static getIntegerState(state: AppState, key: string): IntegerState | undefined {`\n yield IncIndent\n yield `const value = state[key]`\n yield `if (!value) return undefined`\n yield `if ('valueRaw' in value)`\n yield* indent(`throw new Error(\\`Failed to parse state value for \\${key}; received a byte array when expected a number\\`)`)\n yield `return {`\n yield IncIndent\n yield `asBigInt() {`\n yield* indent(`return typeof value.value === 'bigint' ? value.value : BigInt(value.value)`)\n yield `},`\n yield `asNumber(): number {`\n yield* indent(`return typeof value.value === 'bigint' ? Number(value.value) : value.value`)\n yield `},`\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield NewLine\n }\n\n if (globalStateValues?.length) {\n yield* jsDoc(`Returns the smart contract's global state wrapped in a strongly typed accessor with options to format the stored value`)\n yield `public async getGlobalState(): Promise<${name}['state']['global']> {`\n yield IncIndent\n yield `const state = await this.appClient.getGlobalState()`\n yield `return {`\n yield IncIndent\n for (const stateValue of globalStateValues) {\n const stateKey = sanitizer.makeSafePropertyIdentifier(stateValue.key)\n const stateKeyLiteral = sanitizer.makeSafeStringTypeLiteral(stateValue.key)\n yield `get ${stateKey}() {`\n if (stateValue.type === 'uint64') {\n yield* indent(`return ${name}Client.getIntegerState(state, '${stateKeyLiteral}')`)\n } else {\n yield* indent(`return ${name}Client.getBinaryState(state, '${stateKeyLiteral}')`)\n }\n yield '},'\n }\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield NewLine\n }\n\n if (localStateValues?.length) {\n yield* jsDoc({\n description: `Returns the smart contract's local state wrapped in a strongly typed accessor with options to format the stored value`,\n params: {\n account: `The address of the account for which to read local state from`,\n },\n })\n yield `public async getLocalState(account: string | SendTransactionFrom): Promise<${name}['state']['local']> {`\n yield IncIndent\n yield `const state = await this.appClient.getLocalState(account)`\n yield `return {`\n yield IncIndent\n for (const stateValue of localStateValues) {\n const stateKey = sanitizer.makeSafePropertyIdentifier(stateValue.key)\n const stateKeyLiteral = sanitizer.makeSafeStringTypeLiteral(stateValue.key)\n yield `get ${stateKey}() {`\n if (stateValue.type === 'uint64') {\n yield* indent(`return ${name}Client.getIntegerState(state, '${stateKeyLiteral}')`)\n } else {\n yield* indent(`return ${name}Client.getBinaryState(state, '${stateKeyLiteral}')`)\n }\n yield '},'\n }\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield NewLine\n }\n}\n"],"names":["jsDoc","IncIndent","NewLine","indent","DecIndent","inline","DecIndentAndCloseBlock","composeMethod","getCreateOnCompleteOptions","BARE_CALL","algokit"],"mappings":"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"}
|