@algorandfoundation/puya-ts 1.2.0-beta.3 → 1.2.0-beta.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +7 -5
  2. package/{analyser-service-_vXhzOY0.js → analyser-service-8d-CfbHF.js} +409 -372
  3. package/analyser-service-8d-CfbHF.js.map +1 -0
  4. package/analyserService.mjs +7 -6
  5. package/analyserService.mjs.map +1 -1
  6. package/arc4-clientgen-S0OsOYq5.js +324 -0
  7. package/arc4-clientgen-S0OsOYq5.js.map +1 -0
  8. package/arc4-clientgen.d.ts +6 -0
  9. package/awst/intrinsic-factory.d.ts +4 -2
  10. package/awst/node-factory.d.ts +1 -0
  11. package/awst/nodes.d.ts +26 -15
  12. package/awst/to-code-visitor.d.ts +3 -2
  13. package/awst/validation/awst-traverser.d.ts +4 -3
  14. package/awst/wtypes.d.ts +49 -36
  15. package/awst_build/arc4-util.d.ts +1 -38
  16. package/awst_build/ast-visitors/contract-method-visitor.d.ts +0 -2
  17. package/awst_build/eb/arc28/arc-28-emit-function-builder.d.ts +1 -2
  18. package/awst_build/eb/arc4/uintn.d.ts +1 -1
  19. package/awst_build/eb/arc4/util.d.ts +1 -0
  20. package/awst_build/eb/array-like/util.d.ts +0 -1
  21. package/awst_build/eb/logged-error-builder.d.ts +11 -0
  22. package/awst_build/eb/storage/global-map.d.ts +21 -0
  23. package/awst_build/eb/storage/local-map.d.ts +21 -0
  24. package/awst_build/models/decorator-data.d.ts +1 -0
  25. package/awst_build/ptypes/arc4-types.d.ts +7 -2
  26. package/awst_build/ptypes/base.d.ts +5 -0
  27. package/awst_build/ptypes/for-export.d.ts +0 -1
  28. package/awst_build/ptypes/index.d.ts +36 -8
  29. package/awst_build/ptypes/util.d.ts +2 -2
  30. package/awst_build/ptypes/visitor.d.ts +3 -1
  31. package/awst_build/ptypes/visitors/default-visitor.d.ts +3 -1
  32. package/bin/puyats-clientgen.d.ts +2 -0
  33. package/bin/puyats-clientgen.mjs +101 -0
  34. package/bin/puyats-clientgen.mjs.map +1 -0
  35. package/bin/puyats-ls.mjs +21 -46
  36. package/bin/puyats-ls.mjs.map +1 -1
  37. package/bin/run-cli.mjs +18 -12
  38. package/bin/run-cli.mjs.map +1 -1
  39. package/{check-node-version-CNvxI8_l.js → check-node-version-C5jEehMw.js} +3 -3
  40. package/{check-node-version-CNvxI8_l.js.map → check-node-version-C5jEehMw.js.map} +1 -1
  41. package/cli/build-command.d.ts +2 -0
  42. package/cli.mjs +36 -76
  43. package/cli.mjs.map +1 -1
  44. package/clientgen.d.ts +1 -0
  45. package/code-fix/{invalid-non-null-assertion.d.ts → no-op-non-null-assertion.d.ts} +1 -1
  46. package/{compile-Bz8LVwK2.js → compile-D3cWR93M.js} +11 -4
  47. package/compile-D3cWR93M.js.map +1 -0
  48. package/compile.d.ts +1 -1
  49. package/constants.d.ts +1 -1
  50. package/contract-class-model-MEy7uIVO.js +5611 -0
  51. package/contract-class-model-MEy7uIVO.js.map +1 -0
  52. package/index.d.ts +1 -1
  53. package/index.mjs +21 -10
  54. package/index.mjs.map +1 -1
  55. package/{options-COFRHTFQ.js → options-DG9_1uUe.js} +3831 -9534
  56. package/options-DG9_1uUe.js.map +1 -0
  57. package/options.d.ts +4 -0
  58. package/package.json +17 -12
  59. package/puya/index.d.ts +1 -1
  60. package/puya/puya-service.d.ts +5 -1
  61. package/{resolve-puya-path-DtTAMi0Y.js → resolve-puya-path-gdMolChu.js} +9 -45
  62. package/resolve-puya-path-gdMolChu.js.map +1 -0
  63. package/semver-DjqBu3r-.js +45 -0
  64. package/semver-DjqBu3r-.js.map +1 -0
  65. package/util/typed-message-port.d.ts +2 -2
  66. package/util-5sZ6DHLY.js +63 -0
  67. package/util-5sZ6DHLY.js.map +1 -0
  68. package/visitor/syntax-names.d.ts +190 -190
  69. package/analyser-service-_vXhzOY0.js.map +0 -1
  70. package/compile-Bz8LVwK2.js.map +0 -1
  71. package/options-COFRHTFQ.js.map +0 -1
  72. package/resolve-puya-path-DtTAMi0Y.js.map +0 -1
  73. package/util/arc4-signature-parser.d.ts +0 -14
