@algorandfoundation/algokit-client-generator 1.0.1-beta.2
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 +1 -0
- package/bin/cli.js +3 -0
- package/cli.d.ts +2 -0
- package/cli.d.ts.map +1 -0
- package/cli.js +82 -0
- package/cli.js.map +1 -0
- package/client/app-types.d.ts +4 -0
- package/client/app-types.d.ts.map +1 -0
- package/client/app-types.js +135 -0
- package/client/app-types.js.map +1 -0
- package/client/call-client.d.ts +4 -0
- package/client/call-client.d.ts.map +1 -0
- package/client/call-client.js +278 -0
- package/client/call-client.js.map +1 -0
- package/client/call-factory.d.ts +4 -0
- package/client/call-factory.d.ts.map +1 -0
- package/client/call-factory.js +71 -0
- package/client/call-factory.js.map +1 -0
- package/client/deploy-types.d.ts +10 -0
- package/client/deploy-types.d.ts.map +1 -0
- package/client/deploy-types.js +79 -0
- package/client/deploy-types.js.map +1 -0
- package/client/generate.d.ts +4 -0
- package/client/generate.d.ts.map +1 -0
- package/client/generate.js +35 -0
- package/client/generate.js.map +1 -0
- package/client/generator-context.d.ts +15 -0
- package/client/generator-context.d.ts.map +1 -0
- package/client/generator-context.js +41 -0
- package/client/generator-context.js.map +1 -0
- package/client/helpers/extract-method-name-from-signature.d.ts +7 -0
- package/client/helpers/extract-method-name-from-signature.d.ts.map +1 -0
- package/client/helpers/extract-method-name-from-signature.js +13 -0
- package/client/helpers/extract-method-name-from-signature.js.map +1 -0
- package/client/helpers/get-call-config-summary.d.ts +15 -0
- package/client/helpers/get-call-config-summary.d.ts.map +1 -0
- package/client/helpers/get-call-config-summary.js +75 -0
- package/client/helpers/get-call-config-summary.js.map +1 -0
- package/client/helpers/get-create-methods.d.ts +3 -0
- package/client/helpers/get-create-methods.d.ts.map +1 -0
- package/client/helpers/get-create-methods.js +8 -0
- package/client/helpers/get-create-methods.js.map +1 -0
- package/client/helpers/get-equivalent-type.d.ts +2 -0
- package/client/helpers/get-equivalent-type.d.ts.map +1 -0
- package/client/helpers/get-equivalent-type.js +59 -0
- package/client/helpers/get-equivalent-type.js.map +1 -0
- package/client/imports.d.ts +3 -0
- package/client/imports.d.ts.map +1 -0
- package/client/imports.js +27 -0
- package/client/imports.js.map +1 -0
- package/client/return-types.d.ts +4 -0
- package/client/return-types.d.ts.map +1 -0
- package/client/return-types.js +48 -0
- package/client/return-types.js.map +1 -0
- package/client/utility-types.d.ts +10 -0
- package/client/utility-types.d.ts.map +1 -0
- package/client/utility-types.js +27 -0
- package/client/utility-types.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.d.ts.map +1 -0
- package/index.js +5 -0
- package/index.js.map +1 -0
- package/output/writer.d.ts +22 -0
- package/output/writer.d.ts.map +1 -0
- package/output/writer.js +123 -0
- package/output/writer.js.map +1 -0
- package/package.json +24 -0
- package/schema/application.schema.json +255 -0
- package/schema/contract.schema.json +85 -0
- package/schema/load.d.ts +3 -0
- package/schema/load.d.ts.map +1 -0
- package/schema/load.js +47 -0
- package/schema/load.js.map +1 -0
- package/tests/approval-tests.spec.d.ts +2 -0
- package/tests/approval-tests.spec.d.ts.map +1 -0
- package/tests/approval-tests.spec.js +24 -0
- package/tests/approval-tests.spec.js.map +1 -0
- package/util/boom.d.ts +2 -0
- package/util/boom.d.ts.map +1 -0
- package/util/boom.js +8 -0
- package/util/boom.js.map +1 -0
- package/util/color-console.d.ts +7 -0
- package/util/color-console.d.ts.map +1 -0
- package/util/color-console.js +20 -0
- package/util/color-console.js.map +1 -0
- package/util/not-falsy.d.ts +2 -0
- package/util/not-falsy.d.ts.map +1 -0
- package/util/not-falsy.js +6 -0
- package/util/not-falsy.js.map +1 -0
- package/util/sanitization.d.ts +6 -0
- package/util/sanitization.d.ts.map +1 -0
- package/util/sanitization.js +17 -0
- package/util/sanitization.js.map +1 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
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.callFactory = void 0;
|
|
27
|
+
const writer_1 = require("../output/writer");
|
|
28
|
+
const sanitization_1 = require("../util/sanitization");
|
|
29
|
+
const algokit = __importStar(require("@algorandfoundation/algokit-utils"));
|
|
30
|
+
function* callFactory(ctx) {
|
|
31
|
+
yield `export abstract class ${ctx.name}CallFactory {`;
|
|
32
|
+
yield writer_1.IncIndent;
|
|
33
|
+
for (const method of ctx.app.contract.methods) {
|
|
34
|
+
yield* callFactoryMethod(ctx, method);
|
|
35
|
+
}
|
|
36
|
+
yield writer_1.DecIndent;
|
|
37
|
+
yield '}';
|
|
38
|
+
yield `function mapBySignature(...[signature, args, params]: MapperArgs<keyof ${ctx.name}['methods']>) {`;
|
|
39
|
+
yield writer_1.IncIndent;
|
|
40
|
+
yield 'switch(signature) {';
|
|
41
|
+
yield writer_1.IncIndent;
|
|
42
|
+
for (const method of ctx.app.contract.methods) {
|
|
43
|
+
const methodSignature = algokit.getABIMethodSignature(method);
|
|
44
|
+
const uniqueName = ctx.methodSignatureToUniqueName[methodSignature];
|
|
45
|
+
yield `case '${methodSignature}':`;
|
|
46
|
+
if (uniqueName !== methodSignature) {
|
|
47
|
+
yield `case '${uniqueName}':`;
|
|
48
|
+
}
|
|
49
|
+
yield* (0, writer_1.indent)(`return ${ctx.name}CallFactory.${(0, sanitization_1.makeSafeMethodIdentifier)(ctx.methodSignatureToUniqueName[methodSignature])}(args, params)`);
|
|
50
|
+
}
|
|
51
|
+
yield writer_1.DecIndentAndCloseBlock;
|
|
52
|
+
yield writer_1.DecIndentAndCloseBlock;
|
|
53
|
+
}
|
|
54
|
+
exports.callFactory = callFactory;
|
|
55
|
+
function* callFactoryMethod({ methodSignatureToUniqueName }, method) {
|
|
56
|
+
const methodSignature = algokit.getABIMethodSignature(method);
|
|
57
|
+
yield `static ${(0, sanitization_1.makeSafeMethodIdentifier)(methodSignatureToUniqueName[methodSignature])}(args: MethodArgs<'${methodSignature}'>, params: AppClientCallCoreParams & CoreAppCallArgs = {}) {`;
|
|
58
|
+
yield writer_1.IncIndent;
|
|
59
|
+
yield `return {`;
|
|
60
|
+
yield writer_1.IncIndent;
|
|
61
|
+
yield `method: '${methodSignature}' as const,`;
|
|
62
|
+
yield `methodArgs: Array.isArray(args) ? args : [${method.args
|
|
63
|
+
.map((a) => ((0, sanitization_1.isSafeVariableIdentifier)(a.name) ? `args.${a.name}` : `args['${(0, sanitization_1.makeSafePropertyIdentifier)(a.name)}']`))
|
|
64
|
+
.join(', ')}],`;
|
|
65
|
+
yield '...params,';
|
|
66
|
+
yield writer_1.DecIndent;
|
|
67
|
+
yield '}';
|
|
68
|
+
yield writer_1.DecIndent;
|
|
69
|
+
yield '}';
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=call-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-factory.js","sourceRoot":"","sources":["../../src/client/call-factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAAsG;AACtG,uDAAqH;AACrH,2EAA4D;AAG5D,QAAe,CAAC,CAAC,WAAW,CAAC,GAAqB;IAChD,MAAM,yBAAyB,GAAG,CAAC,IAAI,eAAe,CAAA;IACtD,MAAM,kBAAS,CAAA;IACf,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;QAC7C,KAAK,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;KACtC;IAED,MAAM,kBAAS,CAAA;IAEf,MAAM,GAAG,CAAA;IAET,MAAM,0EAA0E,GAAG,CAAC,IAAI,iBAAiB,CAAA;IACzG,MAAM,kBAAS,CAAA;IACf,MAAM,qBAAqB,CAAA;IAC3B,MAAM,kBAAS,CAAA;IACf,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;QAC7C,MAAM,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;QAC7D,MAAM,UAAU,GAAG,GAAG,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAA;QAEnE,MAAM,SAAS,eAAe,IAAI,CAAA;QAClC,IAAI,UAAU,KAAK,eAAe,EAAE;YAClC,MAAM,SAAS,UAAU,IAAI,CAAA;SAC9B;QACD,KAAK,CAAC,CAAC,IAAA,eAAM,EACX,UAAU,GAAG,CAAC,IAAI,eAAe,IAAA,uCAAwB,EAAC,GAAG,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAC5H,CAAA;KACF;IACD,MAAM,+BAAsB,CAAA;IAC5B,MAAM,+BAAsB,CAAA;AAC9B,CAAC;AA7BD,kCA6BC;AAED,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,2BAA2B,EAAoB,EAAE,MAAsB;IACnG,MAAM,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC7D,MAAM,UAAU,IAAA,uCAAwB,EACtC,2BAA2B,CAAC,eAAe,CAAC,CAC7C,sBAAsB,eAAe,+DAA+D,CAAA;IACrG,MAAM,kBAAS,CAAA;IACf,MAAM,UAAU,CAAA;IAChB,MAAM,kBAAS,CAAA;IACf,MAAM,YAAY,eAAe,aAAa,CAAA;IAC9C,MAAM,6CAA6C,MAAM,CAAC,IAAI;SAC3D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,uCAAwB,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,IAAA,yCAA0B,EAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;IACjB,MAAM,YAAY,CAAA;IAClB,MAAM,kBAAS,CAAA;IACf,MAAM,GAAG,CAAA;IACT,MAAM,kBAAS,CAAA;IACf,MAAM,GAAG,CAAA;AACX,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DocumentParts } from '../output/writer';
|
|
2
|
+
import { MethodIdentifier } from './helpers/get-call-config-summary';
|
|
3
|
+
import { GeneratorContext } from './generator-context';
|
|
4
|
+
import { AlgoAppSpec } from '../schema/application';
|
|
5
|
+
export declare function getCreateOnCompleteOptions(method: MethodIdentifier, app: AlgoAppSpec): {
|
|
6
|
+
type: {};
|
|
7
|
+
isOptional: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare function deployTypes({ app, callConfig }: GeneratorContext): DocumentParts;
|
|
10
|
+
//# sourceMappingURL=deploy-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-types.d.ts","sourceRoot":"","sources":["../../src/client/deploy-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,aAAa,EAAsB,MAAM,kBAAkB,CAAA;AAEvG,OAAO,EAAa,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAc,MAAM,uBAAuB,CAAA;AAG/D,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,WAAW;;;EAapF;AAED,wBAAiB,WAAW,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,gBAAgB,GAAG,aAAa,CAkDjF"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deployTypes = exports.getCreateOnCompleteOptions = void 0;
|
|
4
|
+
const writer_1 = require("../output/writer");
|
|
5
|
+
const sanitization_1 = require("../util/sanitization");
|
|
6
|
+
const get_call_config_summary_1 = require("./helpers/get-call-config-summary");
|
|
7
|
+
const utility_types_1 = require("./utility-types");
|
|
8
|
+
function getCreateOnCompleteOptions(method, app) {
|
|
9
|
+
var _a, _b;
|
|
10
|
+
const callConfig = method === get_call_config_summary_1.BARE_CALL ? app.bare_call_config : (_b = (_a = app.hints) === null || _a === void 0 ? void 0 : _a[method]) === null || _b === void 0 ? void 0 : _b.call_config;
|
|
11
|
+
const hasNoOp = (callConfig === null || callConfig === void 0 ? void 0 : callConfig.no_op) === 'ALL' || (callConfig === null || callConfig === void 0 ? void 0 : callConfig.no_op) === 'CREATE';
|
|
12
|
+
const onCompleteType = callConfig
|
|
13
|
+
? `(${Object.entries(callConfig)
|
|
14
|
+
.filter(([_, value]) => value === 'ALL' || value === 'CREATE')
|
|
15
|
+
.map(([oc]) => utility_types_1.OnCompleteCodeMap[oc])
|
|
16
|
+
.join(' | ')})`
|
|
17
|
+
: {};
|
|
18
|
+
return {
|
|
19
|
+
type: onCompleteType,
|
|
20
|
+
isOptional: hasNoOp,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
exports.getCreateOnCompleteOptions = getCreateOnCompleteOptions;
|
|
24
|
+
function* deployTypes({ app, callConfig }) {
|
|
25
|
+
const name = (0, sanitization_1.makeSafeTypeIdentifier)(app.contract.name);
|
|
26
|
+
if (callConfig.createMethods.length > 0) {
|
|
27
|
+
yield `export type ${name}CreateArgs =`;
|
|
28
|
+
yield writer_1.IncIndent;
|
|
29
|
+
for (const method of callConfig.createMethods) {
|
|
30
|
+
const onComplete = getCreateOnCompleteOptions(method, app);
|
|
31
|
+
if (method === get_call_config_summary_1.BARE_CALL) {
|
|
32
|
+
yield `| (BareCallArgs & CoreAppCallArgs & ${onComplete.type})`;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
yield `| ['${method}', MethodArgs<'${method}'>, (CoreAppCallArgs & ${onComplete.type})${onComplete.isOptional ? '?' : ''}]`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
yield writer_1.DecIndent;
|
|
39
|
+
}
|
|
40
|
+
if (callConfig.updateMethods.length > 0) {
|
|
41
|
+
yield `export type ${name}UpdateArgs =`;
|
|
42
|
+
yield writer_1.IncIndent;
|
|
43
|
+
for (const method of callConfig.updateMethods) {
|
|
44
|
+
if (method === get_call_config_summary_1.BARE_CALL) {
|
|
45
|
+
yield `| BareCallArgs & CoreAppCallArgs`;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
yield `| ['${method}', MethodArgs<'${method}'>, CoreAppCallArgs]`;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
yield writer_1.DecIndent;
|
|
52
|
+
}
|
|
53
|
+
if (callConfig.deleteMethods.length > 0) {
|
|
54
|
+
yield `export type ${name}DeleteArgs =`;
|
|
55
|
+
yield writer_1.IncIndent;
|
|
56
|
+
for (const method of callConfig.deleteMethods) {
|
|
57
|
+
if (method === get_call_config_summary_1.BARE_CALL) {
|
|
58
|
+
yield `| BareCallArgs & CoreAppCallArgs`;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
yield `| ['${method}', MethodArgs<'${method}'>, CoreAppCallArgs]`;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
yield writer_1.DecIndent;
|
|
65
|
+
}
|
|
66
|
+
yield `export type ${name}DeployArgs = {`;
|
|
67
|
+
yield writer_1.IncIndent;
|
|
68
|
+
yield `deployTimeParams?: TealTemplateParams`;
|
|
69
|
+
if (callConfig.createMethods.length)
|
|
70
|
+
yield `createArgs?: ${name}CreateArgs`;
|
|
71
|
+
if (callConfig.updateMethods.length)
|
|
72
|
+
yield `updateArgs?: ${name}UpdateArgs`;
|
|
73
|
+
if (callConfig.deleteMethods.length)
|
|
74
|
+
yield `deleteArgs?: ${name}DeleteArgs`;
|
|
75
|
+
yield writer_1.DecIndentAndCloseBlock;
|
|
76
|
+
yield writer_1.NewLine;
|
|
77
|
+
}
|
|
78
|
+
exports.deployTypes = deployTypes;
|
|
79
|
+
//# sourceMappingURL=deploy-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-types.js","sourceRoot":"","sources":["../../src/client/deploy-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/client/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AASnD,wBAAiB,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,aAAa,CAwBzD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generate = void 0;
|
|
4
|
+
const writer_1 = require("../output/writer");
|
|
5
|
+
const call_factory_1 = require("./call-factory");
|
|
6
|
+
const call_client_1 = require("./call-client");
|
|
7
|
+
const deploy_types_1 = require("./deploy-types");
|
|
8
|
+
const utility_types_1 = require("./utility-types");
|
|
9
|
+
const imports_1 = require("./imports");
|
|
10
|
+
const generator_context_1 = require("./generator-context");
|
|
11
|
+
const app_types_1 = require("./app-types");
|
|
12
|
+
function* generate(app) {
|
|
13
|
+
const ctx = (0, generator_context_1.createGeneratorContext)(app);
|
|
14
|
+
yield `/* eslint-disable */`;
|
|
15
|
+
yield `/**`;
|
|
16
|
+
yield ` * This file was automatically generated by algokit-client-generator.`;
|
|
17
|
+
yield ` * DO NOT MODIFY IT BY HAND.`;
|
|
18
|
+
yield ` */`;
|
|
19
|
+
yield* (0, imports_1.imports)();
|
|
20
|
+
yield* (0, writer_1.inline)('export const APP_SPEC: AppSpec = ', JSON.stringify(app, undefined, 2));
|
|
21
|
+
yield writer_1.NewLine;
|
|
22
|
+
yield* (0, utility_types_1.utilityTypes)();
|
|
23
|
+
yield writer_1.NewLine;
|
|
24
|
+
yield* (0, app_types_1.appTypes)(ctx);
|
|
25
|
+
//
|
|
26
|
+
// yield NewLine
|
|
27
|
+
yield* (0, deploy_types_1.deployTypes)(ctx);
|
|
28
|
+
// Write a call factory
|
|
29
|
+
yield* (0, call_factory_1.callFactory)(ctx);
|
|
30
|
+
yield writer_1.NewLine;
|
|
31
|
+
// Write a client
|
|
32
|
+
yield* (0, call_client_1.callClient)(ctx);
|
|
33
|
+
}
|
|
34
|
+
exports.generate = generate;
|
|
35
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/client/generate.ts"],"names":[],"mappings":";;;AAAA,6CAAiE;AAEjE,iDAA4C;AAC5C,+CAA0C;AAC1C,iDAA4C;AAC5C,mDAA8C;AAC9C,uCAAmC;AACnC,2DAA4D;AAC5D,2CAAsC;AAEtC,QAAe,CAAC,CAAC,QAAQ,CAAC,GAAgB;IACxC,MAAM,GAAG,GAAG,IAAA,0CAAsB,EAAC,GAAG,CAAC,CAAA;IACvC,MAAM,sBAAsB,CAAA;IAC5B,MAAM,KAAK,CAAA;IACX,MAAM,uEAAuE,CAAA;IAC7E,MAAM,8BAA8B,CAAA;IACpC,MAAM,KAAK,CAAA;IAEX,KAAK,CAAC,CAAC,IAAA,iBAAO,GAAE,CAAA;IAChB,KAAK,CAAC,CAAC,IAAA,eAAM,EAAC,mCAAmC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;IACrF,MAAM,gBAAO,CAAA;IAEb,KAAK,CAAC,CAAC,IAAA,4BAAY,GAAE,CAAA;IACrB,MAAM,gBAAO,CAAA;IACb,KAAK,CAAC,CAAC,IAAA,oBAAQ,EAAC,GAAG,CAAC,CAAA;IACpB,EAAE;IACF,gBAAgB;IAChB,KAAK,CAAC,CAAC,IAAA,0BAAW,EAAC,GAAG,CAAC,CAAA;IAEvB,uBAAuB;IACvB,KAAK,CAAC,CAAC,IAAA,0BAAW,EAAC,GAAG,CAAC,CAAA;IACvB,MAAM,gBAAO,CAAA;IACb,iBAAiB;IACjB,KAAK,CAAC,CAAC,IAAA,wBAAU,EAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAxBD,4BAwBC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AlgoAppSpec } from '../schema/application';
|
|
2
|
+
import { CallConfigSummary } from './helpers/get-call-config-summary';
|
|
3
|
+
export type GeneratorContext = {
|
|
4
|
+
app: AlgoAppSpec;
|
|
5
|
+
name: string;
|
|
6
|
+
callConfig: CallConfigSummary;
|
|
7
|
+
methodSignatureToUniqueName: Record<string, string>;
|
|
8
|
+
};
|
|
9
|
+
export declare const createGeneratorContext: (app: AlgoAppSpec) => {
|
|
10
|
+
app: AlgoAppSpec;
|
|
11
|
+
name: string;
|
|
12
|
+
callConfig: CallConfigSummary;
|
|
13
|
+
methodSignatureToUniqueName: Record<string, string>;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=generator-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator-context.d.ts","sourceRoot":"","sources":["../../src/client/generator-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAwB,MAAM,mCAAmC,CAAA;AAI3F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,WAAW,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,iBAAiB,CAAA;IAC7B,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACpD,CAAA;AAED,eAAO,MAAM,sBAAsB,QAAS,WAAW;;;;;CASrD,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
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.createGeneratorContext = void 0;
|
|
27
|
+
const get_call_config_summary_1 = require("./helpers/get-call-config-summary");
|
|
28
|
+
const sanitization_1 = require("../util/sanitization");
|
|
29
|
+
const algokit = __importStar(require("@algorandfoundation/algokit-utils"));
|
|
30
|
+
const createGeneratorContext = (app) => ({
|
|
31
|
+
app,
|
|
32
|
+
name: (0, sanitization_1.makeSafeTypeIdentifier)(app.contract.name),
|
|
33
|
+
callConfig: (0, get_call_config_summary_1.getCallConfigSummary)(app),
|
|
34
|
+
methodSignatureToUniqueName: app.contract.methods.reduce((acc, cur) => {
|
|
35
|
+
const signature = algokit.getABIMethodSignature(cur);
|
|
36
|
+
acc[signature] = app.contract.methods.some((m) => m.name === cur.name && m !== cur) ? signature : cur.name;
|
|
37
|
+
return acc;
|
|
38
|
+
}, {}),
|
|
39
|
+
});
|
|
40
|
+
exports.createGeneratorContext = createGeneratorContext;
|
|
41
|
+
//# sourceMappingURL=generator-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator-context.js","sourceRoot":"","sources":["../../src/client/generator-context.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+EAA2F;AAC3F,uDAA6D;AAC7D,2EAA4D;AASrD,MAAM,sBAAsB,GAAG,CAAC,GAAgB,EAAE,EAAE,CAAC,CAAC;IAC3D,GAAG;IACH,IAAI,EAAE,IAAA,qCAAsB,EAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC/C,UAAU,EAAE,IAAA,8CAAoB,EAAC,GAAG,CAAC;IACrC,2BAA2B,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACpE,MAAM,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;QACpD,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;QAC1G,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAA4B,CAAC;CACjC,CAAC,CAAA;AATW,QAAA,sBAAsB,0BASjC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Given a method signature (eg. my_method(string,uint)void) will extract the
|
|
3
|
+
* method name (ie. my_method)
|
|
4
|
+
* @param methodSignature An ABI method signature
|
|
5
|
+
*/
|
|
6
|
+
export declare function extractMethodNameFromSignature(methodSignature: string): string;
|
|
7
|
+
//# sourceMappingURL=extract-method-name-from-signature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-method-name-from-signature.d.ts","sourceRoot":"","sources":["../../../src/client/helpers/extract-method-name-from-signature.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAE9E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractMethodNameFromSignature = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Given a method signature (eg. my_method(string,uint)void) will extract the
|
|
6
|
+
* method name (ie. my_method)
|
|
7
|
+
* @param methodSignature An ABI method signature
|
|
8
|
+
*/
|
|
9
|
+
function extractMethodNameFromSignature(methodSignature) {
|
|
10
|
+
return methodSignature.split('(')[0];
|
|
11
|
+
}
|
|
12
|
+
exports.extractMethodNameFromSignature = extractMethodNameFromSignature;
|
|
13
|
+
//# sourceMappingURL=extract-method-name-from-signature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-method-name-from-signature.js","sourceRoot":"","sources":["../../../src/client/helpers/extract-method-name-from-signature.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,SAAgB,8BAA8B,CAAC,eAAuB;IACpE,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACtC,CAAC;AAFD,wEAEC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AlgoAppSpec } from '../../schema/application';
|
|
2
|
+
export declare const BARE_CALL: unique symbol;
|
|
3
|
+
export type MethodIdentifier = string | typeof BARE_CALL;
|
|
4
|
+
export type MethodList = Array<MethodIdentifier>;
|
|
5
|
+
export type CallConfigSummary = {
|
|
6
|
+
createMethods: MethodList;
|
|
7
|
+
callMethods: MethodList;
|
|
8
|
+
deleteMethods: MethodList;
|
|
9
|
+
updateMethods: MethodList;
|
|
10
|
+
optInMethods: MethodList;
|
|
11
|
+
closeOutMethods: MethodList;
|
|
12
|
+
};
|
|
13
|
+
export declare const getCallConfigSummary: (app: AlgoAppSpec) => CallConfigSummary;
|
|
14
|
+
export declare const getCreateOnComplete: (app: AlgoAppSpec, method: MethodIdentifier) => string;
|
|
15
|
+
//# sourceMappingURL=get-call-config-summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-call-config-summary.d.ts","sourceRoot":"","sources":["../../../src/client/helpers/get-call-config-summary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAA+B,MAAM,0BAA0B,CAAA;AAEnF,eAAO,MAAM,SAAS,eAAiB,CAAA;AAEvC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,SAAS,CAAA;AAExD,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAA;AAEhD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,UAAU,CAAA;IACzB,WAAW,EAAE,UAAU,CAAA;IACvB,aAAa,EAAE,UAAU,CAAA;IACzB,aAAa,EAAE,UAAU,CAAA;IACzB,YAAY,EAAE,UAAU,CAAA;IACxB,eAAe,EAAE,UAAU,CAAA;CAC5B,CAAA;AACD,eAAO,MAAM,oBAAoB,QAAS,WAAW,sBAoBpD,CAAA;AAED,eAAO,MAAM,mBAAmB,QAAS,WAAW,UAAU,gBAAgB,WAO7E,CAAA"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCreateOnComplete = exports.getCallConfigSummary = exports.BARE_CALL = void 0;
|
|
4
|
+
const change_case_1 = require("change-case");
|
|
5
|
+
exports.BARE_CALL = Symbol('bare');
|
|
6
|
+
const getCallConfigSummary = (app) => {
|
|
7
|
+
const result = {
|
|
8
|
+
createMethods: [],
|
|
9
|
+
callMethods: [],
|
|
10
|
+
deleteMethods: [],
|
|
11
|
+
updateMethods: [],
|
|
12
|
+
optInMethods: [],
|
|
13
|
+
closeOutMethods: [],
|
|
14
|
+
};
|
|
15
|
+
if (app.bare_call_config) {
|
|
16
|
+
addToConfig(result, exports.BARE_CALL, app.bare_call_config);
|
|
17
|
+
}
|
|
18
|
+
if (app.hints) {
|
|
19
|
+
for (const [method, hints] of Object.entries(app.hints)) {
|
|
20
|
+
if (hints.call_config) {
|
|
21
|
+
addToConfig(result, method, hints.call_config);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
27
|
+
exports.getCallConfigSummary = getCallConfigSummary;
|
|
28
|
+
const getCreateOnComplete = (app, method) => {
|
|
29
|
+
var _a, _b;
|
|
30
|
+
const callConfig = method === exports.BARE_CALL ? app.bare_call_config : (_b = (_a = app.hints) === null || _a === void 0 ? void 0 : _a[method]) === null || _b === void 0 ? void 0 : _b.call_config;
|
|
31
|
+
if (!callConfig) {
|
|
32
|
+
return '';
|
|
33
|
+
}
|
|
34
|
+
const hasNoOp = callConfig.no_op === 'ALL' || callConfig.no_op === 'CREATE';
|
|
35
|
+
return `{ onCompleteAction${hasNoOp ? '?' : ''}: ${getCreateOnCompleteTypes(callConfig)} }`;
|
|
36
|
+
};
|
|
37
|
+
exports.getCreateOnComplete = getCreateOnComplete;
|
|
38
|
+
const getCreateOnCompleteTypes = (config) => {
|
|
39
|
+
return Object.keys(config)
|
|
40
|
+
.map((oc) => oc)
|
|
41
|
+
.filter((oc) => config[oc] === 'ALL' || config[oc] === 'CREATE')
|
|
42
|
+
.map((oc) => `'${oc}' | OnApplicationComplete.${(0, change_case_1.pascalCase)(oc)}OC`)
|
|
43
|
+
.join(' | ');
|
|
44
|
+
};
|
|
45
|
+
const addToConfig = (result, method, config) => {
|
|
46
|
+
if (hasCall(config.no_op)) {
|
|
47
|
+
result.callMethods.push(method);
|
|
48
|
+
}
|
|
49
|
+
if (hasCreate(config.no_op) ||
|
|
50
|
+
hasCreate(config.opt_in) ||
|
|
51
|
+
hasCreate(config.close_out) ||
|
|
52
|
+
hasCreate(config.update_application) ||
|
|
53
|
+
hasCreate(config.delete_application)) {
|
|
54
|
+
result.createMethods.push(method);
|
|
55
|
+
}
|
|
56
|
+
if (hasCall(config.delete_application)) {
|
|
57
|
+
result.deleteMethods.push(method);
|
|
58
|
+
}
|
|
59
|
+
if (hasCall(config.update_application)) {
|
|
60
|
+
result.updateMethods.push(method);
|
|
61
|
+
}
|
|
62
|
+
if (hasCall(config.opt_in)) {
|
|
63
|
+
result.optInMethods.push(method);
|
|
64
|
+
}
|
|
65
|
+
if (hasCall(config.close_out)) {
|
|
66
|
+
result.closeOutMethods.push(method);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
const hasCall = (config) => {
|
|
70
|
+
return config === 'CALL' || config === 'ALL';
|
|
71
|
+
};
|
|
72
|
+
const hasCreate = (config) => {
|
|
73
|
+
return config === 'CREATE' || config === 'ALL';
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=get-call-config-summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-call-config-summary.js","sourceRoot":"","sources":["../../../src/client/helpers/get-call-config-summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-create-methods.d.ts","sourceRoot":"","sources":["../../../src/client/helpers/get-create-methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,mEAEhD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCreateMethods = void 0;
|
|
4
|
+
function getCreateMethods(app) {
|
|
5
|
+
return app.hints && Object.entries(app.hints).filter(([_, { call_config }]) => (call_config === null || call_config === void 0 ? void 0 : call_config.no_op) === 'CREATE');
|
|
6
|
+
}
|
|
7
|
+
exports.getCreateMethods = getCreateMethods;
|
|
8
|
+
//# sourceMappingURL=get-create-methods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-create-methods.js","sourceRoot":"","sources":["../../../src/client/helpers/get-create-methods.ts"],"names":[],"mappings":";;;AAEA,SAAgB,gBAAgB,CAAC,GAAgB;IAC/C,OAAO,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,MAAK,QAAQ,CAAC,CAAA;AACjH,CAAC;AAFD,4CAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-equivalent-type.d.ts","sourceRoot":"","sources":["../../../src/client/helpers/get-equivalent-type.ts"],"names":[],"mappings":"AAaA,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAoDxF"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEquivalentType = void 0;
|
|
4
|
+
const algosdk_1 = require("algosdk");
|
|
5
|
+
function getEquivalentType(abiTypeStr, ioType) {
|
|
6
|
+
switch (abiTypeStr) {
|
|
7
|
+
case 'void':
|
|
8
|
+
return 'void';
|
|
9
|
+
case 'txn':
|
|
10
|
+
case 'pay':
|
|
11
|
+
case 'keyreg':
|
|
12
|
+
case 'acfg':
|
|
13
|
+
case 'axfer':
|
|
14
|
+
case 'afrz':
|
|
15
|
+
case 'appl':
|
|
16
|
+
case 'application':
|
|
17
|
+
return 'TransactionToSign | Transaction | Promise<SendTransactionResult>';
|
|
18
|
+
}
|
|
19
|
+
const abiType = algosdk_1.ABIType.from(abiTypeStr);
|
|
20
|
+
return abiTypeToTs(abiType, ioType);
|
|
21
|
+
function abiTypeToTs(abiType, ioType) {
|
|
22
|
+
if (abiType instanceof algosdk_1.ABIUintType) {
|
|
23
|
+
if (abiType.bitSize <= 51)
|
|
24
|
+
return 'number';
|
|
25
|
+
return ioType === 'input' ? 'bigint | number' : 'bigint';
|
|
26
|
+
}
|
|
27
|
+
if (abiType instanceof algosdk_1.ABIArrayDynamicType) {
|
|
28
|
+
if (abiType.childType instanceof algosdk_1.ABIByteType)
|
|
29
|
+
return 'Uint8Array';
|
|
30
|
+
return `${abiTypeToTs(abiType.childType, ioType)}[]`;
|
|
31
|
+
}
|
|
32
|
+
if (abiType instanceof algosdk_1.ABIArrayStaticType) {
|
|
33
|
+
if (abiType.childType instanceof algosdk_1.ABIByteType)
|
|
34
|
+
return 'Uint8Array';
|
|
35
|
+
return `[${new Array(abiType.staticLength).fill(abiTypeToTs(abiType.childType, ioType)).join(', ')}]`;
|
|
36
|
+
}
|
|
37
|
+
if (abiType instanceof algosdk_1.ABIAddressType) {
|
|
38
|
+
return 'string';
|
|
39
|
+
}
|
|
40
|
+
if (abiType instanceof algosdk_1.ABIBoolType) {
|
|
41
|
+
return 'boolean';
|
|
42
|
+
}
|
|
43
|
+
if (abiType instanceof algosdk_1.ABIUfixedType) {
|
|
44
|
+
return 'number';
|
|
45
|
+
}
|
|
46
|
+
if (abiType instanceof algosdk_1.ABITupleType) {
|
|
47
|
+
return `[${abiType.childTypes.map((c) => abiTypeToTs(c, ioType)).join(', ')}]`;
|
|
48
|
+
}
|
|
49
|
+
if (abiType instanceof algosdk_1.ABIByteType) {
|
|
50
|
+
return 'number';
|
|
51
|
+
}
|
|
52
|
+
if (abiType instanceof algosdk_1.ABIStringType) {
|
|
53
|
+
return 'string';
|
|
54
|
+
}
|
|
55
|
+
return 'unknown';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.getEquivalentType = getEquivalentType;
|
|
59
|
+
//# sourceMappingURL=get-equivalent-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-equivalent-type.js","sourceRoot":"","sources":["../../../src/client/helpers/get-equivalent-type.ts"],"names":[],"mappings":";;;AAAA,qCAWgB;AAEhB,SAAgB,iBAAiB,CAAC,UAAkB,EAAE,MAA0B;IAC9E,QAAQ,UAAU,EAAE;QAClB,KAAK,MAAM;YACT,OAAO,MAAM,CAAA;QACf,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,aAAa;YAChB,OAAO,kEAAkE,CAAA;KAC5E;IAED,MAAM,OAAO,GAAG,iBAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAExC,OAAO,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAEnC,SAAS,WAAW,CAAC,OAAgB,EAAE,MAA0B;QAC/D,IAAI,OAAO,YAAY,qBAAW,EAAE;YAClC,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE;gBAAE,OAAO,QAAQ,CAAA;YAC1C,OAAO,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAA;SACzD;QACD,IAAI,OAAO,YAAY,6BAAmB,EAAE;YAC1C,IAAI,OAAO,CAAC,SAAS,YAAY,qBAAW;gBAAE,OAAO,YAAY,CAAA;YACjE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAA;SACrD;QACD,IAAI,OAAO,YAAY,4BAAkB,EAAE;YACzC,IAAI,OAAO,CAAC,SAAS,YAAY,qBAAW;gBAAE,OAAO,YAAY,CAAA;YACjE,OAAO,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;SACtG;QACD,IAAI,OAAO,YAAY,wBAAc,EAAE;YACrC,OAAO,QAAQ,CAAA;SAChB;QACD,IAAI,OAAO,YAAY,qBAAW,EAAE;YAClC,OAAO,SAAS,CAAA;SACjB;QACD,IAAI,OAAO,YAAY,uBAAa,EAAE;YACpC,OAAO,QAAQ,CAAA;SAChB;QACD,IAAI,OAAO,YAAY,sBAAY,EAAE;YACnC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;SAC/E;QACD,IAAI,OAAO,YAAY,qBAAW,EAAE;YAClC,OAAO,QAAQ,CAAA;SAChB;QACD,IAAI,OAAO,YAAY,uBAAa,EAAE;YACpC,OAAO,QAAQ,CAAA;SAChB;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AApDD,8CAoDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/client/imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,wBAAiB,OAAO,IAAI,aAAa,CAqBxC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.imports = void 0;
|
|
4
|
+
function* imports() {
|
|
5
|
+
yield `import * as algokit from '@algorandfoundation/algokit-utils'
|
|
6
|
+
import {
|
|
7
|
+
AppCallTransactionResult,
|
|
8
|
+
AppCallTransactionResultOfType,
|
|
9
|
+
CoreAppCallArgs,
|
|
10
|
+
RawAppCallArgs,
|
|
11
|
+
AppState,
|
|
12
|
+
TealTemplateParams,
|
|
13
|
+
} from '@algorandfoundation/algokit-utils/types/app'
|
|
14
|
+
import {
|
|
15
|
+
AppClientCallArgs,
|
|
16
|
+
AppClientCallCoreParams,
|
|
17
|
+
AppClientCompilationParams,
|
|
18
|
+
AppClientDeployCoreParams,
|
|
19
|
+
AppDetails,
|
|
20
|
+
ApplicationClient,
|
|
21
|
+
} from '@algorandfoundation/algokit-utils/types/app-client'
|
|
22
|
+
import { AppSpec } from '@algorandfoundation/algokit-utils/types/app-spec'
|
|
23
|
+
import { SendTransactionResult, TransactionToSign, SendTransactionFrom } from '@algorandfoundation/algokit-utils/types/transaction'
|
|
24
|
+
import { Algodv2, OnApplicationComplete, Transaction } from 'algosdk'`;
|
|
25
|
+
}
|
|
26
|
+
exports.imports = imports;
|
|
27
|
+
//# sourceMappingURL=imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/client/imports.ts"],"names":[],"mappings":";;;AAEA,QAAe,CAAC,CAAC,OAAO;IACtB,MAAM;;;;;;;;;;;;;;;;;;;sEAmB8D,CAAA;AACtE,CAAC;AArBD,0BAqBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"return-types.d.ts","sourceRoot":"","sources":["../../src/client/return-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAqC,aAAa,EAAa,MAAM,kBAAkB,CAAA;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAInD,wBAAiB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,aAAa,CAc5D"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
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.returnTypes = 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_equivalent_type_1 = require("./helpers/get-equivalent-type");
|
|
31
|
+
function* returnTypes(app) {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
const appName = (0, sanitization_1.makeSafeTypeIdentifier)(app.contract.name);
|
|
34
|
+
yield `export type ${appName}ReturnTypes = {`;
|
|
35
|
+
yield writer_1.IncIndent;
|
|
36
|
+
for (const method of app.contract.methods) {
|
|
37
|
+
yield `'${algokit.getABIMethodSignature(method)}': ${(0, get_equivalent_type_1.getEquivalentType)((_a = method.returns.type) !== null && _a !== void 0 ? _a : 'void', 'output')}`;
|
|
38
|
+
yield `'${method.name}': ${(0, get_equivalent_type_1.getEquivalentType)((_b = method.returns.type) !== null && _b !== void 0 ? _b : 'void', 'output')}`;
|
|
39
|
+
}
|
|
40
|
+
yield writer_1.DecIndentAndCloseBlock;
|
|
41
|
+
yield `export type ${appName}ReturnTypeFor<TSignatureOrMethod> = TSignatureOrMethod extends keyof ${appName}ReturnTypes`;
|
|
42
|
+
yield writer_1.IncIndent;
|
|
43
|
+
yield `? ${appName}ReturnTypes[TSignatureOrMethod]`;
|
|
44
|
+
yield `: undefined`;
|
|
45
|
+
yield writer_1.DecIndent;
|
|
46
|
+
}
|
|
47
|
+
exports.returnTypes = returnTypes;
|
|
48
|
+
//# sourceMappingURL=return-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"return-types.js","sourceRoot":"","sources":["../../src/client/return-types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2EAA4D;AAC5D,6CAA8F;AAE9F,uDAA6D;AAC7D,uEAAiE;AAEjE,QAAe,CAAC,CAAC,WAAW,CAAC,GAAgB;;IAC3C,MAAM,OAAO,GAAG,IAAA,qCAAsB,EAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACzD,MAAM,eAAe,OAAO,iBAAiB,CAAA;IAC7C,MAAM,kBAAS,CAAA;IACf,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;QACzC,MAAM,IAAI,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,IAAA,uCAAiB,EAAC,MAAA,MAAM,CAAC,OAAO,CAAC,IAAI,mCAAI,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAA;QACjH,MAAM,IAAI,MAAM,CAAC,IAAI,MAAM,IAAA,uCAAiB,EAAC,MAAA,MAAM,CAAC,OAAO,CAAC,IAAI,mCAAI,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAA;KACxF;IACD,MAAM,+BAAsB,CAAA;IAC5B,MAAM,eAAe,OAAO,wEAAwE,OAAO,aAAa,CAAA;IACxH,MAAM,kBAAS,CAAA;IACf,MAAM,KAAK,OAAO,iCAAiC,CAAA;IACnD,MAAM,aAAa,CAAA;IACnB,MAAM,kBAAS,CAAA;AACjB,CAAC;AAdD,kCAcC"}
|