@algorandfoundation/algokit-client-generator 3.0.6-beta.1 → 3.1.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/README.md +4 -2
- package/client/{call-factory.d.ts → app-client.d.ts} +1 -1
- package/client/{call-client.d.ts → app-factory.d.ts} +1 -1
- package/client/deploy-types.d.ts +8 -4
- package/client/generate.d.ts +2 -2
- package/client/generator-context.d.ts +4 -4
- package/client/helpers/get-call-config-summary.d.ts +8 -3
- package/client/helpers/get-equivalent-type.d.ts +6 -1
- package/client/params-factory.d.ts +3 -0
- package/client/utility-types.d.ts +0 -7
- package/package.json +4 -3
- package/schema/load.d.ts +3 -3
- package/{cli.js → src/cli.js} +1 -1
- package/src/cli.js.map +1 -0
- package/{cli.mjs → src/cli.mjs} +1 -1
- package/src/cli.mjs.map +1 -0
- package/src/client/app-client.js +288 -0
- package/src/client/app-client.js.map +1 -0
- package/src/client/app-client.mjs +286 -0
- package/src/client/app-client.mjs.map +1 -0
- package/src/client/app-factory.js +238 -0
- package/src/client/app-factory.js.map +1 -0
- package/src/client/app-factory.mjs +236 -0
- package/src/client/app-factory.mjs.map +1 -0
- package/src/client/app-types.js +263 -0
- package/src/client/app-types.js.map +1 -0
- package/src/client/app-types.mjs +261 -0
- package/src/client/app-types.mjs.map +1 -0
- package/{client → src/client}/call-composer-types.js +23 -53
- package/src/client/call-composer-types.js.map +1 -0
- package/{client → src/client}/call-composer-types.mjs +23 -34
- package/src/client/call-composer-types.mjs.map +1 -0
- package/src/client/call-composer.js +135 -0
- package/src/client/call-composer.js.map +1 -0
- package/src/client/call-composer.mjs +133 -0
- package/src/client/call-composer.mjs.map +1 -0
- package/src/client/deploy-types.js +115 -0
- package/src/client/deploy-types.js.map +1 -0
- package/src/client/deploy-types.mjs +111 -0
- package/src/client/deploy-types.mjs.map +1 -0
- package/{client → src/client}/generate.js +18 -6
- package/src/client/generate.js.map +1 -0
- package/{client → src/client}/generate.mjs +18 -6
- package/src/client/generate.mjs.map +1 -0
- package/src/client/generator-context.js +23 -0
- package/src/client/generator-context.js.map +1 -0
- package/{client → src/client}/generator-context.mjs +5 -5
- package/src/client/generator-context.mjs.map +1 -0
- package/src/client/helpers/get-call-config-summary.js +60 -0
- package/src/client/helpers/get-call-config-summary.js.map +1 -0
- package/src/client/helpers/get-call-config-summary.mjs +57 -0
- package/src/client/helpers/get-call-config-summary.mjs.map +1 -0
- package/{client → src/client}/helpers/get-equivalent-type.js +10 -6
- package/src/client/helpers/get-equivalent-type.js.map +1 -0
- package/{client → src/client}/helpers/get-equivalent-type.mjs +10 -6
- package/src/client/helpers/get-equivalent-type.mjs.map +1 -0
- package/src/client/imports.js +25 -0
- package/src/client/imports.js.map +1 -0
- package/src/client/imports.mjs +23 -0
- package/src/client/imports.mjs.map +1 -0
- package/src/client/params-factory.js +126 -0
- package/src/client/params-factory.js.map +1 -0
- package/src/client/params-factory.mjs +124 -0
- package/src/client/params-factory.mjs.map +1 -0
- package/src/client/utility-types.js +44 -0
- package/src/client/utility-types.js.map +1 -0
- package/src/client/utility-types.mjs +42 -0
- package/src/client/utility-types.mjs.map +1 -0
- package/{output → src/output}/writer.js +17 -3
- package/src/output/writer.js.map +1 -0
- package/{output → src/output}/writer.mjs +17 -3
- package/src/output/writer.mjs.map +1 -0
- package/{schema → src/schema}/application.schema.json.js +2 -2
- package/{schema → src/schema}/application.schema.json.mjs +2 -2
- package/src/schema/arc56.schema.json.js +787 -0
- package/src/schema/arc56.schema.json.js.map +1 -0
- package/src/schema/arc56.schema.json.mjs +780 -0
- package/src/schema/arc56.schema.json.mjs.map +1 -0
- package/src/schema/load.js +40 -0
- package/src/schema/load.js.map +1 -0
- package/src/schema/load.mjs +37 -0
- package/src/schema/load.mjs.map +1 -0
- package/src/util/boom.js.map +1 -0
- package/src/util/boom.mjs.map +1 -0
- package/src/util/color-console.js.map +1 -0
- package/src/util/color-console.mjs.map +1 -0
- package/src/util/sanitization.js.map +1 -0
- package/src/util/sanitization.mjs.map +1 -0
- package/cli.js.map +0 -1
- package/cli.mjs.map +0 -1
- package/client/app-types.js +0 -165
- package/client/app-types.js.map +0 -1
- package/client/app-types.mjs +0 -144
- package/client/app-types.mjs.map +0 -1
- package/client/call-client.js +0 -341
- package/client/call-client.js.map +0 -1
- package/client/call-client.mjs +0 -320
- package/client/call-client.mjs.map +0 -1
- package/client/call-composer-types.js.map +0 -1
- package/client/call-composer-types.mjs.map +0 -1
- package/client/call-composer.js +0 -149
- package/client/call-composer.js.map +0 -1
- package/client/call-composer.mjs +0 -128
- package/client/call-composer.mjs.map +0 -1
- package/client/call-factory.js +0 -142
- package/client/call-factory.js.map +0 -1
- package/client/call-factory.mjs +0 -121
- package/client/call-factory.mjs.map +0 -1
- package/client/deploy-types.js +0 -97
- package/client/deploy-types.js.map +0 -1
- package/client/deploy-types.mjs +0 -94
- package/client/deploy-types.mjs.map +0 -1
- package/client/generate.js.map +0 -1
- package/client/generate.mjs.map +0 -1
- package/client/generator-context.js +0 -42
- package/client/generator-context.js.map +0 -1
- package/client/generator-context.mjs.map +0 -1
- package/client/helpers/get-call-config-summary.js +0 -58
- package/client/helpers/get-call-config-summary.js.map +0 -1
- package/client/helpers/get-call-config-summary.mjs +0 -55
- package/client/helpers/get-call-config-summary.mjs.map +0 -1
- package/client/helpers/get-equivalent-type.js.map +0 -1
- package/client/helpers/get-equivalent-type.mjs.map +0 -1
- package/client/imports.js +0 -31
- package/client/imports.js.map +0 -1
- package/client/imports.mjs +0 -29
- package/client/imports.mjs.map +0 -1
- package/client/utility-types.js +0 -57
- package/client/utility-types.js.map +0 -1
- package/client/utility-types.mjs +0 -54
- package/client/utility-types.mjs.map +0 -1
- package/output/writer.js.map +0 -1
- package/output/writer.mjs.map +0 -1
- package/schema/load.js +0 -26
- package/schema/load.js.map +0 -1
- package/schema/load.mjs +0 -23
- package/schema/load.mjs.map +0 -1
- package/util/boom.js.map +0 -1
- package/util/boom.mjs.map +0 -1
- package/util/color-console.js.map +0 -1
- package/util/color-console.mjs.map +0 -1
- package/util/sanitization.js.map +0 -1
- package/util/sanitization.mjs.map +0 -1
- /package/{index.js → src/index.js} +0 -0
- /package/{index.js.map → src/index.js.map} +0 -0
- /package/{index.mjs → src/index.mjs} +0 -0
- /package/{index.mjs.map → src/index.mjs.map} +0 -0
- /package/{schema → src/schema}/application.schema.json.js.map +0 -0
- /package/{schema → src/schema}/application.schema.json.mjs.map +0 -0
- /package/{schema → src/schema}/contract.schema.json.js +0 -0
- /package/{schema → src/schema}/contract.schema.json.js.map +0 -0
- /package/{schema → src/schema}/contract.schema.json.mjs +0 -0
- /package/{schema → src/schema}/contract.schema.json.mjs.map +0 -0
- /package/{util → src/util}/boom.js +0 -0
- /package/{util → src/util}/boom.mjs +0 -0
- /package/{util → src/util}/color-console.js +0 -0
- /package/{util → src/util}/color-console.mjs +0 -0
- /package/{util → src/util}/sanitization.js +0 -0
- /package/{util → src/util}/sanitization.mjs +0 -0
package/client/call-composer.mjs
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { IncIndent, DecIndent, DecIndentAndCloseBlock } from '../output/writer.mjs';
|
|
2
|
-
import * as algokit from '@algorandfoundation/algokit-utils';
|
|
3
|
-
import { BARE_CALL } from './helpers/get-call-config-summary.mjs';
|
|
4
|
-
import { getCreateOnCompleteOptions } from './deploy-types.mjs';
|
|
5
|
-
|
|
6
|
-
function* composeMethod(ctx) {
|
|
7
|
-
const { name, callConfig } = ctx;
|
|
8
|
-
yield `public compose(): ${name}Composer {`;
|
|
9
|
-
yield IncIndent;
|
|
10
|
-
yield `const client = this`;
|
|
11
|
-
yield `const atc = new AtomicTransactionComposer()`;
|
|
12
|
-
yield `let promiseChain:Promise<unknown> = Promise.resolve()`;
|
|
13
|
-
yield `const resultMappers: Array<undefined | ((x: any) => any)> = []`;
|
|
14
|
-
yield `return {`;
|
|
15
|
-
yield IncIndent;
|
|
16
|
-
yield* callComposerNoops(ctx);
|
|
17
|
-
yield* callComposerOperationMethods(ctx, callConfig.updateMethods, 'update', true);
|
|
18
|
-
yield* callComposerOperationMethods(ctx, callConfig.deleteMethods, 'delete');
|
|
19
|
-
yield* callComposerOperationMethods(ctx, callConfig.optInMethods, 'optIn');
|
|
20
|
-
yield* callComposerOperationMethods(ctx, callConfig.closeOutMethods, 'closeOut');
|
|
21
|
-
yield* callComposerClearState();
|
|
22
|
-
yield `addTransaction(txn: TransactionWithSigner | TransactionToSign | Transaction | Promise<SendTransactionResult>, defaultSender?: SendTransactionFrom) {`;
|
|
23
|
-
yield IncIndent;
|
|
24
|
-
yield 'promiseChain = promiseChain.then(async () => atc.addTransaction(await algokit.getTransactionWithSigner(txn, defaultSender ??' +
|
|
25
|
-
' client.sender)))';
|
|
26
|
-
yield 'return this';
|
|
27
|
-
yield DecIndent;
|
|
28
|
-
yield '},';
|
|
29
|
-
yield `async atc() {`;
|
|
30
|
-
yield IncIndent;
|
|
31
|
-
yield 'await promiseChain';
|
|
32
|
-
yield 'return atc';
|
|
33
|
-
yield DecIndent;
|
|
34
|
-
yield '},';
|
|
35
|
-
yield `async simulate(options?: SimulateOptions) {`;
|
|
36
|
-
yield IncIndent;
|
|
37
|
-
yield `await promiseChain`;
|
|
38
|
-
yield `const result = await atc.simulate(client.algod, new modelsv2.SimulateRequest({ txnGroups: [], ...options }))`;
|
|
39
|
-
yield `return {`;
|
|
40
|
-
yield IncIndent;
|
|
41
|
-
yield `...result,`;
|
|
42
|
-
yield `returns: result.methodResults?.map((val, i) => resultMappers[i] !== undefined ? resultMappers[i]!(val.returnValue) : val.returnValue)`;
|
|
43
|
-
yield DecIndentAndCloseBlock;
|
|
44
|
-
yield DecIndent;
|
|
45
|
-
yield '},';
|
|
46
|
-
yield `async execute(sendParams?: AppClientComposeExecuteParams) {`;
|
|
47
|
-
yield IncIndent;
|
|
48
|
-
yield `await promiseChain`;
|
|
49
|
-
yield `const result = await algokit.sendAtomicTransactionComposer({ atc, sendParams }, client.algod)`;
|
|
50
|
-
yield `return {`;
|
|
51
|
-
yield IncIndent;
|
|
52
|
-
yield `...result,`;
|
|
53
|
-
yield `returns: result.returns?.map((val, i) => resultMappers[i] !== undefined ? resultMappers[i]!(val.returnValue) : val.returnValue)`;
|
|
54
|
-
yield DecIndentAndCloseBlock;
|
|
55
|
-
yield DecIndentAndCloseBlock;
|
|
56
|
-
yield DecIndent;
|
|
57
|
-
yield `} as unknown as ${name}Composer`;
|
|
58
|
-
yield DecIndentAndCloseBlock;
|
|
59
|
-
}
|
|
60
|
-
function* callComposerNoops({ app, callConfig, methodSignatureToUniqueName, sanitizer }) {
|
|
61
|
-
for (const method of app.contract.methods) {
|
|
62
|
-
const methodSignature = algokit.getABIMethodSignature(method);
|
|
63
|
-
const methodName = sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]);
|
|
64
|
-
const methodSignatureSafe = sanitizer.makeSafeStringTypeLiteral(methodSignature);
|
|
65
|
-
const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName);
|
|
66
|
-
// Skip methods which don't support a no_op call config
|
|
67
|
-
if (!callConfig.callMethods.includes(methodSignature))
|
|
68
|
-
continue;
|
|
69
|
-
yield `${methodName}(args: MethodArgs<'${methodSignatureSafe}'>, params?: AppClientComposeCallCoreParams & CoreAppCallArgs) {`;
|
|
70
|
-
yield IncIndent;
|
|
71
|
-
yield `promiseChain = promiseChain.then(() => client${methodNameAccessor}(args, {...params, sendParams: {...params?.sendParams, skipSending: true, atc}}))`;
|
|
72
|
-
const outputTypeName = app.hints?.[methodSignature]?.structs?.output?.name;
|
|
73
|
-
yield `resultMappers.push(${outputTypeName ?? 'undefined'})`;
|
|
74
|
-
yield `return this`;
|
|
75
|
-
yield DecIndent;
|
|
76
|
-
yield '},';
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
function* callComposerClearState() {
|
|
80
|
-
yield `clearState(args?: BareCallArgs & AppClientComposeCallCoreParams & CoreAppCallArgs) {`;
|
|
81
|
-
yield IncIndent;
|
|
82
|
-
yield `promiseChain = promiseChain.then(() => client.clearState({...args, sendParams: {...args?.sendParams, skipSending: true, atc}}))`;
|
|
83
|
-
yield `resultMappers.push(undefined)`;
|
|
84
|
-
yield `return this`;
|
|
85
|
-
yield DecIndent;
|
|
86
|
-
yield '},';
|
|
87
|
-
}
|
|
88
|
-
function* callComposerOperationMethods({ app, methodSignatureToUniqueName, sanitizer }, methods, verb, includeCompilation) {
|
|
89
|
-
if (methods.length) {
|
|
90
|
-
yield `get ${verb}() {`;
|
|
91
|
-
yield IncIndent;
|
|
92
|
-
yield `const $this = this`;
|
|
93
|
-
yield `return {`;
|
|
94
|
-
yield IncIndent;
|
|
95
|
-
for (const methodSig of methods) {
|
|
96
|
-
const onComplete = verb === 'create' ? getCreateOnCompleteOptions(methodSig, app) : undefined;
|
|
97
|
-
if (methodSig === BARE_CALL) {
|
|
98
|
-
yield `bare(args${onComplete?.isOptional !== false ? '?' : ''}: BareCallArgs & AppClientComposeCallCoreParams ${includeCompilation ? '& AppClientCompilationParams ' : ''}& CoreAppCallArgs${onComplete?.type ? ` & ${onComplete.type}` : ''}) {`;
|
|
99
|
-
yield IncIndent;
|
|
100
|
-
yield `promiseChain = promiseChain.then(() => client.${verb}.bare({...args, sendParams: {...args?.sendParams, skipSending: true, atc}}))`;
|
|
101
|
-
yield `resultMappers.push(undefined)`;
|
|
102
|
-
yield `return $this`;
|
|
103
|
-
yield DecIndent;
|
|
104
|
-
yield '},';
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
const uniqueName = methodSignatureToUniqueName[methodSig];
|
|
108
|
-
const methodName = sanitizer.makeSafeMethodIdentifier(uniqueName);
|
|
109
|
-
const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName);
|
|
110
|
-
const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(methodSig);
|
|
111
|
-
yield `${methodName}(args: MethodArgs<'${methodSigSafe}'>, params${onComplete?.isOptional !== false ? '?' : ''}: AppClientComposeCallCoreParams${includeCompilation ? ' & AppClientCompilationParams' : ''}${onComplete?.type ? ` & ${onComplete.type}` : ''}) {`;
|
|
112
|
-
yield IncIndent;
|
|
113
|
-
yield `promiseChain = promiseChain.then(() => client.${verb}${methodNameAccessor}(args, {...params, sendParams: {...params?.sendParams, skipSending: true, atc}}))`;
|
|
114
|
-
const outputTypeName = app.hints?.[methodSig]?.structs?.output?.name;
|
|
115
|
-
yield `resultMappers.push(${outputTypeName ?? 'undefined'})`;
|
|
116
|
-
yield `return $this`;
|
|
117
|
-
yield DecIndent;
|
|
118
|
-
yield '},';
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
yield DecIndentAndCloseBlock;
|
|
122
|
-
yield DecIndent;
|
|
123
|
-
yield '},';
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export { composeMethod };
|
|
128
|
-
//# sourceMappingURL=call-composer.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"call-composer.mjs","sources":["../../src/client/call-composer.ts"],"sourcesContent":["import { DecIndent, DecIndentAndCloseBlock, DocumentParts, IncIndent } from '../output/writer'\nimport { GeneratorContext } from './generator-context'\nimport * as algokit from '@algorandfoundation/algokit-utils'\nimport { BARE_CALL, MethodList } from './helpers/get-call-config-summary'\nimport { getCreateOnCompleteOptions } from './deploy-types'\n\nexport function* composeMethod(ctx: GeneratorContext): DocumentParts {\n const { name, callConfig } = ctx\n yield `public compose(): ${name}Composer {`\n yield IncIndent\n\n yield `const client = this`\n yield `const atc = new AtomicTransactionComposer()`\n yield `let promiseChain:Promise<unknown> = Promise.resolve()`\n yield `const resultMappers: Array<undefined | ((x: any) => any)> = []`\n yield `return {`\n yield IncIndent\n\n yield* callComposerNoops(ctx)\n yield* callComposerOperationMethods(ctx, callConfig.updateMethods, 'update', true)\n yield* callComposerOperationMethods(ctx, callConfig.deleteMethods, 'delete')\n yield* callComposerOperationMethods(ctx, callConfig.optInMethods, 'optIn')\n yield* callComposerOperationMethods(ctx, callConfig.closeOutMethods, 'closeOut')\n yield* callComposerClearState()\n\n yield `addTransaction(txn: TransactionWithSigner | TransactionToSign | Transaction | Promise<SendTransactionResult>, defaultSender?: SendTransactionFrom) {`\n yield IncIndent\n yield 'promiseChain = promiseChain.then(async () => atc.addTransaction(await algokit.getTransactionWithSigner(txn, defaultSender ??' +\n ' client.sender)))'\n yield 'return this'\n yield DecIndent\n yield '},'\n\n yield `async atc() {`\n yield IncIndent\n yield 'await promiseChain'\n yield 'return atc'\n yield DecIndent\n yield '},'\n\n yield `async simulate(options?: SimulateOptions) {`\n yield IncIndent\n yield `await promiseChain`\n yield `const result = await atc.simulate(client.algod, new modelsv2.SimulateRequest({ txnGroups: [], ...options }))`\n yield `return {`\n yield IncIndent\n yield `...result,`\n yield `returns: result.methodResults?.map((val, i) => resultMappers[i] !== undefined ? resultMappers[i]!(val.returnValue) : val.returnValue)`\n yield DecIndentAndCloseBlock\n yield DecIndent\n yield '},'\n\n yield `async execute(sendParams?: AppClientComposeExecuteParams) {`\n yield IncIndent\n yield `await promiseChain`\n yield `const result = await algokit.sendAtomicTransactionComposer({ atc, sendParams }, client.algod)`\n yield `return {`\n yield IncIndent\n yield `...result,`\n yield `returns: result.returns?.map((val, i) => resultMappers[i] !== undefined ? resultMappers[i]!(val.returnValue) : val.returnValue)`\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield DecIndent\n yield `} as unknown as ${name}Composer`\n\n yield DecIndentAndCloseBlock\n}\n\nfunction* callComposerNoops({ app, 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 methodSignatureSafe = sanitizer.makeSafeStringTypeLiteral(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\n yield `${methodName}(args: MethodArgs<'${methodSignatureSafe}'>, params?: AppClientComposeCallCoreParams & CoreAppCallArgs) {`\n yield IncIndent\n yield `promiseChain = promiseChain.then(() => client${methodNameAccessor}(args, {...params, sendParams: {...params?.sendParams, skipSending: true, atc}}))`\n const outputTypeName = app.hints?.[methodSignature]?.structs?.output?.name\n yield `resultMappers.push(${outputTypeName ?? 'undefined'})`\n yield `return this`\n yield DecIndent\n yield '},'\n }\n}\n\nfunction* callComposerClearState(): DocumentParts {\n yield `clearState(args?: BareCallArgs & AppClientComposeCallCoreParams & CoreAppCallArgs) {`\n yield IncIndent\n yield `promiseChain = promiseChain.then(() => client.clearState({...args, sendParams: {...args?.sendParams, skipSending: true, atc}}))`\n yield `resultMappers.push(undefined)`\n yield `return this`\n yield DecIndent\n yield '},'\n}\n\nfunction* callComposerOperationMethods(\n { app, methodSignatureToUniqueName, sanitizer }: GeneratorContext,\n methods: MethodList,\n verb: 'create' | 'update' | 'optIn' | 'closeOut' | 'delete',\n includeCompilation?: boolean,\n): DocumentParts {\n if (methods.length) {\n yield `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 `bare(args${onComplete?.isOptional !== false ? '?' : ''}: BareCallArgs & AppClientComposeCallCoreParams ${\n includeCompilation ? '& AppClientCompilationParams ' : ''\n }& CoreAppCallArgs${onComplete?.type ? ` & ${onComplete.type}` : ''}) {`\n yield IncIndent\n yield `promiseChain = promiseChain.then(() => client.${verb}.bare({...args, sendParams: {...args?.sendParams, skipSending: true, atc}}))`\n yield `resultMappers.push(undefined)`\n yield `return $this`\n yield DecIndent\n yield '},'\n } else {\n const uniqueName = methodSignatureToUniqueName[methodSig]\n const methodName = sanitizer.makeSafeMethodIdentifier(uniqueName)\n const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName)\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(methodSig)\n yield `${methodName}(args: MethodArgs<'${methodSigSafe}'>, params${\n onComplete?.isOptional !== false ? '?' : ''\n }: AppClientComposeCallCoreParams${includeCompilation ? ' & AppClientCompilationParams' : ''}${\n onComplete?.type ? ` & ${onComplete.type}` : ''\n }) {`\n yield IncIndent\n yield `promiseChain = promiseChain.then(() => client.${verb}${methodNameAccessor}(args, {...params, sendParams: {...params?.sendParams, skipSending: true, atc}}))`\n const outputTypeName = app.hints?.[methodSig]?.structs?.output?.name\n yield `resultMappers.push(${outputTypeName ?? 'undefined'})`\n yield `return $this`\n yield DecIndent\n yield '},'\n }\n }\n yield DecIndentAndCloseBlock\n yield DecIndent\n yield '},'\n }\n}\n"],"names":[],"mappings":";;;;;AAMe,UAAE,aAAa,CAAC,GAAqB,EAAA;AAClD,IAAA,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,GAAG,CAAA;IAChC,MAAM,CAAA,kBAAA,EAAqB,IAAI,CAAA,UAAA,CAAY,CAAA;AAC3C,IAAA,MAAM,SAAS,CAAA;AAEf,IAAA,MAAM,qBAAqB,CAAA;AAC3B,IAAA,MAAM,6CAA6C,CAAA;AACnD,IAAA,MAAM,uDAAuD,CAAA;AAC7D,IAAA,MAAM,gEAAgE,CAAA;AACtE,IAAA,MAAM,UAAU,CAAA;AAChB,IAAA,MAAM,SAAS,CAAA;AAEf,IAAA,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAA;AAC7B,IAAA,OAAO,4BAA4B,CAAC,GAAG,EAAE,UAAU,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;AAClF,IAAA,OAAO,4BAA4B,CAAC,GAAG,EAAE,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;AAC5E,IAAA,OAAO,4BAA4B,CAAC,GAAG,EAAE,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;AAC1E,IAAA,OAAO,4BAA4B,CAAC,GAAG,EAAE,UAAU,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;AAChF,IAAA,OAAO,sBAAsB,EAAE,CAAA;AAE/B,IAAA,MAAM,sJAAsJ,CAAA;AAC5J,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,8HAA8H;AAClI,QAAA,mBAAmB,CAAA;AACrB,IAAA,MAAM,aAAa,CAAA;AACnB,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,IAAI,CAAA;AAEV,IAAA,MAAM,eAAe,CAAA;AACrB,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,oBAAoB,CAAA;AAC1B,IAAA,MAAM,YAAY,CAAA;AAClB,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,IAAI,CAAA;AAEV,IAAA,MAAM,6CAA6C,CAAA;AACnD,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,oBAAoB,CAAA;AAC1B,IAAA,MAAM,8GAA8G,CAAA;AACpH,IAAA,MAAM,UAAU,CAAA;AAChB,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,YAAY,CAAA;AAClB,IAAA,MAAM,uIAAuI,CAAA;AAC7I,IAAA,MAAM,sBAAsB,CAAA;AAC5B,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,IAAI,CAAA;AAEV,IAAA,MAAM,6DAA6D,CAAA;AACnE,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,oBAAoB,CAAA;AAC1B,IAAA,MAAM,+FAA+F,CAAA;AACrG,IAAA,MAAM,UAAU,CAAA;AAChB,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,YAAY,CAAA;AAClB,IAAA,MAAM,iIAAiI,CAAA;AACvI,IAAA,MAAM,sBAAsB,CAAA;AAC5B,IAAA,MAAM,sBAAsB,CAAA;AAC5B,IAAA,MAAM,SAAS,CAAA;IACf,MAAM,CAAA,gBAAA,EAAmB,IAAI,CAAA,QAAA,CAAU,CAAA;AAEvC,IAAA,MAAM,sBAAsB,CAAA;AAC9B,CAAC;AAED,UAAU,iBAAiB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,2BAA2B,EAAE,SAAS,EAAoB,EAAA;IACvG,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;QACzC,MAAM,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;QAC7D,MAAM,UAAU,GAAG,SAAS,CAAC,wBAAwB,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC,CAAA;QACnG,MAAM,mBAAmB,GAAG,SAAS,CAAC,yBAAyB,CAAC,eAAe,CAAC,CAAA;QAChF,MAAM,kBAAkB,GAAG,SAAS,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAA;;QAEtE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC;YAAE,SAAQ;AAE/D,QAAA,MAAM,CAAG,EAAA,UAAU,CAAsB,mBAAA,EAAA,mBAAmB,kEAAkE,CAAA;AAC9H,QAAA,MAAM,SAAS,CAAA;QACf,MAAM,CAAA,6CAAA,EAAgD,kBAAkB,CAAA,iFAAA,CAAmF,CAAA;AAC3J,QAAA,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAA;AAC1E,QAAA,MAAM,CAAsB,mBAAA,EAAA,cAAc,IAAI,WAAW,GAAG,CAAA;AAC5D,QAAA,MAAM,aAAa,CAAA;AACnB,QAAA,MAAM,SAAS,CAAA;AACf,QAAA,MAAM,IAAI,CAAA;KACX;AACH,CAAC;AAED,UAAU,sBAAsB,GAAA;AAC9B,IAAA,MAAM,sFAAsF,CAAA;AAC5F,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,iIAAiI,CAAA;AACvI,IAAA,MAAM,+BAA+B,CAAA;AACrC,IAAA,MAAM,aAAa,CAAA;AACnB,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,IAAI,CAAA;AACZ,CAAC;AAED,UAAU,4BAA4B,CACpC,EAAE,GAAG,EAAE,2BAA2B,EAAE,SAAS,EAAoB,EACjE,OAAmB,EACnB,IAA2D,EAC3D,kBAA4B,EAAA;AAE5B,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,MAAM,CAAA,IAAA,EAAO,IAAI,CAAA,IAAA,CAAM,CAAA;AACvB,QAAA,MAAM,SAAS,CAAA;AACf,QAAA,MAAM,oBAAoB,CAAA;AAC1B,QAAA,MAAM,UAAU,CAAA;AAChB,QAAA,MAAM,SAAS,CAAA;AACf,QAAA,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE;AAC/B,YAAA,MAAM,UAAU,GAAG,IAAI,KAAK,QAAQ,GAAG,0BAA0B,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA;AAC7F,YAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,gBAAA,MAAM,YAAY,UAAU,EAAE,UAAU,KAAK,KAAK,GAAG,GAAG,GAAG,EAAE,mDAC3D,kBAAkB,GAAG,+BAA+B,GAAG,EACzD,CAAA,iBAAA,EAAoB,UAAU,EAAE,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAE,CAAA,GAAG,EAAE,KAAK,CAAA;AACxE,gBAAA,MAAM,SAAS,CAAA;gBACf,MAAM,CAAA,8CAAA,EAAiD,IAAI,CAAA,4EAAA,CAA8E,CAAA;AACzI,gBAAA,MAAM,+BAA+B,CAAA;AACrC,gBAAA,MAAM,cAAc,CAAA;AACpB,gBAAA,MAAM,SAAS,CAAA;AACf,gBAAA,MAAM,IAAI,CAAA;aACX;iBAAM;AACL,gBAAA,MAAM,UAAU,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAA;gBACzD,MAAM,UAAU,GAAG,SAAS,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAA;gBACjE,MAAM,kBAAkB,GAAG,SAAS,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAA;gBACtE,MAAM,aAAa,GAAG,SAAS,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAA;gBACpE,MAAM,CAAA,EAAG,UAAU,CAAsB,mBAAA,EAAA,aAAa,aACpD,UAAU,EAAE,UAAU,KAAK,KAAK,GAAG,GAAG,GAAG,EAC3C,CAAA,gCAAA,EAAmC,kBAAkB,GAAG,+BAA+B,GAAG,EAAE,GAC1F,UAAU,EAAE,IAAI,GAAG,CAAM,GAAA,EAAA,UAAU,CAAC,IAAI,CAAA,CAAE,GAAG,EAC/C,CAAA,GAAA,CAAK,CAAA;AACL,gBAAA,MAAM,SAAS,CAAA;AACf,gBAAA,MAAM,CAAiD,8CAAA,EAAA,IAAI,CAAG,EAAA,kBAAkB,mFAAmF,CAAA;AACnK,gBAAA,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAA;AACpE,gBAAA,MAAM,CAAsB,mBAAA,EAAA,cAAc,IAAI,WAAW,GAAG,CAAA;AAC5D,gBAAA,MAAM,cAAc,CAAA;AACpB,gBAAA,MAAM,SAAS,CAAA;AACf,gBAAA,MAAM,IAAI,CAAA;aACX;SACF;AACD,QAAA,MAAM,sBAAsB,CAAA;AAC5B,QAAA,MAAM,SAAS,CAAA;AACf,QAAA,MAAM,IAAI,CAAA;KACX;AACH;;;;"}
|
package/client/call-factory.js
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var writer = require('../output/writer.js');
|
|
4
|
-
var algokit = require('@algorandfoundation/algokit-utils');
|
|
5
|
-
var getCallConfigSummary = require('./helpers/get-call-config-summary.js');
|
|
6
|
-
var deployTypes = require('./deploy-types.js');
|
|
7
|
-
|
|
8
|
-
function _interopNamespaceDefault(e) {
|
|
9
|
-
var n = Object.create(null);
|
|
10
|
-
if (e) {
|
|
11
|
-
Object.keys(e).forEach(function (k) {
|
|
12
|
-
if (k !== 'default') {
|
|
13
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function () { return e[k]; }
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
n.default = e;
|
|
22
|
-
return Object.freeze(n);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
var algokit__namespace = /*#__PURE__*/_interopNamespaceDefault(algokit);
|
|
26
|
-
|
|
27
|
-
function* callFactory(ctx) {
|
|
28
|
-
yield* writer.jsDoc('Exposes methods for constructing all available smart contract calls');
|
|
29
|
-
yield `export abstract class ${ctx.name}CallFactory {`;
|
|
30
|
-
yield writer.IncIndent;
|
|
31
|
-
yield* opMethods(ctx);
|
|
32
|
-
for (const method of ctx.app.contract.methods) {
|
|
33
|
-
yield* callFactoryMethod(ctx, method);
|
|
34
|
-
}
|
|
35
|
-
yield writer.DecIndent;
|
|
36
|
-
yield '}';
|
|
37
|
-
}
|
|
38
|
-
function* opMethods(ctx) {
|
|
39
|
-
const { app, callConfig } = ctx;
|
|
40
|
-
yield* operationMethod(ctx, `Constructs a create call for the ${app.contract.name} smart contract`, callConfig.createMethods, 'create', true);
|
|
41
|
-
yield* operationMethod(ctx, `Constructs an update call for the ${app.contract.name} smart contract`, callConfig.updateMethods, 'update', true);
|
|
42
|
-
yield* operationMethod(ctx, `Constructs a delete call for the ${app.contract.name} smart contract`, callConfig.deleteMethods, 'delete');
|
|
43
|
-
yield* operationMethod(ctx, `Constructs an opt in call for the ${app.contract.name} smart contract`, callConfig.optInMethods, 'optIn');
|
|
44
|
-
yield* operationMethod(ctx, `Constructs a close out call for the ${app.contract.name} smart contract`, callConfig.closeOutMethods, 'closeOut');
|
|
45
|
-
}
|
|
46
|
-
function* operationMethod({ app, methodSignatureToUniqueName, sanitizer }, description, methods, verb, includeCompilation) {
|
|
47
|
-
if (methods.length) {
|
|
48
|
-
yield* writer.jsDoc(`Gets available ${verb} call factories`);
|
|
49
|
-
yield `static get ${verb}() {`;
|
|
50
|
-
yield writer.IncIndent;
|
|
51
|
-
yield `return {`;
|
|
52
|
-
yield writer.IncIndent;
|
|
53
|
-
for (const methodSig of methods) {
|
|
54
|
-
const onComplete = verb === 'create' ? deployTypes.getCreateOnCompleteOptions(methodSig, app) : undefined;
|
|
55
|
-
if (methodSig === getCallConfigSummary.BARE_CALL) {
|
|
56
|
-
yield* writer.jsDoc({
|
|
57
|
-
description: `${description} using a bare call`,
|
|
58
|
-
params: {
|
|
59
|
-
params: `Any parameters for the call`,
|
|
60
|
-
},
|
|
61
|
-
returns: `A TypedCallParams object for the call`,
|
|
62
|
-
});
|
|
63
|
-
yield* factoryMethod({
|
|
64
|
-
isNested: true,
|
|
65
|
-
name: 'bare',
|
|
66
|
-
sanitizer,
|
|
67
|
-
paramTypes: `BareCallArgs & AppClientCallCoreParams & CoreAppCallArgs${includeCompilation ? ' & AppClientCompilationParams' : ''}${onComplete?.type ? ` & ${onComplete.type}` : ''}${onComplete?.isOptional !== false ? ' = {}' : ''}`,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
const method = app.contract.methods.find((m) => algokit__namespace.getABIMethodSignature(m) === methodSig);
|
|
72
|
-
const uniqueName = methodSignatureToUniqueName[methodSig];
|
|
73
|
-
yield* writer.jsDoc({
|
|
74
|
-
description: `${description} using the ${methodSig} ABI method`,
|
|
75
|
-
params: {
|
|
76
|
-
args: `Any args for the contract call`,
|
|
77
|
-
params: `Any additional parameters for the call`,
|
|
78
|
-
},
|
|
79
|
-
returns: `A TypedCallParams object for the call`,
|
|
80
|
-
});
|
|
81
|
-
yield* factoryMethod({
|
|
82
|
-
isNested: true,
|
|
83
|
-
sanitizer,
|
|
84
|
-
name: sanitizer.makeSafeMethodIdentifier(uniqueName),
|
|
85
|
-
signature: methodSig,
|
|
86
|
-
args: method.args,
|
|
87
|
-
paramTypes: `AppClientCallCoreParams & CoreAppCallArgs${includeCompilation ? ' & AppClientCompilationParams' : ''}${onComplete?.type ? ` & ${onComplete.type}` : ''}${onComplete?.isOptional !== false ? ' = {}' : ''}`,
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
yield writer.DecIndentAndCloseBlock;
|
|
92
|
-
yield writer.DecIndentAndCloseBlock;
|
|
93
|
-
yield writer.NewLine;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
function* callFactoryMethod({ methodSignatureToUniqueName, callConfig, sanitizer }, method) {
|
|
97
|
-
const methodSignature = algokit__namespace.getABIMethodSignature(method);
|
|
98
|
-
if (!callConfig.callMethods.includes(methodSignature))
|
|
99
|
-
return;
|
|
100
|
-
yield* writer.jsDoc({
|
|
101
|
-
description: `Constructs a no op call for the ${methodSignature} ABI method`,
|
|
102
|
-
abiDescription: method.desc,
|
|
103
|
-
params: {
|
|
104
|
-
args: `Any args for the contract call`,
|
|
105
|
-
params: `Any additional parameters for the call`,
|
|
106
|
-
},
|
|
107
|
-
returns: `A TypedCallParams object for the call`,
|
|
108
|
-
});
|
|
109
|
-
yield* factoryMethod({
|
|
110
|
-
isNested: false,
|
|
111
|
-
sanitizer,
|
|
112
|
-
name: sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]),
|
|
113
|
-
signature: methodSignature,
|
|
114
|
-
args: method.args,
|
|
115
|
-
paramTypes: 'AppClientCallCoreParams & CoreAppCallArgs',
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
function* factoryMethod({ isNested, name, signature, args, paramTypes, sanitizer, }) {
|
|
119
|
-
const signatureSafe = signature && sanitizer.makeSafeStringTypeLiteral(signature);
|
|
120
|
-
yield `${isNested ? '' : 'static '}${name}(${signature === undefined ? '' : `args: MethodArgs<'${signatureSafe}'>, `}params: ${paramTypes}) {`;
|
|
121
|
-
yield writer.IncIndent;
|
|
122
|
-
yield `return {`;
|
|
123
|
-
yield writer.IncIndent;
|
|
124
|
-
if (signature) {
|
|
125
|
-
yield `method: '${signatureSafe}' as const,`;
|
|
126
|
-
yield `methodArgs: Array.isArray(args) ? args : [${args
|
|
127
|
-
.map((a) => `args${sanitizer.getSafeMemberAccessor(sanitizer.makeSafePropertyIdentifier(a.name))}`)
|
|
128
|
-
.join(', ')}],`;
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
yield `method: undefined,`;
|
|
132
|
-
yield `methodArgs: undefined,`;
|
|
133
|
-
}
|
|
134
|
-
yield '...params,';
|
|
135
|
-
yield writer.DecIndent;
|
|
136
|
-
yield '}';
|
|
137
|
-
yield writer.DecIndent;
|
|
138
|
-
yield `}${isNested ? ',' : ''}`;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
exports.callFactory = callFactory;
|
|
142
|
-
//# sourceMappingURL=call-factory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"call-factory.js","sources":["../../src/client/call-factory.ts"],"sourcesContent":["import { ContractMethod } from '../schema/application'\nimport { DecIndent, DecIndentAndCloseBlock, DocumentParts, IncIndent, jsDoc, NewLine } from '../output/writer'\nimport * as algokit from '@algorandfoundation/algokit-utils'\nimport { GeneratorContext } from './generator-context'\nimport { BARE_CALL, MethodList } from './helpers/get-call-config-summary'\nimport { getCreateOnCompleteOptions } from './deploy-types'\nimport { Sanitizer } from '../util/sanitization'\n\nexport function* callFactory(ctx: GeneratorContext): DocumentParts {\n yield* jsDoc('Exposes methods for constructing all available smart contract calls')\n yield `export abstract class ${ctx.name}CallFactory {`\n yield IncIndent\n\n yield* opMethods(ctx)\n\n for (const method of ctx.app.contract.methods) {\n yield* callFactoryMethod(ctx, method)\n }\n\n yield DecIndent\n\n yield '}'\n}\n\nfunction* opMethods(ctx: GeneratorContext): DocumentParts {\n const { app, callConfig } = ctx\n\n yield* operationMethod(\n ctx,\n `Constructs a create call for the ${app.contract.name} smart contract`,\n callConfig.createMethods,\n 'create',\n true,\n )\n yield* operationMethod(\n ctx,\n `Constructs an update call for the ${app.contract.name} smart contract`,\n callConfig.updateMethods,\n 'update',\n true,\n )\n yield* operationMethod(ctx, `Constructs a delete call for the ${app.contract.name} smart contract`, callConfig.deleteMethods, 'delete')\n yield* operationMethod(ctx, `Constructs an opt in call for the ${app.contract.name} smart contract`, callConfig.optInMethods, 'optIn')\n yield* operationMethod(\n ctx,\n `Constructs a close out call for the ${app.contract.name} smart contract`,\n callConfig.closeOutMethods,\n 'closeOut',\n )\n}\n\nfunction* operationMethod(\n { app, methodSignatureToUniqueName, sanitizer }: GeneratorContext,\n description: string,\n methods: MethodList,\n verb: 'create' | 'update' | 'optIn' | 'closeOut' | 'delete',\n includeCompilation?: boolean,\n): DocumentParts {\n if (methods.length) {\n yield* jsDoc(`Gets available ${verb} call factories`)\n yield `static get ${verb}() {`\n yield IncIndent\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 params: `Any parameters for the call`,\n },\n returns: `A TypedCallParams object for the call`,\n })\n yield* factoryMethod({\n isNested: true,\n name: 'bare',\n sanitizer,\n paramTypes: `BareCallArgs & AppClientCallCoreParams & CoreAppCallArgs${\n includeCompilation ? ' & AppClientCompilationParams' : ''\n }${onComplete?.type ? ` & ${onComplete.type}` : ''}${onComplete?.isOptional !== false ? ' = {}' : ''}`,\n })\n } else {\n const method = app.contract.methods.find((m) => algokit.getABIMethodSignature(m) === methodSig)!\n const uniqueName = methodSignatureToUniqueName[methodSig]\n yield* jsDoc({\n description: `${description} using the ${methodSig} ABI method`,\n params: {\n args: `Any args for the contract call`,\n params: `Any additional parameters for the call`,\n },\n returns: `A TypedCallParams object for the call`,\n })\n yield* factoryMethod({\n isNested: true,\n sanitizer,\n name: sanitizer.makeSafeMethodIdentifier(uniqueName),\n signature: methodSig,\n args: method.args,\n paramTypes: `AppClientCallCoreParams & CoreAppCallArgs${includeCompilation ? ' & AppClientCompilationParams' : ''}${\n onComplete?.type ? ` & ${onComplete.type}` : ''\n }${onComplete?.isOptional !== false ? ' = {}' : ''}`,\n })\n }\n }\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield NewLine\n }\n}\n\nfunction* callFactoryMethod({ methodSignatureToUniqueName, callConfig, sanitizer }: GeneratorContext, method: ContractMethod) {\n const methodSignature = algokit.getABIMethodSignature(method)\n if (!callConfig.callMethods.includes(methodSignature)) return\n\n yield* jsDoc({\n description: `Constructs a no op call for the ${methodSignature} ABI method`,\n abiDescription: method.desc,\n params: {\n args: `Any args for the contract call`,\n params: `Any additional parameters for the call`,\n },\n returns: `A TypedCallParams object for the call`,\n })\n yield* factoryMethod({\n isNested: false,\n sanitizer,\n name: sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]),\n signature: methodSignature,\n args: method.args,\n paramTypes: 'AppClientCallCoreParams & CoreAppCallArgs',\n })\n}\n\nfunction* factoryMethod({\n isNested,\n name,\n signature,\n args,\n paramTypes,\n sanitizer,\n}:\n | {\n isNested: boolean\n name?: string\n signature?: undefined\n args?: undefined\n paramTypes: string\n sanitizer: Sanitizer\n }\n | {\n isNested: boolean\n name?: string\n signature: string\n args: Array<{ name: string }>\n paramTypes: string\n sanitizer: Sanitizer\n }) {\n const signatureSafe = signature && sanitizer.makeSafeStringTypeLiteral(signature)\n yield `${isNested ? '' : 'static '}${name}(${signature === undefined ? '' : `args: MethodArgs<'${signatureSafe}'>, `}params: ${paramTypes}) {`\n yield IncIndent\n yield `return {`\n yield IncIndent\n if (signature) {\n yield `method: '${signatureSafe}' as const,`\n yield `methodArgs: Array.isArray(args) ? args : [${args\n .map((a) => `args${sanitizer.getSafeMemberAccessor(sanitizer.makeSafePropertyIdentifier(a.name))}`)\n .join(', ')}],`\n } else {\n yield `method: undefined,`\n yield `methodArgs: undefined,`\n }\n\n yield '...params,'\n yield DecIndent\n yield '}'\n yield DecIndent\n yield `}${isNested ? ',' : ''}`\n}\n"],"names":["jsDoc","IncIndent","DecIndent","getCreateOnCompleteOptions","BARE_CALL","algokit","DecIndentAndCloseBlock","NewLine"],"mappings":"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"}
|
package/client/call-factory.mjs
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { jsDoc, IncIndent, DecIndent, DecIndentAndCloseBlock, NewLine } from '../output/writer.mjs';
|
|
2
|
-
import * as algokit from '@algorandfoundation/algokit-utils';
|
|
3
|
-
import { BARE_CALL } from './helpers/get-call-config-summary.mjs';
|
|
4
|
-
import { getCreateOnCompleteOptions } from './deploy-types.mjs';
|
|
5
|
-
|
|
6
|
-
function* callFactory(ctx) {
|
|
7
|
-
yield* jsDoc('Exposes methods for constructing all available smart contract calls');
|
|
8
|
-
yield `export abstract class ${ctx.name}CallFactory {`;
|
|
9
|
-
yield IncIndent;
|
|
10
|
-
yield* opMethods(ctx);
|
|
11
|
-
for (const method of ctx.app.contract.methods) {
|
|
12
|
-
yield* callFactoryMethod(ctx, method);
|
|
13
|
-
}
|
|
14
|
-
yield DecIndent;
|
|
15
|
-
yield '}';
|
|
16
|
-
}
|
|
17
|
-
function* opMethods(ctx) {
|
|
18
|
-
const { app, callConfig } = ctx;
|
|
19
|
-
yield* operationMethod(ctx, `Constructs a create call for the ${app.contract.name} smart contract`, callConfig.createMethods, 'create', true);
|
|
20
|
-
yield* operationMethod(ctx, `Constructs an update call for the ${app.contract.name} smart contract`, callConfig.updateMethods, 'update', true);
|
|
21
|
-
yield* operationMethod(ctx, `Constructs a delete call for the ${app.contract.name} smart contract`, callConfig.deleteMethods, 'delete');
|
|
22
|
-
yield* operationMethod(ctx, `Constructs an opt in call for the ${app.contract.name} smart contract`, callConfig.optInMethods, 'optIn');
|
|
23
|
-
yield* operationMethod(ctx, `Constructs a close out call for the ${app.contract.name} smart contract`, callConfig.closeOutMethods, 'closeOut');
|
|
24
|
-
}
|
|
25
|
-
function* operationMethod({ app, methodSignatureToUniqueName, sanitizer }, description, methods, verb, includeCompilation) {
|
|
26
|
-
if (methods.length) {
|
|
27
|
-
yield* jsDoc(`Gets available ${verb} call factories`);
|
|
28
|
-
yield `static get ${verb}() {`;
|
|
29
|
-
yield IncIndent;
|
|
30
|
-
yield `return {`;
|
|
31
|
-
yield IncIndent;
|
|
32
|
-
for (const methodSig of methods) {
|
|
33
|
-
const onComplete = verb === 'create' ? getCreateOnCompleteOptions(methodSig, app) : undefined;
|
|
34
|
-
if (methodSig === BARE_CALL) {
|
|
35
|
-
yield* jsDoc({
|
|
36
|
-
description: `${description} using a bare call`,
|
|
37
|
-
params: {
|
|
38
|
-
params: `Any parameters for the call`,
|
|
39
|
-
},
|
|
40
|
-
returns: `A TypedCallParams object for the call`,
|
|
41
|
-
});
|
|
42
|
-
yield* factoryMethod({
|
|
43
|
-
isNested: true,
|
|
44
|
-
name: 'bare',
|
|
45
|
-
sanitizer,
|
|
46
|
-
paramTypes: `BareCallArgs & AppClientCallCoreParams & CoreAppCallArgs${includeCompilation ? ' & AppClientCompilationParams' : ''}${onComplete?.type ? ` & ${onComplete.type}` : ''}${onComplete?.isOptional !== false ? ' = {}' : ''}`,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
const method = app.contract.methods.find((m) => algokit.getABIMethodSignature(m) === methodSig);
|
|
51
|
-
const uniqueName = methodSignatureToUniqueName[methodSig];
|
|
52
|
-
yield* jsDoc({
|
|
53
|
-
description: `${description} using the ${methodSig} ABI method`,
|
|
54
|
-
params: {
|
|
55
|
-
args: `Any args for the contract call`,
|
|
56
|
-
params: `Any additional parameters for the call`,
|
|
57
|
-
},
|
|
58
|
-
returns: `A TypedCallParams object for the call`,
|
|
59
|
-
});
|
|
60
|
-
yield* factoryMethod({
|
|
61
|
-
isNested: true,
|
|
62
|
-
sanitizer,
|
|
63
|
-
name: sanitizer.makeSafeMethodIdentifier(uniqueName),
|
|
64
|
-
signature: methodSig,
|
|
65
|
-
args: method.args,
|
|
66
|
-
paramTypes: `AppClientCallCoreParams & CoreAppCallArgs${includeCompilation ? ' & AppClientCompilationParams' : ''}${onComplete?.type ? ` & ${onComplete.type}` : ''}${onComplete?.isOptional !== false ? ' = {}' : ''}`,
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
yield DecIndentAndCloseBlock;
|
|
71
|
-
yield DecIndentAndCloseBlock;
|
|
72
|
-
yield NewLine;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
function* callFactoryMethod({ methodSignatureToUniqueName, callConfig, sanitizer }, method) {
|
|
76
|
-
const methodSignature = algokit.getABIMethodSignature(method);
|
|
77
|
-
if (!callConfig.callMethods.includes(methodSignature))
|
|
78
|
-
return;
|
|
79
|
-
yield* jsDoc({
|
|
80
|
-
description: `Constructs a no op call for the ${methodSignature} ABI method`,
|
|
81
|
-
abiDescription: method.desc,
|
|
82
|
-
params: {
|
|
83
|
-
args: `Any args for the contract call`,
|
|
84
|
-
params: `Any additional parameters for the call`,
|
|
85
|
-
},
|
|
86
|
-
returns: `A TypedCallParams object for the call`,
|
|
87
|
-
});
|
|
88
|
-
yield* factoryMethod({
|
|
89
|
-
isNested: false,
|
|
90
|
-
sanitizer,
|
|
91
|
-
name: sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]),
|
|
92
|
-
signature: methodSignature,
|
|
93
|
-
args: method.args,
|
|
94
|
-
paramTypes: 'AppClientCallCoreParams & CoreAppCallArgs',
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
function* factoryMethod({ isNested, name, signature, args, paramTypes, sanitizer, }) {
|
|
98
|
-
const signatureSafe = signature && sanitizer.makeSafeStringTypeLiteral(signature);
|
|
99
|
-
yield `${isNested ? '' : 'static '}${name}(${signature === undefined ? '' : `args: MethodArgs<'${signatureSafe}'>, `}params: ${paramTypes}) {`;
|
|
100
|
-
yield IncIndent;
|
|
101
|
-
yield `return {`;
|
|
102
|
-
yield IncIndent;
|
|
103
|
-
if (signature) {
|
|
104
|
-
yield `method: '${signatureSafe}' as const,`;
|
|
105
|
-
yield `methodArgs: Array.isArray(args) ? args : [${args
|
|
106
|
-
.map((a) => `args${sanitizer.getSafeMemberAccessor(sanitizer.makeSafePropertyIdentifier(a.name))}`)
|
|
107
|
-
.join(', ')}],`;
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
yield `method: undefined,`;
|
|
111
|
-
yield `methodArgs: undefined,`;
|
|
112
|
-
}
|
|
113
|
-
yield '...params,';
|
|
114
|
-
yield DecIndent;
|
|
115
|
-
yield '}';
|
|
116
|
-
yield DecIndent;
|
|
117
|
-
yield `}${isNested ? ',' : ''}`;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
export { callFactory };
|
|
121
|
-
//# sourceMappingURL=call-factory.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"call-factory.mjs","sources":["../../src/client/call-factory.ts"],"sourcesContent":["import { ContractMethod } from '../schema/application'\nimport { DecIndent, DecIndentAndCloseBlock, DocumentParts, IncIndent, jsDoc, NewLine } from '../output/writer'\nimport * as algokit from '@algorandfoundation/algokit-utils'\nimport { GeneratorContext } from './generator-context'\nimport { BARE_CALL, MethodList } from './helpers/get-call-config-summary'\nimport { getCreateOnCompleteOptions } from './deploy-types'\nimport { Sanitizer } from '../util/sanitization'\n\nexport function* callFactory(ctx: GeneratorContext): DocumentParts {\n yield* jsDoc('Exposes methods for constructing all available smart contract calls')\n yield `export abstract class ${ctx.name}CallFactory {`\n yield IncIndent\n\n yield* opMethods(ctx)\n\n for (const method of ctx.app.contract.methods) {\n yield* callFactoryMethod(ctx, method)\n }\n\n yield DecIndent\n\n yield '}'\n}\n\nfunction* opMethods(ctx: GeneratorContext): DocumentParts {\n const { app, callConfig } = ctx\n\n yield* operationMethod(\n ctx,\n `Constructs a create call for the ${app.contract.name} smart contract`,\n callConfig.createMethods,\n 'create',\n true,\n )\n yield* operationMethod(\n ctx,\n `Constructs an update call for the ${app.contract.name} smart contract`,\n callConfig.updateMethods,\n 'update',\n true,\n )\n yield* operationMethod(ctx, `Constructs a delete call for the ${app.contract.name} smart contract`, callConfig.deleteMethods, 'delete')\n yield* operationMethod(ctx, `Constructs an opt in call for the ${app.contract.name} smart contract`, callConfig.optInMethods, 'optIn')\n yield* operationMethod(\n ctx,\n `Constructs a close out call for the ${app.contract.name} smart contract`,\n callConfig.closeOutMethods,\n 'closeOut',\n )\n}\n\nfunction* operationMethod(\n { app, methodSignatureToUniqueName, sanitizer }: GeneratorContext,\n description: string,\n methods: MethodList,\n verb: 'create' | 'update' | 'optIn' | 'closeOut' | 'delete',\n includeCompilation?: boolean,\n): DocumentParts {\n if (methods.length) {\n yield* jsDoc(`Gets available ${verb} call factories`)\n yield `static get ${verb}() {`\n yield IncIndent\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 params: `Any parameters for the call`,\n },\n returns: `A TypedCallParams object for the call`,\n })\n yield* factoryMethod({\n isNested: true,\n name: 'bare',\n sanitizer,\n paramTypes: `BareCallArgs & AppClientCallCoreParams & CoreAppCallArgs${\n includeCompilation ? ' & AppClientCompilationParams' : ''\n }${onComplete?.type ? ` & ${onComplete.type}` : ''}${onComplete?.isOptional !== false ? ' = {}' : ''}`,\n })\n } else {\n const method = app.contract.methods.find((m) => algokit.getABIMethodSignature(m) === methodSig)!\n const uniqueName = methodSignatureToUniqueName[methodSig]\n yield* jsDoc({\n description: `${description} using the ${methodSig} ABI method`,\n params: {\n args: `Any args for the contract call`,\n params: `Any additional parameters for the call`,\n },\n returns: `A TypedCallParams object for the call`,\n })\n yield* factoryMethod({\n isNested: true,\n sanitizer,\n name: sanitizer.makeSafeMethodIdentifier(uniqueName),\n signature: methodSig,\n args: method.args,\n paramTypes: `AppClientCallCoreParams & CoreAppCallArgs${includeCompilation ? ' & AppClientCompilationParams' : ''}${\n onComplete?.type ? ` & ${onComplete.type}` : ''\n }${onComplete?.isOptional !== false ? ' = {}' : ''}`,\n })\n }\n }\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield NewLine\n }\n}\n\nfunction* callFactoryMethod({ methodSignatureToUniqueName, callConfig, sanitizer }: GeneratorContext, method: ContractMethod) {\n const methodSignature = algokit.getABIMethodSignature(method)\n if (!callConfig.callMethods.includes(methodSignature)) return\n\n yield* jsDoc({\n description: `Constructs a no op call for the ${methodSignature} ABI method`,\n abiDescription: method.desc,\n params: {\n args: `Any args for the contract call`,\n params: `Any additional parameters for the call`,\n },\n returns: `A TypedCallParams object for the call`,\n })\n yield* factoryMethod({\n isNested: false,\n sanitizer,\n name: sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]),\n signature: methodSignature,\n args: method.args,\n paramTypes: 'AppClientCallCoreParams & CoreAppCallArgs',\n })\n}\n\nfunction* factoryMethod({\n isNested,\n name,\n signature,\n args,\n paramTypes,\n sanitizer,\n}:\n | {\n isNested: boolean\n name?: string\n signature?: undefined\n args?: undefined\n paramTypes: string\n sanitizer: Sanitizer\n }\n | {\n isNested: boolean\n name?: string\n signature: string\n args: Array<{ name: string }>\n paramTypes: string\n sanitizer: Sanitizer\n }) {\n const signatureSafe = signature && sanitizer.makeSafeStringTypeLiteral(signature)\n yield `${isNested ? '' : 'static '}${name}(${signature === undefined ? '' : `args: MethodArgs<'${signatureSafe}'>, `}params: ${paramTypes}) {`\n yield IncIndent\n yield `return {`\n yield IncIndent\n if (signature) {\n yield `method: '${signatureSafe}' as const,`\n yield `methodArgs: Array.isArray(args) ? args : [${args\n .map((a) => `args${sanitizer.getSafeMemberAccessor(sanitizer.makeSafePropertyIdentifier(a.name))}`)\n .join(', ')}],`\n } else {\n yield `method: undefined,`\n yield `methodArgs: undefined,`\n }\n\n yield '...params,'\n yield DecIndent\n yield '}'\n yield DecIndent\n yield `}${isNested ? ',' : ''}`\n}\n"],"names":[],"mappings":";;;;;AAQe,UAAE,WAAW,CAAC,GAAqB,EAAA;AAChD,IAAA,OAAO,KAAK,CAAC,qEAAqE,CAAC,CAAA;AACnF,IAAA,MAAM,CAAyB,sBAAA,EAAA,GAAG,CAAC,IAAI,eAAe,CAAA;AACtD,IAAA,MAAM,SAAS,CAAA;AAEf,IAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAA;IAErB,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;QAC7C,OAAO,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;KACtC;AAED,IAAA,MAAM,SAAS,CAAA;AAEf,IAAA,MAAM,GAAG,CAAA;AACX,CAAC;AAED,UAAU,SAAS,CAAC,GAAqB,EAAA;AACvC,IAAA,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,GAAG,CAAA;IAE/B,OAAO,eAAe,CACpB,GAAG,EACH,CAAA,iCAAA,EAAoC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAiB,eAAA,CAAA,EACtE,UAAU,CAAC,aAAa,EACxB,QAAQ,EACR,IAAI,CACL,CAAA;IACD,OAAO,eAAe,CACpB,GAAG,EACH,CAAA,kCAAA,EAAqC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAiB,eAAA,CAAA,EACvE,UAAU,CAAC,aAAa,EACxB,QAAQ,EACR,IAAI,CACL,CAAA;IACD,OAAO,eAAe,CAAC,GAAG,EAAE,CAAA,iCAAA,EAAoC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAA,eAAA,CAAiB,EAAE,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IACvI,OAAO,eAAe,CAAC,GAAG,EAAE,CAAA,kCAAA,EAAqC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAA,eAAA,CAAiB,EAAE,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACtI,OAAO,eAAe,CACpB,GAAG,EACH,CAAA,oCAAA,EAAuC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAA,eAAA,CAAiB,EACzE,UAAU,CAAC,eAAe,EAC1B,UAAU,CACX,CAAA;AACH,CAAC;AAED,UAAU,eAAe,CACvB,EAAE,GAAG,EAAE,2BAA2B,EAAE,SAAS,EAAoB,EACjE,WAAmB,EACnB,OAAmB,EACnB,IAA2D,EAC3D,kBAA4B,EAAA;AAE5B,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,OAAO,KAAK,CAAC,kBAAkB,IAAI,CAAA,eAAA,CAAiB,CAAC,CAAA;QACrD,MAAM,CAAA,WAAA,EAAc,IAAI,CAAA,IAAA,CAAM,CAAA;AAC9B,QAAA,MAAM,SAAS,CAAA;AACf,QAAA,MAAM,UAAU,CAAA;AAChB,QAAA,MAAM,SAAS,CAAA;AACf,QAAA,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE;AAC/B,YAAA,MAAM,UAAU,GAAG,IAAI,KAAK,QAAQ,GAAG,0BAA0B,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA;AAC7F,YAAA,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC3B,OAAO,KAAK,CAAC;oBACX,WAAW,EAAE,CAAG,EAAA,WAAW,CAAoB,kBAAA,CAAA;AAC/C,oBAAA,MAAM,EAAE;AACN,wBAAA,MAAM,EAAE,CAA6B,2BAAA,CAAA;AACtC,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAuC,qCAAA,CAAA;AACjD,iBAAA,CAAC,CAAA;gBACF,OAAO,aAAa,CAAC;AACnB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,IAAI,EAAE,MAAM;oBACZ,SAAS;AACT,oBAAA,UAAU,EAAE,CACV,wDAAA,EAAA,kBAAkB,GAAG,+BAA+B,GAAG,EACzD,GAAG,UAAU,EAAE,IAAI,GAAG,CAAM,GAAA,EAAA,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA,EAAG,UAAU,EAAE,UAAU,KAAK,KAAK,GAAG,OAAO,GAAG,EAAE,CAAE,CAAA;AACvG,iBAAA,CAAC,CAAA;aACH;iBAAM;gBACL,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,SAAS,CAAE,CAAA;AAChG,gBAAA,MAAM,UAAU,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAA;gBACzD,OAAO,KAAK,CAAC;AACX,oBAAA,WAAW,EAAE,CAAA,EAAG,WAAW,CAAA,WAAA,EAAc,SAAS,CAAa,WAAA,CAAA;AAC/D,oBAAA,MAAM,EAAE;AACN,wBAAA,IAAI,EAAE,CAAgC,8BAAA,CAAA;AACtC,wBAAA,MAAM,EAAE,CAAwC,sCAAA,CAAA;AACjD,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAuC,qCAAA,CAAA;AACjD,iBAAA,CAAC,CAAA;gBACF,OAAO,aAAa,CAAC;AACnB,oBAAA,QAAQ,EAAE,IAAI;oBACd,SAAS;AACT,oBAAA,IAAI,EAAE,SAAS,CAAC,wBAAwB,CAAC,UAAU,CAAC;AACpD,oBAAA,SAAS,EAAE,SAAS;oBACpB,IAAI,EAAE,MAAM,CAAC,IAAI;AACjB,oBAAA,UAAU,EAAE,CAA4C,yCAAA,EAAA,kBAAkB,GAAG,+BAA+B,GAAG,EAAE,GAC/G,UAAU,EAAE,IAAI,GAAG,CAAM,GAAA,EAAA,UAAU,CAAC,IAAI,EAAE,GAAG,EAC/C,CAAA,EAAG,UAAU,EAAE,UAAU,KAAK,KAAK,GAAG,OAAO,GAAG,EAAE,CAAE,CAAA;AACrD,iBAAA,CAAC,CAAA;aACH;SACF;AACD,QAAA,MAAM,sBAAsB,CAAA;AAC5B,QAAA,MAAM,sBAAsB,CAAA;AAC5B,QAAA,MAAM,OAAO,CAAA;KACd;AACH,CAAC;AAED,UAAU,iBAAiB,CAAC,EAAE,2BAA2B,EAAE,UAAU,EAAE,SAAS,EAAoB,EAAE,MAAsB,EAAA;IAC1H,MAAM,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC7D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAM;IAE7D,OAAO,KAAK,CAAC;QACX,WAAW,EAAE,CAAmC,gCAAA,EAAA,eAAe,CAAa,WAAA,CAAA;QAC5E,cAAc,EAAE,MAAM,CAAC,IAAI;AAC3B,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,CAAgC,8BAAA,CAAA;AACtC,YAAA,MAAM,EAAE,CAAwC,sCAAA,CAAA;AACjD,SAAA;AACD,QAAA,OAAO,EAAE,CAAuC,qCAAA,CAAA;AACjD,KAAA,CAAC,CAAA;IACF,OAAO,aAAa,CAAC;AACnB,QAAA,QAAQ,EAAE,KAAK;QACf,SAAS;QACT,IAAI,EAAE,SAAS,CAAC,wBAAwB,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC;AACtF,QAAA,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;AACjB,QAAA,UAAU,EAAE,2CAA2C;AACxD,KAAA,CAAC,CAAA;AACJ,CAAC;AAED,UAAU,aAAa,CAAC,EACtB,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,UAAU,EACV,SAAS,GAiBN,EAAA;IACH,MAAM,aAAa,GAAG,SAAS,IAAI,SAAS,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAA;AACjF,IAAA,MAAM,CAAG,EAAA,QAAQ,GAAG,EAAE,GAAG,SAAS,CAAG,EAAA,IAAI,CAAI,CAAA,EAAA,SAAS,KAAK,SAAS,GAAG,EAAE,GAAG,CAAA,kBAAA,EAAqB,aAAa,CAAA,IAAA,CAAM,CAAW,QAAA,EAAA,UAAU,KAAK,CAAA;AAC9I,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,UAAU,CAAA;AAChB,IAAA,MAAM,SAAS,CAAA;IACf,IAAI,SAAS,EAAE;QACb,MAAM,CAAA,SAAA,EAAY,aAAa,CAAA,WAAA,CAAa,CAAA;AAC5C,QAAA,MAAM,6CAA6C,IAAI;aACpD,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA,IAAA,EAAO,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA,CAAE,CAAC;AAClG,aAAA,IAAI,CAAC,IAAI,CAAC,CAAA,EAAA,CAAI,CAAA;KAClB;SAAM;AACL,QAAA,MAAM,oBAAoB,CAAA;AAC1B,QAAA,MAAM,wBAAwB,CAAA;KAC/B;AAED,IAAA,MAAM,YAAY,CAAA;AAClB,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,GAAG,CAAA;AACT,IAAA,MAAM,SAAS,CAAA;IACf,MAAM,CAAA,CAAA,EAAI,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAA,CAAE,CAAA;AACjC;;;;"}
|
package/client/deploy-types.js
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var writer = require('../output/writer.js');
|
|
4
|
-
var getCallConfigSummary = require('./helpers/get-call-config-summary.js');
|
|
5
|
-
var utilityTypes = require('./utility-types.js');
|
|
6
|
-
|
|
7
|
-
function getCreateOnCompleteOptions(method, app) {
|
|
8
|
-
const callConfig = method === getCallConfigSummary.BARE_CALL ? app.bare_call_config : app.hints?.[method]?.call_config;
|
|
9
|
-
const hasNoOp = callConfig?.no_op === 'ALL' || callConfig?.no_op === 'CREATE';
|
|
10
|
-
const onCompleteType = callConfig
|
|
11
|
-
? `(${Object.entries(callConfig)
|
|
12
|
-
.filter(([_, value]) => value === 'ALL' || value === 'CREATE')
|
|
13
|
-
.map(([oc]) => utilityTypes.OnCompleteCodeMap[oc])
|
|
14
|
-
.join(' | ')})`
|
|
15
|
-
: {};
|
|
16
|
-
return {
|
|
17
|
-
type: onCompleteType,
|
|
18
|
-
isOptional: hasNoOp,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
function* deployTypes({ app, callConfig, sanitizer }) {
|
|
22
|
-
const name = sanitizer.makeSafeTypeIdentifier(app.contract.name);
|
|
23
|
-
if (callConfig.createMethods.length > 0) {
|
|
24
|
-
yield* writer.jsDoc(`A factory for available 'create' calls`);
|
|
25
|
-
yield `export type ${name}CreateCalls = (typeof ${name}CallFactory)['create']`;
|
|
26
|
-
yield* writer.jsDoc('Defines supported create methods for this smart contract');
|
|
27
|
-
yield `export type ${name}CreateCallParams =`;
|
|
28
|
-
yield writer.IncIndent;
|
|
29
|
-
for (const method of callConfig.createMethods) {
|
|
30
|
-
const onComplete = getCreateOnCompleteOptions(method, app);
|
|
31
|
-
if (method === getCallConfigSummary.BARE_CALL) {
|
|
32
|
-
yield `| (TypedCallParams<undefined> & ${onComplete.type})`;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method);
|
|
36
|
-
yield `| (TypedCallParams<'${methodSigSafe}'> & ${onComplete.type})`;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
yield writer.DecIndent;
|
|
40
|
-
}
|
|
41
|
-
if (callConfig.updateMethods.length > 0) {
|
|
42
|
-
yield* writer.jsDoc(`A factory for available 'update' calls`);
|
|
43
|
-
yield `export type ${name}UpdateCalls = (typeof ${name}CallFactory)['update']`;
|
|
44
|
-
yield* writer.jsDoc('Defines supported update methods for this smart contract');
|
|
45
|
-
yield `export type ${name}UpdateCallParams =`;
|
|
46
|
-
yield writer.IncIndent;
|
|
47
|
-
for (const method of callConfig.updateMethods) {
|
|
48
|
-
if (method === getCallConfigSummary.BARE_CALL) {
|
|
49
|
-
yield `| TypedCallParams<undefined>`;
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method);
|
|
53
|
-
yield `| TypedCallParams<'${methodSigSafe}'>`;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
yield writer.DecIndent;
|
|
57
|
-
}
|
|
58
|
-
if (callConfig.deleteMethods.length > 0) {
|
|
59
|
-
yield* writer.jsDoc(`A factory for available 'delete' calls`);
|
|
60
|
-
yield `export type ${name}DeleteCalls = (typeof ${name}CallFactory)['delete']`;
|
|
61
|
-
yield* writer.jsDoc('Defines supported delete methods for this smart contract');
|
|
62
|
-
yield `export type ${name}DeleteCallParams =`;
|
|
63
|
-
yield writer.IncIndent;
|
|
64
|
-
for (const method of callConfig.deleteMethods) {
|
|
65
|
-
if (method === getCallConfigSummary.BARE_CALL) {
|
|
66
|
-
yield `| TypedCallParams<undefined>`;
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method);
|
|
70
|
-
yield `| TypedCallParams<'${methodSigSafe}'>`;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
yield writer.DecIndent;
|
|
74
|
-
}
|
|
75
|
-
yield* writer.jsDoc('Defines arguments required for the deploy method.');
|
|
76
|
-
yield `export type ${name}DeployArgs = {`;
|
|
77
|
-
yield writer.IncIndent;
|
|
78
|
-
yield `deployTimeParams?: TealTemplateParams`;
|
|
79
|
-
if (callConfig.createMethods.length) {
|
|
80
|
-
yield* writer.jsDoc('A delegate which takes a create call factory and returns the create call params for this smart contract');
|
|
81
|
-
yield `createCall?: (callFactory: ${name}CreateCalls) => ${name}CreateCallParams`;
|
|
82
|
-
}
|
|
83
|
-
if (callConfig.updateMethods.length) {
|
|
84
|
-
yield* writer.jsDoc('A delegate which takes a update call factory and returns the update call params for this smart contract');
|
|
85
|
-
yield `updateCall?: (callFactory: ${name}UpdateCalls) => ${name}UpdateCallParams`;
|
|
86
|
-
}
|
|
87
|
-
if (callConfig.deleteMethods.length) {
|
|
88
|
-
yield* writer.jsDoc('A delegate which takes a delete call factory and returns the delete call params for this smart contract');
|
|
89
|
-
yield `deleteCall?: (callFactory: ${name}DeleteCalls) => ${name}DeleteCallParams`;
|
|
90
|
-
}
|
|
91
|
-
yield writer.DecIndentAndCloseBlock;
|
|
92
|
-
yield writer.NewLine;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
exports.deployTypes = deployTypes;
|
|
96
|
-
exports.getCreateOnCompleteOptions = getCreateOnCompleteOptions;
|
|
97
|
-
//# sourceMappingURL=deploy-types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-types.js","sources":["../../src/client/deploy-types.ts"],"sourcesContent":["import { DecIndent, DecIndentAndCloseBlock, DocumentParts, IncIndent, jsDoc, NewLine } from '../output/writer'\n\nimport { BARE_CALL, MethodIdentifier } from './helpers/get-call-config-summary'\nimport { GeneratorContext } from './generator-context'\nimport { AlgoAppSpec, CallConfig } from '../schema/application'\nimport { OnCompleteCodeMap } from './utility-types'\n\nexport function getCreateOnCompleteOptions(method: MethodIdentifier, app: AlgoAppSpec) {\n const callConfig = method === BARE_CALL ? app.bare_call_config : app.hints?.[method]?.call_config\n const hasNoOp = callConfig?.no_op === 'ALL' || callConfig?.no_op === 'CREATE'\n const onCompleteType = callConfig\n ? `(${Object.entries(callConfig)\n .filter(([_, value]) => value === 'ALL' || value === 'CREATE')\n .map(([oc]) => OnCompleteCodeMap[oc as keyof CallConfig])\n .join(' | ')})`\n : {}\n return {\n type: onCompleteType,\n isOptional: hasNoOp,\n }\n}\n\nexport function* deployTypes({ app, callConfig, sanitizer }: GeneratorContext): DocumentParts {\n const name = sanitizer.makeSafeTypeIdentifier(app.contract.name)\n\n if (callConfig.createMethods.length > 0) {\n yield* jsDoc(`A factory for available 'create' calls`)\n yield `export type ${name}CreateCalls = (typeof ${name}CallFactory)['create']`\n yield* jsDoc('Defines supported create methods for this smart contract')\n yield `export type ${name}CreateCallParams =`\n yield IncIndent\n for (const method of callConfig.createMethods) {\n const onComplete = getCreateOnCompleteOptions(method, app)\n if (method === BARE_CALL) {\n yield `| (TypedCallParams<undefined> & ${onComplete.type})`\n } else {\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n yield `| (TypedCallParams<'${methodSigSafe}'> & ${onComplete.type})`\n }\n }\n yield DecIndent\n }\n if (callConfig.updateMethods.length > 0) {\n yield* jsDoc(`A factory for available 'update' calls`)\n\n yield `export type ${name}UpdateCalls = (typeof ${name}CallFactory)['update']`\n yield* jsDoc('Defines supported update methods for this smart contract')\n yield `export type ${name}UpdateCallParams =`\n yield IncIndent\n for (const method of callConfig.updateMethods) {\n if (method === BARE_CALL) {\n yield `| TypedCallParams<undefined>`\n } else {\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n\n yield `| TypedCallParams<'${methodSigSafe}'>`\n }\n }\n yield DecIndent\n }\n\n if (callConfig.deleteMethods.length > 0) {\n yield* jsDoc(`A factory for available 'delete' calls`)\n\n yield `export type ${name}DeleteCalls = (typeof ${name}CallFactory)['delete']`\n\n yield* jsDoc('Defines supported delete methods for this smart contract')\n yield `export type ${name}DeleteCallParams =`\n yield IncIndent\n for (const method of callConfig.deleteMethods) {\n if (method === BARE_CALL) {\n yield `| TypedCallParams<undefined>`\n } else {\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n\n yield `| TypedCallParams<'${methodSigSafe}'>`\n }\n }\n yield DecIndent\n }\n\n yield* jsDoc('Defines arguments required for the deploy method.')\n yield `export type ${name}DeployArgs = {`\n yield IncIndent\n yield `deployTimeParams?: TealTemplateParams`\n if (callConfig.createMethods.length) {\n yield* jsDoc('A delegate which takes a create call factory and returns the create call params for this smart contract')\n yield `createCall?: (callFactory: ${name}CreateCalls) => ${name}CreateCallParams`\n }\n if (callConfig.updateMethods.length) {\n yield* jsDoc('A delegate which takes a update call factory and returns the update call params for this smart contract')\n yield `updateCall?: (callFactory: ${name}UpdateCalls) => ${name}UpdateCallParams`\n }\n if (callConfig.deleteMethods.length) {\n yield* jsDoc('A delegate which takes a delete call factory and returns the delete call params for this smart contract')\n yield `deleteCall?: (callFactory: ${name}DeleteCalls) => ${name}DeleteCallParams`\n }\n yield DecIndentAndCloseBlock\n yield NewLine\n}\n"],"names":["BARE_CALL","OnCompleteCodeMap","jsDoc","IncIndent","DecIndent","DecIndentAndCloseBlock","NewLine"],"mappings":"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"}
|