@@ -1,4 +1,4 @@
1
- import type { AddressConstant, AppAccountStateExpression, AppStateExpression, AppStorageDefinition, ARC4Decode, ARC4Encode, ARC4FromBytes, ARC4Router, ArrayConcat, ArrayExtend, ArrayLength, ArrayPop, ArrayReplace, AssertExpression, AssignmentExpression, AssignmentStatement, BigUIntAugmentedAssignment, BigUIntBinaryOperation, BigUIntPostfixUnaryOperation, Block, BoolConstant, BooleanBinaryOperation, BoxPrefixedKeyExpression, BoxValueExpression, BytesAugmentedAssignment, BytesBinaryOperation, BytesComparisonExpression, BytesConstant, BytesUnaryOperation, CheckedMaybe, CommaExpression, CompiledContract, CompiledLogicSig, ConditionalExpression, Contract, ContractMemberNodeVisitor, ContractMethod, ConvertArray, Copy, CreateInnerTransaction, DecimalConstant, Emit, Enumeration, ExpressionStatement, ExpressionVisitor, FieldExpression, ForInLoop, Goto, GroupTransactionReference, IfElse, IndexExpression, InnerTransactionField, IntegerConstant, IntersectionSliceExpression, IntrinsicCall, LogicSignature, LoopContinue, LoopExit, MethodConstant, NamedTupleExpression, NewArray, NewStruct, Not, NumericComparisonExpression, PuyaLibCall, Range, ReinterpretCast, ReturnStatement, Reversed, RootNodeVisitor, SetInnerTransactionFields, SingleEvaluation, SizeOf, SliceExpression, StageInnerTransactions, StateDelete, StateExists, StateGet, StateGetEx, StatementVisitor, StringConstant, SubmitInnerTransaction, Subroutine, SubroutineCallExpression, Switch, TemplateVar, TupleExpression, TupleItemExpression, UInt64AugmentedAssignment, UInt64BinaryOperation, UInt64PostfixUnaryOperation, UInt64UnaryOperation, UpdateInnerTransaction, VarExpression, VoidConstant, WhileLoop } from '../nodes';
1
+ import type { ABICall, AddressConstant, AppAccountStateExpression, AppStateExpression, AppStorageDefinition, ARC4Decode, ARC4Encode, ARC4FromBytes, ARC4Router, ArrayConcat, ArrayExtend, ArrayLength, ArrayPop, ArrayReplace, AssertExpression, AssignmentExpression, AssignmentStatement, BigUIntAugmentedAssignment, BigUIntBinaryOperation, BigUIntPostfixUnaryOperation, Block, BoolConstant, BooleanBinaryOperation, BoxValueExpression, BytesAugmentedAssignment, BytesBinaryOperation, BytesComparisonExpression, BytesConstant, BytesUnaryOperation, CheckedMaybe, CommaExpression, CompiledContract, CompiledLogicSig, ConditionalExpression, Contract, ContractMemberNodeVisitor, ContractMethod, ConvertArray, Copy, CreateInnerTransaction, DecimalConstant, Emit, EmitFields, Enumeration, ExpressionStatement, ExpressionVisitor, FieldExpression, ForInLoop, Goto, GroupTransactionReference, IfElse, IndexExpression, InnerTransactionField, IntegerConstant, IntersectionSliceExpression, IntrinsicCall, LogicSignature, LoopContinue, LoopExit, MapPrefixedKeyExpression, MethodConstant, NamedTupleExpression, NewArray, NewStruct, Not, NumericComparisonExpression, PuyaLibCall, Range, ReinterpretCast, ReturnStatement, Reversed, RootNodeVisitor, SingleEvaluation, SizeOf, SliceExpression, StageInnerTransactions, StateDelete, StateExists, StateGet, StateGetEx, StatementVisitor, StringConstant, SubmitInnerTransaction, Subroutine, SubroutineCallExpression, Switch, TemplateVar, TupleExpression, TupleItemExpression, UInt64AugmentedAssignment, UInt64BinaryOperation, UInt64PostfixUnaryOperation, UInt64UnaryOperation, UpdateInnerTransaction, VarExpression, VoidConstant, WhileLoop } from '../nodes';
2
2
  export declare class FunctionTraverser implements ExpressionVisitor<void>, StatementVisitor<void> {
3
3
  visitExpressionStatement(statement: ExpressionStatement): void;
4
4
  visitBlock(statement: Block): void;
@@ -46,7 +46,7 @@ export declare class FunctionTraverser implements ExpressionVisitor<void>, State
46
46
  visitNamedTupleExpression(expression: NamedTupleExpression): void;
47
47
  visitVarExpression(expression: VarExpression): void;
48
48
  visitInnerTransactionField(expression: InnerTransactionField): void;
49
- visitSetInnerTransactionFields(expression: SetInnerTransactionFields): void;
49
+ visitABICall(expression: ABICall): void;
50
50
  visitSubmitInnerTransaction(expression: SubmitInnerTransaction): void;
51
51
  visitSizeOf(expression: SizeOf): void;
52
52
  visitFieldExpression(expression: FieldExpression): void;
@@ -55,7 +55,7 @@ export declare class FunctionTraverser implements ExpressionVisitor<void>, State
55
55
  visitIntersectionSliceExpression(expression: IntersectionSliceExpression): void;
56
56
  visitAppStateExpression(expression: AppStateExpression): void;
57
57
  visitAppAccountStateExpression(expression: AppAccountStateExpression): void;
58
- visitBoxPrefixedKeyExpression(expression: BoxPrefixedKeyExpression): void;
58
+ visitMapPrefixedKeyExpression(expression: MapPrefixedKeyExpression): void;
59
59
  visitBoxValueExpression(expression: BoxValueExpression): void;
60
60
  visitSingleEvaluation(expression: SingleEvaluation): void;
61
61
  visitReinterpretCast(expression: ReinterpretCast): void;
@@ -76,6 +76,7 @@ export declare class FunctionTraverser implements ExpressionVisitor<void>, State
76
76
  visitBooleanBinaryOperation(expression: BooleanBinaryOperation): void;
77
77
  visitNot(expression: Not): void;
78
78
  visitEmit(expression: Emit): void;
79
+ visitEmitFields(expression: EmitFields): void;
79
80
  visitRange(expression: Range): void;
80
81
  visitEnumeration(expression: Enumeration): void;
81
82
  visitReversed(expression: Reversed): void;
package/awst/wtypes.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { TransactionKind } from './models';
2
2
  import type { SourceLocation } from './source-location';
3
3
  export declare namespace wtypes {
4
- class WType {
4
+ export class WType {
5
5
  constructor(props: {
6
6
  name: string;
7
7
  immutable?: boolean;
@@ -11,25 +11,25 @@ export declare namespace wtypes {
11
11
  equals(other: WType): boolean;
12
12
  toString(): string;
13
13
  }
14
- const voidWType: WType;
15
- const boolWType: WType;
16
- const uint64WType: WType;
17
- const uint64RangeWType: WType;
18
- const stateKeyWType: WType;
19
- const boxKeyWType: WType;
20
- const stringWType: WType;
21
- const biguintWType: WType;
22
- const assetWType: WType;
23
- const accountWType: WType;
24
- const applicationWType: WType;
25
- class BytesWType extends WType {
14
+ export const voidWType: WType;
15
+ export const boolWType: WType;
16
+ export const uint64WType: WType;
17
+ export const uint64RangeWType: WType;
18
+ export const stateKeyWType: WType;
19
+ export const boxKeyWType: WType;
20
+ export const stringWType: WType;
21
+ export const biguintWType: WType;
22
+ export const assetWType: WType;
23
+ export const accountWType: WType;
24
+ export const applicationWType: WType;
25
+ export class BytesWType extends WType {
26
26
  readonly length: bigint | null;
27
27
  constructor(args?: {
28
28
  length: bigint | null;
29
29
  });
30
30
  }
31
- const bytesWType: BytesWType;
32
- class ARC4Type extends WType {
31
+ export const bytesWType: BytesWType;
32
+ export class ARC4Type extends WType {
33
33
  /**
34
34
  * Override the default name of this type with a valid arc4 alias.
35
35
  *
@@ -42,7 +42,7 @@ export declare namespace wtypes {
42
42
  immutable?: boolean;
43
43
  });
44
44
  }
45
- class WTuple extends WType {
45
+ export class WTuple extends WType {
46
46
  types: WType[];
47
47
  names: string[] | undefined;
48
48
  constructor(props: {
@@ -53,7 +53,7 @@ export declare namespace wtypes {
53
53
  equals(other: WType): boolean;
54
54
  toString(): string;
55
55
  }
56
- abstract class NativeArray extends WType {
56
+ export abstract class NativeArray extends WType {
57
57
  readonly elementType: WType;
58
58
  readonly sourceLocation: SourceLocation | null;
59
59
  protected constructor(props: {
@@ -62,7 +62,7 @@ export declare namespace wtypes {
62
62
  sourceLocation?: SourceLocation;
63
63
  });
64
64
  }
65
- class ReferenceArray extends NativeArray {
65
+ export class ReferenceArray extends NativeArray {
66
66
  readonly immutable = false;
67
67
  constructor(props: {
68
68
  itemType: WType;
@@ -70,38 +70,45 @@ export declare namespace wtypes {
70
70
  sourceLocation?: SourceLocation;
71
71
  });
72
72
  }
73
- class WEnumeration extends WType {
73
+ export class WEnumeration extends WType {
74
74
  readonly sequenceType: WType;
75
75
  constructor(props: {
76
76
  sequenceType: WType;
77
77
  });
78
78
  }
79
- class WGroupTransaction extends WType {
79
+ export class WGroupTransaction extends WType {
80
80
  transactionType: TransactionKind | null;
81
81
  constructor({ transactionType }: {
82
82
  transactionType?: TransactionKind;
83
83
  });
84
84
  }
85
- class WInnerTransaction extends WType {
85
+ export class WInnerTransaction extends WType {
86
86
  transactionType: TransactionKind | null;
87
87
  constructor({ transactionType }: {
88
88
  transactionType?: TransactionKind;
89
89
  });
90
90
  }
91
- class WInnerTransactionFields extends WType {
91
+ export class WInnerTransactionFields extends WType {
92
92
  transactionType: TransactionKind | null;
93
- constructor({ transactionType }: {
93
+ constructor({ transactionType, name }: {
94
94
  transactionType?: TransactionKind;
95
+ name?: string;
96
+ });
97
+ }
98
+ export class WABICallInnerTransactionFields extends WInnerTransactionFields {
99
+ resultType: WType;
100
+ constructor({ returnType }: {
101
+ returnType?: WType;
95
102
  });
96
103
  }
97
- class ARC4UIntN extends ARC4Type {
104
+ export class ARC4UIntN extends ARC4Type {
98
105
  readonly n: bigint;
99
106
  constructor({ n, arc4Alias }: {
100
107
  n: bigint;
101
108
  arc4Alias?: string;
102
109
  });
103
110
  }
104
- class ARC4UFixedNxM extends ARC4Type {
111
+ export class ARC4UFixedNxM extends ARC4Type {
105
112
  readonly n: bigint;
106
113
  readonly m: bigint;
107
114
  constructor({ n, m }: {
@@ -109,8 +116,13 @@ export declare namespace wtypes {
109
116
  m: bigint;
110
117
  });
111
118
  }
112
- class ARC4Struct extends ARC4Type {
113
- fields: Record<string, WType>;
119
+ type WTypeField = {
120
+ name: string;
121
+ wtype: WType;
122
+ description: string | null;
123
+ };
124
+ export class ARC4Struct extends ARC4Type {
125
+ fields: WTypeField[];
114
126
  sourceLocation: SourceLocation | null;
115
127
  frozen: boolean;
116
128
  desc: string | null;
@@ -118,11 +130,11 @@ export declare namespace wtypes {
118
130
  frozen: boolean;
119
131
  name: string;
120
132
  desc: string | null;
121
- fields: Record<string, WType>;
133
+ fields: WTypeField[];
122
134
  sourceLocation?: SourceLocation;
123
135
  });
124
136
  }
125
- class ARC4Tuple extends ARC4Type {
137
+ export class ARC4Tuple extends ARC4Type {
126
138
  readonly types: WType[];
127
139
  readonly sourceLocation: SourceLocation | null;
128
140
  readonly immutable: boolean;
@@ -132,7 +144,7 @@ export declare namespace wtypes {
132
144
  immutable: boolean;
133
145
  });
134
146
  }
135
- abstract class ARC4Array extends ARC4Type {
147
+ export abstract class ARC4Array extends ARC4Type {
136
148
  readonly elementType: WType;
137
149
  protected constructor(props: {
138
150
  arc4Alias: string | null;
@@ -141,7 +153,7 @@ export declare namespace wtypes {
141
153
  immutable?: boolean;
142
154
  });
143
155
  }
144
- class ARC4DynamicArray extends ARC4Array {
156
+ export class ARC4DynamicArray extends ARC4Array {
145
157
  readonly sourceLocation: SourceLocation | null;
146
158
  constructor({ elementType, sourceLocation, arc4Alias, immutable, }: {
147
159
  elementType: WType;
@@ -150,7 +162,7 @@ export declare namespace wtypes {
150
162
  immutable?: boolean;
151
163
  });
152
164
  }
153
- class ARC4StaticArray extends ARC4Array {
165
+ export class ARC4StaticArray extends ARC4Array {
154
166
  readonly sourceLocation: SourceLocation | null;
155
167
  readonly arraySize: bigint;
156
168
  constructor({ elementType, sourceLocation, arraySize, arc4Alias, immutable, }: {
@@ -161,8 +173,9 @@ export declare namespace wtypes {
161
173
  immutable?: boolean;
162
174
  });
163
175
  }
164
- const arc4ByteAliasWType: ARC4UIntN;
165
- const arc4AddressAliasWType: ARC4StaticArray;
166
- const arc4BooleanWType: ARC4Type;
167
- const arc4StringAliasWType: ARC4DynamicArray;
176
+ export const arc4ByteAliasWType: ARC4UIntN;
177
+ export const arc4AddressAliasWType: ARC4StaticArray;
178
+ export const arc4BooleanWType: ARC4Type;
179
+ export const arc4StringAliasWType: ARC4DynamicArray;
180
+ export {};
168
181
  }
@@ -1,17 +1,6 @@
1
- import type { ResourceEncoding } from '../awst';
2
1
  import { ARC4ABIMethodConfig } from '../awst/nodes';
3
2
  import type { SourceLocation } from '../awst/source-location';
4
- import type { ABICompatiblePType, FunctionPType, PType } from './ptypes';
5
- import { ArrayPType, FixedArrayPType, ImmutableObjectPType, MutableTuplePType, ReadonlyArrayPType, ReadonlyTuplePType } from './ptypes';
6
- import { ARC4EncodedType, ARC4StructType, ARC4TupleType, DynamicArrayType, StaticArrayType } from './ptypes/arc4-types';
7
- /**
8
- * For a given ptype, return the equivalent ABI compatible type - or error if there is no compatible type
9
- * @param ptype The type of the parameter
10
- * @param direction The direction of the parameter (in for method args, out for method returns)
11
- * @param resourceEncoding The encoding strategy for the foreign resource types (App, Asset, Account)
12
- * @param sourceLocation The location of the method or parameter, for use in error metadata
13
- */
14
- export declare function ptypeToAbiPType(ptype: PType, direction: 'in' | 'out', resourceEncoding: ResourceEncoding, sourceLocation: SourceLocation): ABICompatiblePType;
3
+ import type { FunctionPType } from './ptypes';
15
4
  export declare function arc4ConfigFromType(functionType: FunctionPType, sourceLocation: SourceLocation): {
16
5
  arc4Config: ARC4ABIMethodConfig;
17
6
  methodSelector: import("../awst/nodes").MethodConstant;
@@ -23,29 +12,3 @@ export declare function arc4ConfigFromType(functionType: FunctionPType, sourceLo
23
12
  * @param sourceLocation The source location of the code generating the constant,
24
13
  */
25
14
  export declare function buildArc4MethodConstant(functionType: FunctionPType, arc4Config: ARC4ABIMethodConfig, sourceLocation: SourceLocation): import("../awst/nodes").MethodConstant;
26
- /**
27
- * Get the ARC4 type name for a ptype, or throw if the ptype is not usable in an ABI method.
28
- * @param ptype The ptype of the parameter
29
- * @param direction The direction of the parameter (in for method args, out for method returns)
30
- * @param resourceEncoding The encoding strategy for the foreign resource types (App, Asset, Account)
31
- * @param sourceLocation The location of the method or parameter, for use in error metadata
32
- */
33
- export declare function getABITypeName(ptype: PType, direction: 'in' | 'out', resourceEncoding: ResourceEncoding, sourceLocation: SourceLocation): string;
34
- /**
35
- * Is the given type an ARC4 encoded type, or can it be encoded to one
36
- * @param ptype The type to check
37
- */
38
- export declare function isArc4EncodableType(ptype: PType): boolean;
39
- /**
40
- * For a given type, return the arc4 encoded version of that type
41
- * @param ptype The type to be encoded
42
- * @param sourceLocation The source location triggering the conversion
43
- */
44
- export declare function ptypeToArc4EncodedType(ptype: ReadonlyTuplePType, sourceLocation: SourceLocation): ARC4TupleType;
45
- export declare function ptypeToArc4EncodedType(ptype: MutableTuplePType, sourceLocation: SourceLocation): ARC4TupleType;
46
- export declare function ptypeToArc4EncodedType(ptype: ImmutableObjectPType, sourceLocation: SourceLocation): ARC4StructType;
47
- export declare function ptypeToArc4EncodedType(ptype: ArrayPType, sourceLocation: SourceLocation): DynamicArrayType;
48
- export declare function ptypeToArc4EncodedType(ptype: ReadonlyArrayPType, sourceLocation: SourceLocation): DynamicArrayType;
49
- export declare function ptypeToArc4EncodedType(ptype: FixedArrayPType, sourceLocation: SourceLocation): StaticArrayType;
50
- export declare function ptypeToArc4EncodedType<T extends ARC4EncodedType>(ptype: T, sourceLocation: SourceLocation): T;
51
- export declare function ptypeToArc4EncodedType(ptype: PType, sourceLocation: SourceLocation): ARC4EncodedType;
@@ -1,5 +1,4 @@
1
1
  import type ts from 'typescript';
2
- import type { ResourceEncoding } from '../../awst';
3
2
  import * as awst from '../../awst/nodes';
4
3
  import type { SourceLocation } from '../../awst/source-location';
5
4
  import type { NodeBuilder } from '../eb';
@@ -24,7 +23,6 @@ export declare class ContractMethodVisitor extends ContractMethodBaseVisitor {
24
23
  * @private
25
24
  */
26
25
  private getConventionalRoutingConfig;
27
- checkABIMethodTypes(functionType: FunctionPType, resourceEncoding: ResourceEncoding, sourceLocation: SourceLocation): void;
28
26
  checkBareMethodTypes(functionType: FunctionPType, sourceLocation: SourceLocation): void;
29
27
  private buildDefaultArgument;
30
28
  }
@@ -1,11 +1,10 @@
1
1
  import type ts from 'typescript';
2
- import { SourceLocation } from '../../../awst/source-location';
2
+ import type { SourceLocation } from '../../../awst/source-location';
3
3
  import type { PType } from '../../ptypes';
4
4
  import type { NodeBuilder } from '../index';
5
5
  import { FunctionBuilder } from '../index';
6
6
  export declare class Arc28EmitFunctionBuilder extends FunctionBuilder {
7
7
  readonly ptype: import("../../ptypes").LibFunctionType;
8
- private encode;
9
8
  private resolvePropertyValue;
10
9
  call(args: ReadonlyArray<NodeBuilder>, typeArgs: ReadonlyArray<PType>, sourceLocation: SourceLocation<ts.CallExpression>): NodeBuilder;
11
10
  }
@@ -15,7 +15,7 @@ export declare const classBuilderForUintNAlias: (aliasClass: LibClassType, alias
15
15
  newCall(args: ReadonlyArray<NodeBuilder>, typeArgs: ReadonlyArray<PType>, sourceLocation: SourceLocation): InstanceBuilder;
16
16
  call(args: ReadonlyArray<NodeBuilder>, typeArgs: ReadonlyArray<PType>, sourceLocation: SourceLocation<import("typescript").CallExpression>): NodeBuilder;
17
17
  readonly sourceLocation: SourceLocation;
18
- readonly typeDescription: string;
18
+ get typeDescription(): string;
19
19
  taggedTemplate(head: string, spans: ReadonlyArray<readonly [InstanceBuilder, string]>, typeArgs: ReadonlyArray<PType>, sourceLocation: SourceLocation): InstanceBuilder;
20
20
  hasProperty(_name: string): boolean;
21
21
  memberAccess(name: string, sourceLocation: SourceLocation): NodeBuilder;
@@ -21,6 +21,7 @@ export declare class MethodSelectorFunctionBuilder extends FunctionBuilder {
21
21
  readonly ptype: import("../../ptypes").LibFunctionType;
22
22
  call(args: ReadonlyArray<NodeBuilder>, typeArgs: ReadonlyArray<PType>, sourceLocation: SourceLocation<ts.CallExpression>): NodeBuilder;
23
23
  }
24
+ export declare const validateEncodingMap: Record<string, boolean>;
24
25
  export declare class SizeOfFunctionBuilder extends FunctionBuilder {
25
26
  readonly ptype: import("../../ptypes").LibFunctionType;
26
27
  call(args: ReadonlyArray<NodeBuilder>, typeArgs: ReadonlyArray<PType>, sourceLocation: SourceLocation<ts.CallExpression>): NodeBuilder;
@@ -3,4 +3,3 @@ import { MutableTuplePType } from '../../ptypes';
3
3
  import type { InstanceBuilder } from '../index';
4
4
  export declare function newArray(ptype: ArrayPType | ReadonlyArrayPType, valueProvider: InstanceBuilder): import("../../../awst/nodes").NewArray;
5
5
  export declare function newTuple(ptype: MutableTuplePType | ReadonlyTuplePType | ArrayLiteralPType, valueProvider: InstanceBuilder): import("../../../awst/nodes").VoidConstant | import("../../../awst/nodes").ARC4Encode | import("../../../awst/nodes").TupleExpression;
6
- export declare function newArrayOrTuple(ptype: ArrayPType | ReadonlyArrayPType | MutableTuplePType | ReadonlyTuplePType | ArrayLiteralPType, valueProvider: InstanceBuilder): import("../../../awst/nodes").VoidConstant | import("../../../awst/nodes").ARC4Encode | import("../../../awst/nodes").TupleExpression | import("../../../awst/nodes").NewArray;
@@ -0,0 +1,11 @@
1
+ import type ts from 'typescript';
2
+ import type { SourceLocation } from '../../awst/source-location';
3
+ import type { PType } from '../ptypes';
4
+ import type { NodeBuilder } from './index';
5
+ import { FunctionBuilder } from './index';
6
+ export declare class LoggedAssertFunctionBuilder extends FunctionBuilder {
7
+ call(args: ReadonlyArray<NodeBuilder>, typeArgs: ReadonlyArray<PType>, sourceLocation: SourceLocation<ts.CallExpression>): NodeBuilder;
8
+ }
9
+ export declare class LoggedErrFunctionBuilder extends FunctionBuilder {
10
+ call(args: ReadonlyArray<NodeBuilder>, typeArgs: ReadonlyArray<PType>, sourceLocation: SourceLocation<ts.CallExpression>): NodeBuilder;
11
+ }
@@ -0,0 +1,21 @@
1
+ import type ts from 'typescript';
2
+ import type { Expression } from '../../../awst/nodes';
3
+ import type { SourceLocation } from '../../../awst/source-location';
4
+ import { AppStorageDeclaration } from '../../models/app-storage-declaration';
5
+ import type { ContractClassPType, PType } from '../../ptypes';
6
+ import { GlobalMapType } from '../../ptypes';
7
+ import { FunctionBuilder, InstanceExpressionBuilder, type NodeBuilder } from '../index';
8
+ export declare class GlobalMapFunctionBuilder extends FunctionBuilder {
9
+ call(args: ReadonlyArray<NodeBuilder>, typeArgs: ReadonlyArray<PType>, sourceLocation: SourceLocation<ts.CallExpression>): NodeBuilder;
10
+ }
11
+ export declare class GlobalMapExpressionBuilder extends InstanceExpressionBuilder<GlobalMapType> {
12
+ constructor(expr: Expression, ptype: PType);
13
+ call(args: ReadonlyArray<NodeBuilder>, typeArgs: ReadonlyArray<PType>, sourceLocation: SourceLocation<ts.CallExpression>): NodeBuilder;
14
+ memberAccess(name: string, sourceLocation: SourceLocation): NodeBuilder;
15
+ }
16
+ export declare class GlobalMapFunctionResultBuilder extends GlobalMapExpressionBuilder {
17
+ private readonly _keyPrefixExpr;
18
+ constructor(expr: Expression | undefined, ptype: PType, sourceLocation: SourceLocation);
19
+ resolve(): Expression;
20
+ buildStorageDeclaration(memberName: string, memberLocation: SourceLocation, memberDescription: string | null, contractType: ContractClassPType): AppStorageDeclaration;
21
+ }
@@ -0,0 +1,21 @@
1
+ import type ts from 'typescript';
2
+ import type { Expression } from '../../../awst/nodes';
3
+ import type { SourceLocation } from '../../../awst/source-location';
4
+ import { AppStorageDeclaration } from '../../models/app-storage-declaration';
5
+ import type { ContractClassPType, PType } from '../../ptypes';
6
+ import { LocalMapType } from '../../ptypes';
7
+ import { FunctionBuilder, InstanceExpressionBuilder, type NodeBuilder } from '../index';
8
+ export declare class LocalMapFunctionBuilder extends FunctionBuilder {
9
+ call(args: ReadonlyArray<NodeBuilder>, typeArgs: ReadonlyArray<PType>, sourceLocation: SourceLocation<ts.CallExpression>): NodeBuilder;
10
+ }
11
+ export declare class LocalMapExpressionBuilder extends InstanceExpressionBuilder<LocalMapType> {
12
+ constructor(expr: Expression, ptype: PType);
13
+ call(args: ReadonlyArray<NodeBuilder>, typeArgs: ReadonlyArray<PType>, sourceLocation: SourceLocation<ts.CallExpression>): NodeBuilder;
14
+ memberAccess(name: string, sourceLocation: SourceLocation): NodeBuilder;
15
+ }
16
+ export declare class LocalMapFunctionResultBuilder extends LocalMapExpressionBuilder {
17
+ private readonly _keyPrefixExpr;
18
+ constructor(expr: Expression | undefined, ptype: PType, sourceLocation: SourceLocation);
19
+ resolve(): Expression;
20
+ buildStorageDeclaration(memberName: string, memberLocation: SourceLocation, memberDescription: string | null, contractType: ContractClassPType): AppStorageDeclaration;
21
+ }
@@ -42,6 +42,7 @@ export type LogicSigOptionsDecoratorData = {
42
42
  avmVersion?: SupportedAvmVersion;
43
43
  name?: string;
44
44
  scratchSlots?: Set<bigint>;
45
+ validateEncoding?: boolean;
45
46
  };
46
47
  export type ContractOptionsDecoratorData = {
47
48
  type: typeof Constants.symbolNames.contractOptionsDecoratorName;
@@ -1,5 +1,6 @@
1
1
  import type { SourceLocation } from '../../awst/source-location';
2
2
  import { wtypes } from '../../awst/wtypes';
3
+ import type { PTypeField } from './base';
3
4
  import { GenericPType, PType } from './base';
4
5
  import { ContractClassPType, ImmutableObjectPType, LibClassType, LibFunctionType, MutableObjectPType, ReadonlyTuplePType } from './index';
5
6
  import type { PTypeVisitor } from './visitor';
@@ -59,13 +60,16 @@ export declare class ARC4StructClass extends PType {
59
60
  static fromStructType(ptype: ARC4StructType): ARC4StructClass;
60
61
  accept<T>(visitor: PTypeVisitor<T>): T;
61
62
  }
63
+ export type ARC4StructField = PTypeField & {
64
+ ptype: ARC4EncodedType;
65
+ };
62
66
  export declare class ARC4StructType extends ARC4EncodedType {
63
67
  readonly [PType.IdSymbol] = "ARC4StructType";
64
68
  readonly name: string;
65
69
  readonly module: string;
66
70
  readonly description: string | undefined;
67
71
  readonly singleton = false;
68
- readonly fields: Record<string, ARC4EncodedType>;
72
+ readonly fields: ARC4StructField[];
69
73
  readonly sourceLocation: SourceLocation | undefined;
70
74
  readonly frozen: boolean;
71
75
  readonly abiTypeSignature: string;
@@ -74,11 +78,12 @@ export declare class ARC4StructType extends ARC4EncodedType {
74
78
  module: string;
75
79
  frozen: boolean;
76
80
  description: string | undefined;
77
- fields: Record<string, ARC4EncodedType>;
81
+ fields: ARC4StructField[];
78
82
  sourceLocation?: SourceLocation;
79
83
  });
80
84
  get nativeType(): MutableObjectPType;
81
85
  get wtype(): wtypes.ARC4Struct;
86
+ getProperty(name: string): ARC4StructField | undefined;
82
87
  accept<T>(visitor: PTypeVisitor<T>): T;
83
88
  }
84
89
  export declare const arc4StructBaseType: ARC4StructType;
@@ -60,4 +60,9 @@ export type PTypeOrClass = PType | {
60
60
  new (...args: DeliberateAny[]): PType;
61
61
  equals(other: PType): boolean;
62
62
  };
63
+ export type PTypeField = {
64
+ name: string;
65
+ ptype: PType;
66
+ description: string | null;
67
+ };
63
68
  export {};
@@ -1,3 +1,2 @@
1
- export { ptypeToArc4EncodedType } from '../arc4-util';
2
1
  export * from './arc4-types';
3
2
  export * from './index';
@@ -2,7 +2,7 @@ import { TransactionKind } from '../../awst/models';
2
2
  import { SourceLocation } from '../../awst/source-location';
3
3
  import { wtypes } from '../../awst/wtypes';
4
4
  import { SymbolName } from '../symbol-name';
5
- import type { ABICompatiblePType, PTypeOrClass } from './base';
5
+ import type { ABICompatiblePType, PTypeField, PTypeOrClass } from './base';
6
6
  import { GenericPType, PType } from './base';
7
7
  import type { PTypeVisitor } from './visitor';
8
8
  export * from './base';
@@ -148,6 +148,19 @@ export declare class GlobalStateType extends StorageProxyPType {
148
148
  });
149
149
  accept<T>(visitor: PTypeVisitor<T>): T;
150
150
  }
151
+ export declare const GlobalMapGeneric: GenericPType<GlobalMapType>;
152
+ export declare class GlobalMapType extends StorageProxyPType {
153
+ readonly [PType.IdSymbol] = "GlobalMapType";
154
+ readonly module: string;
155
+ get name(): string;
156
+ get fullName(): string;
157
+ readonly keyType: PType;
158
+ constructor(props: {
159
+ content: PType;
160
+ keyType: PType;
161
+ });
162
+ accept<T>(visitor: PTypeVisitor<T>): T;
163
+ }
151
164
  export declare const LocalStateGeneric: GenericPType<LocalStateType>;
152
165
  export declare class LocalStateType extends StorageProxyPType {
153
166
  readonly [PType.IdSymbol] = "LocalStateType";
@@ -162,6 +175,19 @@ export declare class LocalStateType extends StorageProxyPType {
162
175
  static parameterise(typeArgs: PType[]): LocalStateType;
163
176
  accept<T>(visitor: PTypeVisitor<T>): T;
164
177
  }
178
+ export declare const LocalMapGeneric: GenericPType<LocalMapType>;
179
+ export declare class LocalMapType extends StorageProxyPType {
180
+ readonly [PType.IdSymbol] = "LocalMapType";
181
+ readonly module: string;
182
+ get name(): string;
183
+ get fullName(): string;
184
+ readonly keyType: PType;
185
+ constructor(props: {
186
+ content: PType;
187
+ keyType: PType;
188
+ });
189
+ accept<T>(visitor: PTypeVisitor<T>): T;
190
+ }
165
191
  export declare const BoxGeneric: GenericPType<BoxPType>;
166
192
  export declare class BoxPType extends StorageProxyPType {
167
193
  readonly [PType.IdSymbol] = "BoxPType";
@@ -186,7 +212,7 @@ export declare class BoxMapPType extends StorageProxyPType {
186
212
  });
187
213
  accept<T>(visitor: PTypeVisitor<T>): T;
188
214
  }
189
- export type AppStorageType = GlobalStateType | LocalStateType | BoxPType | BoxMapPType;
215
+ export type AppStorageType = GlobalStateType | LocalStateType | BoxPType | BoxMapPType | GlobalMapType | LocalMapType;
190
216
  /**
191
217
  * An open generic type parameter
192
218
  */
@@ -461,24 +487,24 @@ declare abstract class ObjectPType extends PType {
461
487
  readonly module: string;
462
488
  readonly alias: SymbolName | null;
463
489
  readonly description: string | undefined;
464
- readonly properties: Record<string, PType>;
490
+ readonly properties: PTypeField[];
465
491
  readonly singleton = false;
466
492
  readonly immutable: boolean;
467
493
  constructor(props: {
468
494
  alias?: SymbolName | null;
469
- properties: Record<string, PType>;
495
+ properties: PTypeField[];
470
496
  description?: string;
471
497
  namePrefix: string;
472
498
  immutable: boolean;
473
499
  });
474
- orderedProperties(): [string, PType][];
475
500
  toString(): string;
501
+ getProperty(name: string): PTypeField | undefined;
476
502
  hasSameStructure(other: ObjectPType): boolean;
477
503
  }
478
504
  export declare class ObjectLiteralPType extends ObjectPType {
479
505
  readonly [PType.IdSymbol] = "ObjectLiteralPType";
480
506
  constructor(props: {
481
- properties: Record<string, PType>;
507
+ properties: PTypeField[];
482
508
  });
483
509
  accept<T>(visitor: PTypeVisitor<T>): T;
484
510
  getImmutable(): ImmutableObjectPType;
@@ -489,7 +515,7 @@ export declare class ImmutableObjectPType extends ObjectPType {
489
515
  readonly [PType.IdSymbol] = "ImmutableObjectPType";
490
516
  constructor(props: {
491
517
  alias?: SymbolName | null;
492
- properties: Record<string, PType>;
518
+ properties: PTypeField[];
493
519
  description?: string;
494
520
  });
495
521
  get wtype(): wtypes.WTuple;
@@ -499,7 +525,7 @@ export declare class MutableObjectPType extends ObjectPType {
499
525
  readonly [PType.IdSymbol] = "MutableObjectPType";
500
526
  constructor(props: {
501
527
  alias?: SymbolName | null;
502
- properties: Record<string, PType>;
528
+ properties: PTypeField[];
503
529
  description?: string;
504
530
  });
505
531
  get wtype(): wtypes.ARC4Struct;
@@ -573,6 +599,8 @@ export declare const BytesFunction: LibFunctionType;
573
599
  export declare const logFunction: LibFunctionType;
574
600
  export declare const assertFunction: LibFunctionType;
575
601
  export declare const errFunction: LibFunctionType;
602
+ export declare const loggedAssertFunction: LibFunctionType;
603
+ export declare const loggedErrFunction: LibFunctionType;
576
604
  export declare const assetPType: ABICompatibleInstanceType;
577
605
  export declare const AssetFunction: LibFunctionType;
578
606
  export declare const accountPType: ABICompatibleInstanceType;
@@ -1,3 +1,3 @@
1
- import type { PType } from './base';
1
+ import type { PType, PTypeField } from './base';
2
2
  export declare const ptypeIn: (target: PType, ...ptypes: [PType, ...PType[]]) => boolean;
3
- export declare function generateObjectHash(objectProperties: Record<string, PType>): string;
3
+ export declare function generateObjectHash(objectProperties: PTypeField[]): string;
@@ -1,5 +1,5 @@
1
1
  import type { ARC4InstanceType, ARC4StructClass, ARC4StructType, ARC4TupleType, ContractProxyType, DynamicArrayType, StaticArrayType, UFixedNxMType, UintNType } from './arc4-types';
2
- import type { AnyPType, ArrayLiteralPType, ArrayPType, BoxMapPType, BoxPType, BytesPType, ContractClassPType, FixedArrayPType, FunctionPType, GenericPType, GlobalStateType, GroupTransactionPType, ImmutableObjectPType, InnerTransactionPType, InstanceType, InternalType, IntrinsicEnumType, IntrinsicFunctionGroupType, IntrinsicFunctionGroupTypeType, IntrinsicFunctionType, IntrinsicFunctionTypeType, IterableIteratorType, ItxnParamsPType, LibClassType, LibFunctionType, LibObjType, LocalStateType, LogicSigPType, MutableObjectPType, MutableTuplePType, NamespacePType, ObjectLiteralPType, ReadonlyArrayPType, ReadonlyTuplePType, ReferenceArrayType, SuperPrototypeSelector, TransientType, TypeParameterType, Uint64EnumMemberType, Uint64EnumType, UnsupportedType } from './index';
2
+ import type { AnyPType, ArrayLiteralPType, ArrayPType, BoxMapPType, BoxPType, BytesPType, ContractClassPType, FixedArrayPType, FunctionPType, GenericPType, GlobalMapType, GlobalStateType, GroupTransactionPType, ImmutableObjectPType, InnerTransactionPType, InstanceType, InternalType, IntrinsicEnumType, IntrinsicFunctionGroupType, IntrinsicFunctionGroupTypeType, IntrinsicFunctionType, IntrinsicFunctionTypeType, IterableIteratorType, ItxnParamsPType, LibClassType, LibFunctionType, LibObjType, LocalMapType, LocalStateType, LogicSigPType, MutableObjectPType, MutableTuplePType, NamespacePType, ObjectLiteralPType, ReadonlyArrayPType, ReadonlyTuplePType, ReferenceArrayType, SuperPrototypeSelector, TransientType, TypeParameterType, Uint64EnumMemberType, Uint64EnumType, UnsupportedType } from './index';
3
3
  export interface PTypeVisitor<T> {
4
4
  visitGeneric(ptype: GenericPType): T;
5
5
  visitMutableObjectPType(ptype: MutableObjectPType): T;
@@ -43,7 +43,9 @@ export interface PTypeVisitor<T> {
43
43
  visitInstanceType(ptype: InstanceType): T;
44
44
  visitContractClassPType(ptype: ContractClassPType): T;
45
45
  visitGlobalStateType(ptype: GlobalStateType): T;
46
+ visitGlobalMapType(ptype: GlobalMapType): T;
46
47
  visitLocalStateType(ptype: LocalStateType): T;
48
+ visitLocalMapType(ptype: LocalMapType): T;
47
49
  visitBoxPType(ptype: BoxPType): T;
48
50
  visitBoxMapPType(ptype: BoxMapPType): T;
49
51
  visitTypeParameterType(ptype: TypeParameterType): T;
@@ -1,4 +1,4 @@
1
- import type { AnyPType, ArrayLiteralPType, ArrayPType, BoxMapPType, BoxPType, BytesPType, ContractClassPType, FixedArrayPType, FunctionPType, GlobalStateType, GroupTransactionPType, ImmutableObjectPType, InnerTransactionPType, InstanceType, InternalType, IntrinsicFunctionGroupType, IntrinsicFunctionGroupTypeType, IntrinsicFunctionType, IntrinsicFunctionTypeType, IterableIteratorType, ItxnParamsPType, LibClassType, LibFunctionType, LibObjType, LocalStateType, LogicSigPType, MutableObjectPType, MutableTuplePType, NamespacePType, ObjectLiteralPType, ReadonlyArrayPType, ReadonlyTuplePType, ReferenceArrayType, SuperPrototypeSelector, TransientType, TypeParameterType, Uint64EnumMemberType, Uint64EnumType, UnsupportedType } from '..';
1
+ import type { AnyPType, ArrayLiteralPType, ArrayPType, BoxMapPType, BoxPType, BytesPType, ContractClassPType, FixedArrayPType, FunctionPType, GlobalMapType, GlobalStateType, GroupTransactionPType, ImmutableObjectPType, InnerTransactionPType, InstanceType, InternalType, IntrinsicFunctionGroupType, IntrinsicFunctionGroupTypeType, IntrinsicFunctionType, IntrinsicFunctionTypeType, IterableIteratorType, ItxnParamsPType, LibClassType, LibFunctionType, LibObjType, LocalMapType, LocalStateType, LogicSigPType, MutableObjectPType, MutableTuplePType, NamespacePType, ObjectLiteralPType, ReadonlyArrayPType, ReadonlyTuplePType, ReferenceArrayType, SuperPrototypeSelector, TransientType, TypeParameterType, Uint64EnumMemberType, Uint64EnumType, UnsupportedType } from '..';
2
2
  import type { ARC4InstanceType, ARC4StructClass, ARC4StructType, ARC4TupleType, ContractProxyType, DynamicArrayType, StaticArrayType, UFixedNxMType, UintNType } from '../arc4-types';
3
3
  import type { GenericPType, PType } from '../base';
4
4
  import type { IntrinsicEnumType } from '../intrinsic-enum-type';
@@ -49,7 +49,9 @@ export declare abstract class DefaultVisitor<T> implements PTypeVisitor<T> {
49
49
  visitInstanceType(ptype: InstanceType): T;
50
50
  visitContractClassPType(ptype: ContractClassPType): T;
51
51
  visitGlobalStateType(ptype: GlobalStateType): T;
52
+ visitGlobalMapType(ptype: GlobalMapType): T;
52
53
  visitLocalStateType(ptype: LocalStateType): T;
54
+ visitLocalMapType(ptype: LocalMapType): T;
53
55
  visitBoxPType(ptype: BoxPType): T;
54
56
  visitBoxMapPType(ptype: BoxMapPType): T;
55
57
  visitTypeParameterType(ptype: TypeParameterType): T;
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import '../clientgen';