@algorandfoundation/algorand-typescript 1.0.0-beta.25 → 1.0.0-beta.26

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/arc4/c2c.d.ts ADDED
@@ -0,0 +1,81 @@
1
+ import { CompileContractOptions, CompiledContract } from '../compiled';
2
+ import * as gtxn from '../gtxn';
3
+ import { AnyFunction, ConstructorFor, DeliberateAny, InstanceMethod } from '../internal/typescript-helpers';
4
+ import * as itxn from '../itxn';
5
+ import { ApplicationCallFields, ApplicationInnerTxn } from '../itxn';
6
+ import { Contract } from './index';
7
+ /**
8
+ * Defines txn fields that are available for a bare create application call.
9
+ *
10
+ * This is the regular application call fields minus:
11
+ * - appId: because the appId is not known when creating an application
12
+ * - appArgs: because a bare call cannot have arguments
13
+ */
14
+ export type BareCreateApplicationCallFields = Omit<ApplicationCallFields, 'appId' | 'appArgs'>;
15
+ /**
16
+ * Conditional type which given a group transaction type, returns the equivalent inner transaction
17
+ * params type.
18
+ */
19
+ export type GtxnToItxnFields<T extends gtxn.Transaction> = T extends gtxn.PaymentTxn ? itxn.PaymentItxnParams : T extends gtxn.KeyRegistrationTxn ? itxn.KeyRegistrationItxnParams : T extends gtxn.AssetConfigTxn ? itxn.AssetConfigItxnParams : T extends gtxn.AssetTransferTxn ? itxn.AssetTransferItxnParams : T extends gtxn.AssetFreezeTxn ? itxn.AssetFreezeItxnParams : T extends gtxn.ApplicationTxn ? itxn.ApplicationCallItxnParams : itxn.InnerTransaction;
20
+ /**
21
+ * Conditional type which given an application argument, returns the input type for that argument.
22
+ *
23
+ * The input type will usually be the original type apart from group transactions which will be substituted
24
+ * with their equivalent inner transaction type.
25
+ */
26
+ export type TypedApplicationArg<TArg> = TArg extends gtxn.Transaction ? GtxnToItxnFields<TArg> : TArg;
27
+ /**
28
+ * Conditional type which maps a tuple of application arguments to a tuple of input types for specifying those arguments.
29
+ */
30
+ export type TypedApplicationArgs<TArgs> = TArgs extends [] ? [] : TArgs extends [infer TArg, ...infer TRest] ? [TypedApplicationArg<TArg>, ...TypedApplicationArgs<TRest>] : never;
31
+ /**
32
+ * Application call fields with `appArgs` replaced with an `args` property that is strongly typed to the actual arguments for the
33
+ * given application call.
34
+ */
35
+ export type TypedApplicationCallFields<TArgs> = Omit<ApplicationCallFields, 'appArgs'> & (TArgs extends [] ? {
36
+ args?: TypedApplicationArgs<TArgs>;
37
+ } : {
38
+ args: TypedApplicationArgs<TArgs>;
39
+ });
40
+ /**
41
+ * The response type of a typed application call. Includes the raw itxn result object and the parsed ABI return value if applicable.
42
+ */
43
+ export type TypedApplicationCallResponse<TReturn> = TReturn extends void ? {
44
+ itxn: ApplicationInnerTxn;
45
+ } : {
46
+ itxn: ApplicationInnerTxn;
47
+ returnValue: TReturn;
48
+ };
49
+ /**
50
+ * Conditional type which maps an ABI method to a factory method for constructing an application call transaction to call that method.
51
+ */
52
+ export type ContractProxyMethod<TMethod> = TMethod extends (...args: infer TArgs) => infer TReturn ? (fields?: TypedApplicationCallFields<TArgs>) => TypedApplicationCallResponse<TReturn> : never;
53
+ /**
54
+ * Conditional type which maps an ARC4 compatible contract to a proxy object which allows for constructing application call transactions for
55
+ * all available ABI and bare methods. Also includes the compiled contract result data.
56
+ */
57
+ export type ContractProxy<TContract extends Contract> = CompiledContract & {
58
+ /**
59
+ * Get methods for calling ABI and bare methods on the target contract
60
+ */
61
+ call: {
62
+ [key in keyof TContract as key extends 'approvalProgram' | 'clearStateProgram' ? never : TContract[key] extends AnyFunction ? key : never]: ContractProxyMethod<TContract[key]>;
63
+ };
64
+ /**
65
+ * Create a bare application call itxn to create the contract.
66
+ * @param fields Specify values for transaction fields which should override the default values.
67
+ */
68
+ bareCreate(fields?: BareCreateApplicationCallFields): ApplicationInnerTxn;
69
+ };
70
+ /**
71
+ * Pre compile the target ARC4 contract and return a proxy object for constructing inner transactions to call an instance of that contract.
72
+ * @param contract An ARC4 contract class
73
+ * @param options Compile contract arguments
74
+ */
75
+ export declare function compileArc4<TContract extends Contract>(contract: ConstructorFor<TContract>, options?: CompileContractOptions): ContractProxy<TContract>;
76
+ /**
77
+ * Invokes the target ABI method using a strongly typed fields object.
78
+ * @param method An ABI method function reference.
79
+ * @param fields Specify values for transaction fields.
80
+ */
81
+ export declare function abiCall<TArgs extends DeliberateAny[], TReturn>(method: InstanceMethod<Contract, TArgs, TReturn>, fields: TypedApplicationCallFields<TArgs>): TypedApplicationCallResponse<TReturn>;
@@ -1,4 +1,4 @@
1
- import { biguint, BigUintCompat, bytes, BytesBacked, BytesCompat, StringCompat, uint64, Uint64Compat } from '../primitives';
1
+ import { biguint, BigUintCompat, bytes, BytesBacked, StringCompat, uint64, Uint64Compat } from '../primitives';
2
2
  import { Account } from '../reference';
3
3
  /**
4
4
  * Defines UintN bit sizes which are compatible with the uint64 type
@@ -343,28 +343,4 @@ export declare class StaticBytes<TLength extends number = 0> extends Arc4ArrayBa
343
343
  */
344
344
  concat(other: Arc4ArrayBase<Byte>): DynamicBytes;
345
345
  }
346
- /**
347
- * Interpret the provided bytes as an ARC4 encoded type with no validation
348
- * @param bytes An arc4 encoded bytes value
349
- * @param prefix The prefix (if any), present in the bytes value. This prefix will be validated and removed
350
- */
351
- export declare function interpretAsArc4<T extends ARC4Encoded>(bytes: BytesCompat, prefix?: 'none' | 'log'): T;
352
- /**
353
- * Decode the provided bytes to a native Algorand TypeScript value
354
- * @param bytes An arc4 encoded bytes value
355
- * @param prefix The prefix (if any), present in the bytes value. This prefix will be validated and removed
356
- */
357
- export declare function decodeArc4<T>(bytes: BytesCompat, prefix?: 'none' | 'log'): T;
358
- /**
359
- * Encode the provided Algorand TypeScript value as ARC4 bytes
360
- * @param value Any native Algorand TypeScript value with a supported ARC4 encoding
361
- */
362
- export declare function encodeArc4<T>(value: T): bytes;
363
- /**
364
- * Return the total number of bytes required to store T as ARC4 bytes.
365
- *
366
- * T must represent a type with a fixed length encoding scheme.
367
- * @typeParam T Any native or arc4 type with a fixed encoding size.
368
- */
369
- export declare function arc4EncodedLength<T>(): uint64;
370
346
  export {};
package/arc4/index.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  import { BaseContract } from '../base-contract';
2
- import { DeliberateAny } from '../internal/typescript-helpers';
2
+ import { DeliberateAny, InstanceMethod } from '../internal/typescript-helpers';
3
3
  import { OnCompleteActionStr } from '../on-complete-action';
4
- import { bytes } from '../primitives';
4
+ import { bytes, BytesCompat, uint64 } from '../primitives';
5
+ import { ARC4Encoded } from './encoded-types';
5
6
  export * from './encoded-types';
7
+ export * from './c2c';
6
8
  /**
7
9
  * The base type for all ARC4 contracts in Algorand TypeScript
8
10
  */
@@ -99,13 +101,40 @@ export type BareMethodConfig = {
99
101
  */
100
102
  export declare function baremethod<TContract extends Contract>(config?: BareMethodConfig): <TArgs extends DeliberateAny[], TReturn>(target: (this: TContract, ...args: TArgs) => TReturn, ctx: ClassMethodDecoratorContext<TContract>) => (this: TContract, ...args: TArgs) => TReturn;
101
103
  /**
102
- * A type alias for a contract instance method
104
+ * Returns the ARC4 method selector for a given ARC4 method signature. The method selector is the first
105
+ * 4 bytes of the SHA512/256 hash of the method signature.
106
+ * @param methodSignature An ARC4 contract method reference. (Eg. `MyContract.prototype.myMethod`)
107
+ * @returns The ARC4 method selector. Eg. `02BECE11`
103
108
  */
104
- type ContractMethod = (this: Contract, ...args: DeliberateAny[]) => DeliberateAny;
109
+ export declare function methodSelector(methodSignature: InstanceMethod<Contract>): bytes;
105
110
  /**
106
111
  * Returns the ARC4 method selector for a given ARC4 method signature. The method selector is the first
107
112
  * 4 bytes of the SHA512/256 hash of the method signature.
108
- * @param methodSignature An ARC4 method signature string ( Eg. `hello(string)string`. Must be a compile time constant), or a contract method reference. (Eg. `MyContract.prototype.myMethod`)
113
+ * @param methodSignature An ARC4 method signature string (Eg. `hello(string)string`. Must be a compile time constant)
109
114
  * @returns The ARC4 method selector. Eg. `02BECE11`
110
115
  */
111
- export declare function methodSelector(methodSignature: string | ContractMethod): bytes;
116
+ export declare function methodSelector(methodSignature: string): bytes;
117
+ /**
118
+ * Interpret the provided bytes as an ARC4 encoded type with no validation
119
+ * @param bytes An arc4 encoded bytes value
120
+ * @param prefix The prefix (if any), present in the bytes value. This prefix will be validated and removed
121
+ */
122
+ export declare function interpretAsArc4<T extends ARC4Encoded>(bytes: BytesCompat, prefix?: 'none' | 'log'): T;
123
+ /**
124
+ * Decode the provided bytes to a native Algorand TypeScript value
125
+ * @param bytes An arc4 encoded bytes value
126
+ * @param prefix The prefix (if any), present in the bytes value. This prefix will be validated and removed
127
+ */
128
+ export declare function decodeArc4<T>(bytes: BytesCompat, prefix?: 'none' | 'log'): T;
129
+ /**
130
+ * Encode the provided Algorand TypeScript value as ARC4 bytes
131
+ * @param value Any native Algorand TypeScript value with a supported ARC4 encoding
132
+ */
133
+ export declare function encodeArc4<T>(value: T): bytes;
134
+ /**
135
+ * Return the total number of bytes required to store T as ARC4 bytes.
136
+ *
137
+ * T must represent a type with a fixed length encoding scheme.
138
+ * @typeParam T Any native or arc4 type with a fixed encoding size.
139
+ */
140
+ export declare function arc4EncodedLength<T>(): uint64;
package/arc4/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
- export { A as ARC4Encoded, p as Address, n as Bool, d as Byte, C as Contract, D as DynamicArray, r as DynamicBytes, o as StaticArray, s as StaticBytes, S as Str, q as Struct, T as Tuple, l as UFixedNxM, U as UintN, j as UintN128, f as UintN16, k as UintN256, g as UintN32, h as UintN64, e as UintN8, a as abimethod, w as arc4EncodedLength, b as baremethod, u as decodeArc4, v as encodeArc4, t as interpretAsArc4, m as methodSelector } from '../index-C_m8bJFG.js';
1
+ export { A as ARC4Encoded, t as Address, r as Bool, h as Byte, C as Contract, D as DynamicArray, v as DynamicBytes, s as StaticArray, w as StaticBytes, S as Str, u as Struct, T as Tuple, q as UFixedNxM, U as UintN, o as UintN128, k as UintN16, p as UintN256, l as UintN32, n as UintN64, j as UintN8, y as abiCall, a as abimethod, g as arc4EncodedLength, b as baremethod, x as compileArc4, e as decodeArc4, f as encodeArc4, d as interpretAsArc4, m as methodSelector } from '../index-rjo2X8sp.js';
2
2
  import '../errors-D124-zqo.js';
3
3
  //# sourceMappingURL=index.mjs.map
@@ -393,36 +393,21 @@ class StaticBytes extends Arc4ArrayBase {
393
393
  throw new NoImplementation();
394
394
  }
395
395
  }
396
+
396
397
  /**
397
- * Interpret the provided bytes as an ARC4 encoded type with no validation
398
- * @param bytes An arc4 encoded bytes value
399
- * @param prefix The prefix (if any), present in the bytes value. This prefix will be validated and removed
400
- */
401
- function interpretAsArc4(bytes, prefix = 'none') {
402
- throw new NoImplementation();
403
- }
404
- /**
405
- * Decode the provided bytes to a native Algorand TypeScript value
406
- * @param bytes An arc4 encoded bytes value
407
- * @param prefix The prefix (if any), present in the bytes value. This prefix will be validated and removed
408
- */
409
- function decodeArc4(bytes, prefix = 'none') {
410
- throw new NoImplementation();
411
- }
412
- /**
413
- * Encode the provided Algorand TypeScript value as ARC4 bytes
414
- * @param value Any native Algorand TypeScript value with a supported ARC4 encoding
398
+ * Pre compile the target ARC4 contract and return a proxy object for constructing inner transactions to call an instance of that contract.
399
+ * @param contract An ARC4 contract class
400
+ * @param options Compile contract arguments
415
401
  */
416
- function encodeArc4(value) {
402
+ function compileArc4(contract, options) {
417
403
  throw new NoImplementation();
418
404
  }
419
405
  /**
420
- * Return the total number of bytes required to store T as ARC4 bytes.
421
- *
422
- * T must represent a type with a fixed length encoding scheme.
423
- * @typeParam T Any native or arc4 type with a fixed encoding size.
406
+ * Invokes the target ABI method using a strongly typed fields object.
407
+ * @param method An ABI method function reference.
408
+ * @param fields Specify values for transaction fields.
424
409
  */
425
- function arc4EncodedLength() {
410
+ function abiCall(method, fields) {
426
411
  throw new NoImplementation();
427
412
  }
428
413
 
@@ -458,13 +443,39 @@ function baremethod(config) {
458
443
  throw new NoImplementation();
459
444
  };
460
445
  }
446
+ function methodSelector(methodSignature) {
447
+ throw new NoImplementation();
448
+ }
461
449
  /**
462
- * Returns the ARC4 method selector for a given ARC4 method signature. The method selector is the first
463
- * 4 bytes of the SHA512/256 hash of the method signature.
464
- * @param methodSignature An ARC4 method signature string ( Eg. `hello(string)string`. Must be a compile time constant), or a contract method reference. (Eg. `MyContract.prototype.myMethod`)
465
- * @returns The ARC4 method selector. Eg. `02BECE11`
450
+ * Interpret the provided bytes as an ARC4 encoded type with no validation
451
+ * @param bytes An arc4 encoded bytes value
452
+ * @param prefix The prefix (if any), present in the bytes value. This prefix will be validated and removed
466
453
  */
467
- function methodSelector(methodSignature) {
454
+ function interpretAsArc4(bytes, prefix = 'none') {
455
+ throw new NoImplementation();
456
+ }
457
+ /**
458
+ * Decode the provided bytes to a native Algorand TypeScript value
459
+ * @param bytes An arc4 encoded bytes value
460
+ * @param prefix The prefix (if any), present in the bytes value. This prefix will be validated and removed
461
+ */
462
+ function decodeArc4(bytes, prefix = 'none') {
463
+ throw new NoImplementation();
464
+ }
465
+ /**
466
+ * Encode the provided Algorand TypeScript value as ARC4 bytes
467
+ * @param value Any native Algorand TypeScript value with a supported ARC4 encoding
468
+ */
469
+ function encodeArc4(value) {
470
+ throw new NoImplementation();
471
+ }
472
+ /**
473
+ * Return the total number of bytes required to store T as ARC4 bytes.
474
+ *
475
+ * T must represent a type with a fixed length encoding scheme.
476
+ * @typeParam T Any native or arc4 type with a fixed encoding size.
477
+ */
478
+ function arc4EncodedLength() {
468
479
  throw new NoImplementation();
469
480
  }
470
481
 
@@ -490,14 +501,16 @@ var index = /*#__PURE__*/Object.freeze({
490
501
  UintN32: UintN32,
491
502
  UintN64: UintN64,
492
503
  UintN8: UintN8,
504
+ abiCall: abiCall,
493
505
  abimethod: abimethod,
494
506
  arc4EncodedLength: arc4EncodedLength,
495
507
  baremethod: baremethod,
508
+ compileArc4: compileArc4,
496
509
  decodeArc4: decodeArc4,
497
510
  encodeArc4: encodeArc4,
498
511
  interpretAsArc4: interpretAsArc4,
499
512
  methodSelector: methodSelector
500
513
  });
501
514
 
502
- export { ARC4Encoded as A, BaseContract as B, Contract as C, DynamicArray as D, Str as S, Tuple as T, UintN as U, abimethod as a, baremethod as b, contract as c, Byte as d, UintN8 as e, UintN16 as f, UintN32 as g, UintN64 as h, index as i, UintN128 as j, UintN256 as k, UFixedNxM as l, methodSelector as m, Bool as n, StaticArray as o, Address as p, Struct as q, DynamicBytes as r, StaticBytes as s, interpretAsArc4 as t, decodeArc4 as u, encodeArc4 as v, arc4EncodedLength as w };
503
- //# sourceMappingURL=index-C_m8bJFG.js.map
515
+ export { ARC4Encoded as A, BaseContract as B, Contract as C, DynamicArray as D, Str as S, Tuple as T, UintN as U, abimethod as a, baremethod as b, contract as c, interpretAsArc4 as d, decodeArc4 as e, encodeArc4 as f, arc4EncodedLength as g, Byte as h, index as i, UintN8 as j, UintN16 as k, UintN32 as l, methodSelector as m, UintN64 as n, UintN128 as o, UintN256 as p, UFixedNxM as q, Bool as r, StaticArray as s, Address as t, Struct as u, DynamicBytes as v, StaticBytes as w, compileArc4 as x, abiCall as y };
516
+ //# sourceMappingURL=index-rjo2X8sp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-rjo2X8sp.js","sources":["../src/base-contract.ts","../src/arc4/encoded-types.ts","../src/arc4/c2c.ts","../src/arc4/index.ts"],"sourcesContent":["import { NoImplementation } from './internal/errors'\nimport { ConstructorFor } from './internal/typescript-helpers'\nimport { uint64 } from './primitives'\nimport { NumberRange } from './util'\n\n/**\n * The base type for all Algorand TypeScript contracts\n */\nexport abstract class BaseContract {\n /**\n * The program to be run when the On Completion Action is != ClearState (3)\n */\n public abstract approvalProgram(): boolean | uint64\n\n /**\n * The program to be run when the On Completion Action is == ClearState (3)\n */\n public clearStateProgram(): boolean | uint64 {\n return true\n }\n}\n\n/**\n * Options class to manually define the total amount of global and local state contract will use.\n *\n * This is not required when all state is assigned to `this.`, but is required if a\n * contract dynamically interacts with state via `AppGlobal.getBytes` etc, or if you want\n * to reserve additional state storage for future contract updates, since the Algorand protocol\n * doesn't allow increasing them after creation.\n */\nexport type StateTotals = {\n globalUints?: number\n globalBytes?: number\n localUints?: number\n localBytes?: number\n}\n\n/**\n * Additional configuration options for a contract\n */\nexport type ContractOptions = {\n /**\n * Determines which AVM version to use, this affects what operations are supported.\n * Defaults to value provided supplied on command line (which defaults to current mainnet version)\n */\n avmVersion?: 10 | 11\n\n /**\n * Override the name of the logic signature when generating build artifacts.\n * Defaults to the class name\n */\n name?: string\n /**\n * Allows you to mark a slot ID or range of slot IDs as \"off limits\" to Puya.\n * These slot ID(s) will never be written to or otherwise manipulating by the compiler itself.\n * This is particularly useful in combination with `op.gload_bytes` / `op.gload_uint64`\n * which lets a contract in a group transaction read from the scratch slots of another contract\n * that occurs earlier in the transaction group.\n *\n * In the case of inheritance, scratch slots reserved become cumulative. It is not an error\n * to have overlapping ranges or values either, so if a base class contract reserves slots\n * 0-5 inclusive and the derived contract reserves 5-10 inclusive, then within the derived\n * contract all slots 0-10 will be marked as reserved.\n */\n scratchSlots?: Array<number | NumberRange>\n /**\n * Allows defining what values should be used for global and local uint and bytes storage\n * values when creating a contract. Used when outputting ARC-32 application.json schemas.\n *\n * If left unspecified, the totals will be determined by the compiler based on state\n * variables assigned to `this`.\n *\n * This setting is not inherited, and only applies to the exact `Contract` it is specified\n * on. If a base class does specify this setting, and a derived class does not, a warning\n * will be emitted for the derived class. To resolve this warning, `stateTotals` must be\n * specified. An empty object may be provided in order to indicate that this contract should\n * revert to the default behaviour\n */\n stateTotals?: StateTotals\n}\n\n/**\n * The contract decorator can be used to specify additional configuration options for a smart contract\n * @param options An object containing the configuration options\n */\nexport function contract(options: ContractOptions) {\n return <T extends ConstructorFor<BaseContract>>(contract: T, ctx: ClassDecoratorContext) => {\n throw new NoImplementation()\n }\n}\n","import { NoImplementation } from '../internal/errors'\nimport { biguint, BigUintCompat, bytes, BytesBacked, StringCompat, uint64, Uint64Compat } from '../primitives'\nimport { Account } from '../reference'\n\n/**\n * Defines UintN bit sizes which are compatible with the uint64 type\n */\ntype UintBitSize = 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64\n/**\n * Defines UintN bit sizes which are only compatible with the biguint type\n */\ntype BigUintBitSize =\n | 72\n | 80\n | 88\n | 96\n | 104\n | 112\n | 120\n | 128\n | 136\n | 144\n | 152\n | 160\n | 168\n | 176\n | 184\n | 192\n | 200\n | 208\n | 216\n | 224\n | 232\n | 240\n | 248\n | 256\n | 264\n | 272\n | 280\n | 288\n | 296\n | 304\n | 312\n | 320\n | 328\n | 336\n | 344\n | 352\n | 360\n | 368\n | 376\n | 384\n | 392\n | 400\n | 408\n | 416\n | 424\n | 432\n | 440\n | 448\n | 456\n | 464\n | 472\n | 480\n | 488\n | 496\n | 504\n | 512\n/**\n * Defines supported bit sizes for the UintN and UFixedNxM types\n */\nexport type BitSize = UintBitSize | BigUintBitSize\n/**\n * Conditional type which returns the native equivalent type for a given UintN bit size\n */\ntype NativeForArc4Int<N extends BitSize> = N extends UintBitSize ? uint64 : biguint\n/**\n * Conditional type which returns the compat type relevant to a given UintN bit size\n */\ntype CompatForArc4Int<N extends BitSize> = N extends UintBitSize ? Uint64Compat : BigUintCompat\n\n/**\n * @hidden\n */\nconst TypeProperty = Symbol('ARC4Type')\n\n/**\n * A base type for ARC4 encoded values\n */\nexport abstract class ARC4Encoded implements BytesBacked {\n /** @hidden */\n abstract [TypeProperty]?: string\n\n /**\n * Retrieve the encoded bytes for this type\n */\n get bytes(): bytes {\n throw new NoImplementation()\n }\n}\n\n/**\n * A utf8 encoded string prefixed with its length expressed as a 2 byte uint\n */\nexport class Str extends ARC4Encoded {\n /** @hidden */\n [TypeProperty]?: 'arc4.Str'\n\n /**\n * Create a new Str instance\n * @param s The native string to initialize this Str from\n */\n constructor(s?: StringCompat) {\n super()\n }\n\n /**\n * Retrieve the decoded native string\n */\n get native(): string {\n throw new NoImplementation()\n }\n}\n\n/**\n * A fixed bit size unsigned int\n */\nexport class UintN<N extends BitSize> extends ARC4Encoded {\n /** @hidden */\n [TypeProperty]?: `arc4.UintN<${N}>`\n\n /**\n * Create a new UintN instance\n * @param v The native uint64 or biguint value to initialize this UintN from\n */\n constructor(v?: CompatForArc4Int<N>) {\n super()\n }\n\n /**\n * Retrieve the decoded native uint64 or biguint\n */\n get native(): NativeForArc4Int<N> {\n throw new NoImplementation()\n }\n}\n\n/**\n * An alias for UintN<8>\n */\nexport class Byte extends UintN<8> {}\n\n/**\n * An alias for UintN<8>\n */\nexport class UintN8 extends UintN<8> {}\n\n/**\n * An alias for UintN<16>\n */\nexport class UintN16 extends UintN<16> {}\n\n/**\n * An alias for UintN<32>\n */\nexport class UintN32 extends UintN<32> {}\n\n/**\n * An alias for UintN<64>\n */\nexport class UintN64 extends UintN<64> {}\n\n/**\n * An alias for UintN<128>\n */\nexport class UintN128 extends UintN<128> {}\n\n/**\n * An alias for UintN<256>\n */\nexport class UintN256 extends UintN<256> {}\n\n/**\n * A fixed bit size, fixed decimal unsigned value\n */\nexport class UFixedNxM<N extends BitSize, M extends number> extends ARC4Encoded {\n /** @hidden */\n [TypeProperty]?: `arc4.UFixedNxM<${N}x${M}>`\n\n /**\n * Create a new UFixedNxM value\n * @param v A string representing the integer and fractional portion of the number\n */\n constructor(v: `${number}.${number}`) {\n super()\n }\n\n /**\n * Retrieve the decoded native uint64 or biguint where the returned integer represents the fixed decimal value * (10 ^ M)\n */\n get native(): NativeForArc4Int<N> {\n throw new NoImplementation()\n }\n}\n\n/**\n * A boolean value\n */\nexport class Bool extends ARC4Encoded {\n /** @hidden */\n [TypeProperty]?: `arc4.Bool`\n\n /**\n * Create a new Bool value\n * @param v The native boolean to initialize this value from\n */\n constructor(v?: boolean) {\n super()\n }\n\n /**\n * Get the decoded native boolean for this value\n */\n get native(): boolean {\n throw new NoImplementation()\n }\n}\n\n/**\n * A base type for arc4 array types\n */\nabstract class Arc4ArrayBase<TItem extends ARC4Encoded> extends ARC4Encoded {\n protected constructor() {\n super()\n }\n\n /**\n * Returns the current length of this array\n */\n get length(): uint64 {\n throw new NoImplementation()\n }\n\n /**\n * Returns the item at the given index.\n * Negative indexes are taken from the end.\n * @param index The index of the item to retrieve\n */\n at(index: Uint64Compat): TItem {\n throw new NoImplementation()\n }\n\n /** @internal\n * Create a new Dynamic array with all items from this array\n */\n slice(): DynamicArray<TItem>\n /** @internal\n * Create a new DynamicArray with all items up till `end`.\n * Negative indexes are taken from the end.\n * @param end An index in which to stop copying items.\n */\n slice(end: Uint64Compat): DynamicArray<TItem>\n /** @internal\n * Create a new DynamicArray with items from `start`, up until `end`\n * Negative indexes are taken from the end.\n * @param start An index in which to start copying items.\n * @param end An index in which to stop copying items\n */\n slice(start: Uint64Compat, end: Uint64Compat): DynamicArray<TItem>\n slice(start?: Uint64Compat, end?: Uint64Compat): DynamicArray<TItem> {\n throw new NoImplementation()\n }\n\n /**\n * Returns an iterator for the items in this array\n */\n [Symbol.iterator](): IterableIterator<TItem> {\n throw new NoImplementation()\n }\n\n /**\n * Returns an iterator for a tuple of the indexes and items in this array\n */\n entries(): IterableIterator<readonly [uint64, TItem]> {\n throw new NoImplementation()\n }\n\n /**\n * Returns an iterator for the indexes in this array\n */\n keys(): IterableIterator<uint64> {\n throw new NoImplementation()\n }\n\n /**\n * Get or set the item at the specified index.\n * Negative indexes are not supported\n */\n [index: uint64]: TItem\n}\n\n/**\n * A fixed sized array of arc4 items\n * @typeParam TItem The type of a single item in the array\n * @typeParam TLength The fixed length of the array\n */\nexport class StaticArray<TItem extends ARC4Encoded, TLength extends number> extends Arc4ArrayBase<TItem> {\n /** @hidden */\n [TypeProperty]?: `arc4.StaticArray<${TItem[typeof TypeProperty]}, ${TLength}>`\n\n /**\n * Create a new StaticArray instance\n */\n constructor()\n /**\n * Create a new StaticArray instance with the specified items\n * @param items The initial items for the array\n */\n constructor(...items: TItem[] & { length: TLength })\n constructor(...items: TItem[] & { length: TLength }) {\n super()\n }\n\n /**\n * Returns a copy of this array\n */\n copy(): StaticArray<TItem, TLength> {\n throw new NoImplementation()\n }\n\n /**\n * Returns a new array containing all items from _this_ array, and _other_ array\n * @param other Another array to concat with this one\n */\n concat(other: Arc4ArrayBase<TItem>): DynamicArray<TItem> {\n throw new NoImplementation()\n }\n}\n\n/**\n * A dynamic sized array of arc4 items\n * @typeParam TItem The type of a single item in the array\n */\nexport class DynamicArray<TItem extends ARC4Encoded> extends Arc4ArrayBase<TItem> {\n /** @hidden */\n [TypeProperty]?: `arc4.DynamicArray<${TItem[typeof TypeProperty]}>`\n\n /**\n * Create a new DynamicArray with the specified items\n * @param items The initial items for the array\n */\n constructor(...items: TItem[]) {\n super()\n }\n\n /**\n * Push a number of items into this array\n * @param items The items to be added to this array\n */\n push(...items: TItem[]): void {\n throw new NoImplementation()\n }\n\n /**\n * Pop a single item from this array\n */\n pop(): TItem {\n throw new NoImplementation()\n }\n\n /**\n * Returns a copy of this array\n */\n copy(): DynamicArray<TItem> {\n throw new NoImplementation()\n }\n\n /**\n * Returns a new array containing all items from _this_ array, and _other_ array\n * @param other Another array to concat with this one\n */\n concat(other: Arc4ArrayBase<TItem>): DynamicArray<TItem> {\n throw new NoImplementation()\n }\n}\n\n/**\n * @hidden\n */\ntype ExpandTupleType<T extends ARC4Encoded[]> = T extends [infer T1 extends ARC4Encoded, ...infer TRest extends ARC4Encoded[]]\n ? TRest extends []\n ? `${T1[typeof TypeProperty]}`\n : `${T1[typeof TypeProperty]},${ExpandTupleType<TRest>}`\n : ''\n\n/**\n * An arc4 encoded tuple of values\n * @typeParam TTuple A type representing the native tuple of item types\n */\nexport class Tuple<TTuple extends [ARC4Encoded, ...ARC4Encoded[]]> extends ARC4Encoded {\n /** @hidden */\n [TypeProperty]?: `arc4.Tuple<${ExpandTupleType<TTuple>}>`\n\n /**\n * Create a new Tuple with the specified items\n * @param items The tuple items\n */\n constructor(...items: TTuple) {\n super()\n }\n\n /**\n * Returns the item at the specified index\n * @param index The index of the item to get. Must be a positive literal representing a tuple index\n */\n at<TIndex extends keyof TTuple>(index: TIndex): TTuple[TIndex] {\n throw new NoImplementation()\n }\n\n /**\n * Returns the length of this tuple\n */\n get length(): TTuple['length'] & uint64 {\n throw new NoImplementation()\n }\n\n /**\n * Returns the decoded native tuple (with arc4 encoded items)\n */\n get native(): TTuple {\n throw new NoImplementation()\n }\n}\n\n/**\n * A 32 byte Algorand Address\n */\nexport class Address extends Arc4ArrayBase<Byte> {\n /** @hidden */\n [TypeProperty]?: `arc4.Address`\n\n /**\n * Create a new Address instance\n * @param value An Account, base 32 address string, or the address bytes\n */\n constructor(value?: Account | string | bytes) {\n super()\n }\n\n /**\n * Returns an Account instance for this Address\n */\n get native(): Account {\n throw new NoImplementation()\n }\n}\n\n/**\n * The base type for arc4 structs\n */\nclass StructBase<T> extends ARC4Encoded {\n /** @hidden */\n [TypeProperty] = 'arc4.Struct'\n\n get native(): T {\n throw new NoImplementation()\n }\n\n /**\n * Returns a deep copy of this struct\n */\n copy(): this {\n throw new NoImplementation()\n }\n}\n\n/**\n * Type alias for the Struct constructor function\n * @typeParam T The shape of the arc4 struct\n */\ntype StructConstructor = {\n new <T extends Record<string, ARC4Encoded>>(initial: T): StructBase<T> & T\n}\n\n/**\n * The base type of arc4 structs\n *\n * Usage:\n * ```\n * class MyStruct extends Struct<{ x: UintN8, y: Str, z: DynamicBytes }> {}\n * ```\n */\nexport const Struct = StructBase as unknown as StructConstructor\n\n/**\n * A variable length sequence of bytes prefixed with its length expressed as a 2 byte uint\n */\nexport class DynamicBytes extends Arc4ArrayBase<Byte> {\n /** @hidden */\n [TypeProperty]?: `arc4.DynamicBytes`\n\n /**\n * Create a new DynamicBytes instance\n * @param value The bytes or utf8 interpreted string to initialize this type\n */\n constructor(value?: bytes | string) {\n super()\n }\n\n /**\n * Get the native bytes value (excludes the length prefix)\n */\n get native(): bytes {\n throw new NoImplementation()\n }\n\n /**\n * Returns a dynamic bytes object containing all bytes from _this_ and _other_\n * @param other Another array of bytes to concat with this one\n */\n concat(other: Arc4ArrayBase<Byte>): DynamicBytes {\n throw new NoImplementation()\n }\n}\n\n/**\n * A fixed length sequence of bytes\n */\nexport class StaticBytes<TLength extends number = 0> extends Arc4ArrayBase<Byte> {\n /** @hidden */\n [TypeProperty]?: `arc4.StaticBytes<${TLength}>`\n\n /**\n * Create a new StaticBytes instance\n * @param value THe bytes or utf8 interpreted string to initialize this type\n */\n constructor(value?: bytes | string) {\n super()\n }\n\n /**\n * Get the native bytes value\n */\n get native(): bytes {\n throw new NoImplementation()\n }\n\n /**\n * Returns a dynamic bytes object containing all bytes from _this_ and _other_\n * @param other Another array of bytes to concat with this one\n */\n concat(other: Arc4ArrayBase<Byte>): DynamicBytes {\n throw new NoImplementation()\n }\n}\n","import { CompileContractOptions, CompiledContract } from '../compiled'\nimport * as gtxn from '../gtxn'\nimport { NoImplementation } from '../internal/errors'\nimport { AnyFunction, ConstructorFor, DeliberateAny, InstanceMethod } from '../internal/typescript-helpers'\nimport * as itxn from '../itxn'\nimport { ApplicationCallFields, ApplicationInnerTxn } from '../itxn'\nimport { Contract } from './index'\n\n/**\n * Defines txn fields that are available for a bare create application call.\n *\n * This is the regular application call fields minus:\n * - appId: because the appId is not known when creating an application\n * - appArgs: because a bare call cannot have arguments\n */\nexport type BareCreateApplicationCallFields = Omit<ApplicationCallFields, 'appId' | 'appArgs'>\n\n/**\n * Conditional type which given a group transaction type, returns the equivalent inner transaction\n * params type.\n */\nexport type GtxnToItxnFields<T extends gtxn.Transaction> = T extends gtxn.PaymentTxn\n ? itxn.PaymentItxnParams\n : T extends gtxn.KeyRegistrationTxn\n ? itxn.KeyRegistrationItxnParams\n : T extends gtxn.AssetConfigTxn\n ? itxn.AssetConfigItxnParams\n : T extends gtxn.AssetTransferTxn\n ? itxn.AssetTransferItxnParams\n : T extends gtxn.AssetFreezeTxn\n ? itxn.AssetFreezeItxnParams\n : T extends gtxn.ApplicationTxn\n ? itxn.ApplicationCallItxnParams\n : itxn.InnerTransaction\n\n/**\n * Conditional type which given an application argument, returns the input type for that argument.\n *\n * The input type will usually be the original type apart from group transactions which will be substituted\n * with their equivalent inner transaction type.\n */\nexport type TypedApplicationArg<TArg> = TArg extends gtxn.Transaction ? GtxnToItxnFields<TArg> : TArg\n\n/**\n * Conditional type which maps a tuple of application arguments to a tuple of input types for specifying those arguments.\n */\nexport type TypedApplicationArgs<TArgs> = TArgs extends []\n ? []\n : TArgs extends [infer TArg, ...infer TRest]\n ? [TypedApplicationArg<TArg>, ...TypedApplicationArgs<TRest>]\n : never\n\n/**\n * Application call fields with `appArgs` replaced with an `args` property that is strongly typed to the actual arguments for the\n * given application call.\n */\nexport type TypedApplicationCallFields<TArgs> = Omit<ApplicationCallFields, 'appArgs'> &\n (TArgs extends [] ? { args?: TypedApplicationArgs<TArgs> } : { args: TypedApplicationArgs<TArgs> })\n\n/**\n * The response type of a typed application call. Includes the raw itxn result object and the parsed ABI return value if applicable.\n */\nexport type TypedApplicationCallResponse<TReturn> = TReturn extends void\n ? { itxn: ApplicationInnerTxn }\n : { itxn: ApplicationInnerTxn; returnValue: TReturn }\n\n/**\n * Conditional type which maps an ABI method to a factory method for constructing an application call transaction to call that method.\n */\nexport type ContractProxyMethod<TMethod> = TMethod extends (...args: infer TArgs) => infer TReturn\n ? (fields?: TypedApplicationCallFields<TArgs>) => TypedApplicationCallResponse<TReturn>\n : never\n\n/**\n * Conditional type which maps an ARC4 compatible contract to a proxy object which allows for constructing application call transactions for\n * all available ABI and bare methods. Also includes the compiled contract result data.\n */\nexport type ContractProxy<TContract extends Contract> = CompiledContract & {\n /**\n * Get methods for calling ABI and bare methods on the target contract\n */\n call: {\n /**\n * Invoke this method via an inner transaction call\n */\n [key in keyof TContract as key extends 'approvalProgram' | 'clearStateProgram'\n ? never\n : TContract[key] extends AnyFunction\n ? key\n : never]: ContractProxyMethod<TContract[key]>\n }\n /**\n * Create a bare application call itxn to create the contract.\n * @param fields Specify values for transaction fields which should override the default values.\n */\n bareCreate(fields?: BareCreateApplicationCallFields): ApplicationInnerTxn\n}\n\n/**\n * Pre compile the target ARC4 contract and return a proxy object for constructing inner transactions to call an instance of that contract.\n * @param contract An ARC4 contract class\n * @param options Compile contract arguments\n */\nexport function compileArc4<TContract extends Contract>(\n contract: ConstructorFor<TContract>,\n options?: CompileContractOptions,\n): ContractProxy<TContract> {\n throw new NoImplementation()\n}\n\n/**\n * Invokes the target ABI method using a strongly typed fields object.\n * @param method An ABI method function reference.\n * @param fields Specify values for transaction fields.\n */\nexport function abiCall<TArgs extends DeliberateAny[], TReturn>(\n method: InstanceMethod<Contract, TArgs, TReturn>,\n fields: TypedApplicationCallFields<TArgs>,\n): TypedApplicationCallResponse<TReturn> {\n throw new NoImplementation()\n}\n","import { BaseContract } from '../base-contract'\nimport { NoImplementation } from '../internal/errors'\nimport { DeliberateAny, InstanceMethod } from '../internal/typescript-helpers'\nimport { OnCompleteActionStr } from '../on-complete-action'\nimport { bytes, BytesCompat, uint64 } from '../primitives'\nimport { ARC4Encoded } from './encoded-types'\n\nexport * from './encoded-types'\nexport * from './c2c'\n\n/**\n * The base type for all ARC4 contracts in Algorand TypeScript\n */\nexport class Contract extends BaseContract {\n /**\n * Default implementation of an ARC4 approval program, routes transactions to ABI or bare methods based on application\n * args and on completion actions\n */\n override approvalProgram(): boolean {\n throw new NoImplementation()\n }\n}\n\n/**\n * The possible options for a method being available on application create\n *\n * allow: This method CAN be called when the application is being created, but it is not required\n * disallow: This method CANNOT be called when the application is being created\n * require: This method CAN ONLY be called when the application is being created\n */\nexport type CreateOptions = 'allow' | 'disallow' | 'require'\n\n/**\n * Type alias for a default argument schema\n * @typeParam TContract The type of the contract containing the method this default argument is for\n */\nexport type DefaultArgument<TContract extends Contract> =\n | {\n /**\n * A compile time constant value to be used as a default\n */\n constant: string | boolean | number | bigint\n }\n | {\n /**\n * Retrieve the default value from a member of this contract. The member can be\n *\n * LocalState: The value is retrieved from the calling user's local state before invoking this method\n * GlobalState: The value is retrieved from the specified global state key before invoking this method\n * Method: Any readonly abimethod with no arguments can be used as a source\n */\n from: keyof TContract\n }\n/**\n * Configuration options for an abi method\n * @typeParam TContract the type of the contract this method is a part of\n */\nexport type AbiMethodConfig<TContract extends Contract> = {\n /**\n * Which on complete action(s) are allowed when invoking this method.\n * @default 'NoOp'\n */\n allowActions?: OnCompleteActionStr | OnCompleteActionStr[]\n /**\n * Whether this method should be callable when creating the application.\n * @default 'disallow'\n */\n onCreate?: CreateOptions\n /**\n * Does the method only perform read operations (no mutation of chain state)\n * @default false\n */\n readonly?: boolean\n /**\n * Override the name used to generate the abi method selector\n */\n name?: string\n\n /**\n * Specify default arguments that can be populated by clients calling this method.\n *\n * A map of parameter names to the default argument source\n */\n defaultArguments?: Record<string, DefaultArgument<TContract>>\n}\n\n/**\n * Declares the decorated method as an abimethod that is called when the first transaction arg matches the method selector\n * @param config The config for this abi method\n * @typeParam TContract the type of the contract this method is a part of\n */\nexport function abimethod<TContract extends Contract>(config?: AbiMethodConfig<TContract>) {\n return function <TArgs extends DeliberateAny[], TReturn>(\n target: (this: TContract, ...args: TArgs) => TReturn,\n ctx: ClassMethodDecoratorContext<TContract>,\n ): (this: TContract, ...args: TArgs) => TReturn {\n throw new NoImplementation()\n }\n}\n\n/**\n * Configuration options for a bare method\n */\nexport type BareMethodConfig = {\n /**\n * Which on complete action(s) are allowed when invoking this method.\n * @default 'NoOp'\n */\n allowActions?: OnCompleteActionStr | OnCompleteActionStr[]\n /**\n * Whether this method should be callable when creating the application.\n * @default 'disallow'\n */\n onCreate?: CreateOptions\n}\n\n/**\n * Declares the decorated method as a baremethod that can only be called with no transaction args\n * @param config The config for this bare method\n * @typeParam TContract the type of the contract this method is a part of\n */\nexport function baremethod<TContract extends Contract>(config?: BareMethodConfig) {\n return function <TArgs extends DeliberateAny[], TReturn>(\n target: (this: TContract, ...args: TArgs) => TReturn,\n ctx: ClassMethodDecoratorContext<TContract>,\n ): (this: TContract, ...args: TArgs) => TReturn {\n throw new NoImplementation()\n }\n}\n/**\n * Returns the ARC4 method selector for a given ARC4 method signature. The method selector is the first\n * 4 bytes of the SHA512/256 hash of the method signature.\n * @param methodSignature An ARC4 contract method reference. (Eg. `MyContract.prototype.myMethod`)\n * @returns The ARC4 method selector. Eg. `02BECE11`\n */\nexport function methodSelector(methodSignature: InstanceMethod<Contract>): bytes\n/**\n * Returns the ARC4 method selector for a given ARC4 method signature. The method selector is the first\n * 4 bytes of the SHA512/256 hash of the method signature.\n * @param methodSignature An ARC4 method signature string (Eg. `hello(string)string`. Must be a compile time constant)\n * @returns The ARC4 method selector. Eg. `02BECE11`\n */\nexport function methodSelector(methodSignature: string): bytes\nexport function methodSelector(methodSignature: string | InstanceMethod<Contract>): bytes {\n throw new NoImplementation()\n}\n\n/**\n * Interpret the provided bytes as an ARC4 encoded type with no validation\n * @param bytes An arc4 encoded bytes value\n * @param prefix The prefix (if any), present in the bytes value. This prefix will be validated and removed\n */\nexport function interpretAsArc4<T extends ARC4Encoded>(bytes: BytesCompat, prefix: 'none' | 'log' = 'none'): T {\n throw new NoImplementation()\n}\n\n/**\n * Decode the provided bytes to a native Algorand TypeScript value\n * @param bytes An arc4 encoded bytes value\n * @param prefix The prefix (if any), present in the bytes value. This prefix will be validated and removed\n */\nexport function decodeArc4<T>(bytes: BytesCompat, prefix: 'none' | 'log' = 'none'): T {\n throw new NoImplementation()\n}\n\n/**\n * Encode the provided Algorand TypeScript value as ARC4 bytes\n * @param value Any native Algorand TypeScript value with a supported ARC4 encoding\n */\nexport function encodeArc4<T>(value: T): bytes {\n throw new NoImplementation()\n}\n\n/**\n * Return the total number of bytes required to store T as ARC4 bytes.\n *\n * T must represent a type with a fixed length encoding scheme.\n * @typeParam T Any native or arc4 type with a fixed encoding size.\n */\nexport function arc4EncodedLength<T>(): uint64 {\n throw new NoImplementation()\n}\n"],"names":[],"mappings":"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"}
package/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { N as NoImplementation } from './errors-D124-zqo.js';
2
2
  export { B as Base64, E as Ec, a as Ecdsa, G as Global, M as MimcConfigurations, T as Txn, V as VrfVerify, o as op } from './op-Dh5PXhZo.js';
3
- export { B as BaseContract, C as Contract, a as abimethod, i as arc4, b as baremethod, c as contract } from './index-C_m8bJFG.js';
3
+ export { B as BaseContract, C as Contract, a as abimethod, i as arc4, b as baremethod, c as contract } from './index-rjo2X8sp.js';
4
4
 
5
5
  function Uint64(v) {
6
6
  throw new NoImplementation();
@@ -1,3 +1,4 @@
1
1
  export type DeliberateAny = any;
2
2
  export type AnyFunction = (...args: DeliberateAny[]) => DeliberateAny;
3
3
  export type ConstructorFor<T, TArgs extends DeliberateAny[] = DeliberateAny[]> = new (...args: TArgs) => T;
4
+ export type InstanceMethod<TClass, TArgs extends DeliberateAny[] = DeliberateAny[], TReturn = DeliberateAny> = (this: TClass, ...args: TArgs) => TReturn;
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "**"
5
5
  ],
6
6
  "name": "@algorandfoundation/algorand-typescript",
7
- "version": "1.0.0-beta.25",
7
+ "version": "1.0.0-beta.26",
8
8
  "description": "This package contains definitions for the types which comprise Algorand TypeScript which can be compiled to run on the Algorand Virtual Machine using the Puya compiler.",
9
9
  "private": false,
10
10
  "overrides": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-C_m8bJFG.js","sources":["../src/base-contract.ts","../src/arc4/encoded-types.ts","../src/arc4/index.ts"],"sourcesContent":["import { NoImplementation } from './internal/errors'\nimport { ConstructorFor } from './internal/typescript-helpers'\nimport { uint64 } from './primitives'\nimport { NumberRange } from './util'\n\n/**\n * The base type for all Algorand TypeScript contracts\n */\nexport abstract class BaseContract {\n /**\n * The program to be run when the On Completion Action is != ClearState (3)\n */\n public abstract approvalProgram(): boolean | uint64\n\n /**\n * The program to be run when the On Completion Action is == ClearState (3)\n */\n public clearStateProgram(): boolean | uint64 {\n return true\n }\n}\n\n/**\n * Options class to manually define the total amount of global and local state contract will use.\n *\n * This is not required when all state is assigned to `this.`, but is required if a\n * contract dynamically interacts with state via `AppGlobal.getBytes` etc, or if you want\n * to reserve additional state storage for future contract updates, since the Algorand protocol\n * doesn't allow increasing them after creation.\n */\nexport type StateTotals = {\n globalUints?: number\n globalBytes?: number\n localUints?: number\n localBytes?: number\n}\n\n/**\n * Additional configuration options for a contract\n */\nexport type ContractOptions = {\n /**\n * Determines which AVM version to use, this affects what operations are supported.\n * Defaults to value provided supplied on command line (which defaults to current mainnet version)\n */\n avmVersion?: 10 | 11\n\n /**\n * Override the name of the logic signature when generating build artifacts.\n * Defaults to the class name\n */\n name?: string\n /**\n * Allows you to mark a slot ID or range of slot IDs as \"off limits\" to Puya.\n * These slot ID(s) will never be written to or otherwise manipulating by the compiler itself.\n * This is particularly useful in combination with `op.gload_bytes` / `op.gload_uint64`\n * which lets a contract in a group transaction read from the scratch slots of another contract\n * that occurs earlier in the transaction group.\n *\n * In the case of inheritance, scratch slots reserved become cumulative. It is not an error\n * to have overlapping ranges or values either, so if a base class contract reserves slots\n * 0-5 inclusive and the derived contract reserves 5-10 inclusive, then within the derived\n * contract all slots 0-10 will be marked as reserved.\n */\n scratchSlots?: Array<number | NumberRange>\n /**\n * Allows defining what values should be used for global and local uint and bytes storage\n * values when creating a contract. Used when outputting ARC-32 application.json schemas.\n *\n * If left unspecified, the totals will be determined by the compiler based on state\n * variables assigned to `this`.\n *\n * This setting is not inherited, and only applies to the exact `Contract` it is specified\n * on. If a base class does specify this setting, and a derived class does not, a warning\n * will be emitted for the derived class. To resolve this warning, `stateTotals` must be\n * specified. An empty object may be provided in order to indicate that this contract should\n * revert to the default behaviour\n */\n stateTotals?: StateTotals\n}\n\n/**\n * The contract decorator can be used to specify additional configuration options for a smart contract\n * @param options An object containing the configuration options\n */\nexport function contract(options: ContractOptions) {\n return <T extends ConstructorFor<BaseContract>>(contract: T, ctx: ClassDecoratorContext) => {\n throw new NoImplementation()\n }\n}\n","import { NoImplementation } from '../internal/errors'\nimport { biguint, BigUintCompat, bytes, BytesBacked, BytesCompat, StringCompat, uint64, Uint64Compat } from '../primitives'\nimport { Account } from '../reference'\n\n/**\n * Defines UintN bit sizes which are compatible with the uint64 type\n */\ntype UintBitSize = 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64\n/**\n * Defines UintN bit sizes which are only compatible with the biguint type\n */\ntype BigUintBitSize =\n | 72\n | 80\n | 88\n | 96\n | 104\n | 112\n | 120\n | 128\n | 136\n | 144\n | 152\n | 160\n | 168\n | 176\n | 184\n | 192\n | 200\n | 208\n | 216\n | 224\n | 232\n | 240\n | 248\n | 256\n | 264\n | 272\n | 280\n | 288\n | 296\n | 304\n | 312\n | 320\n | 328\n | 336\n | 344\n | 352\n | 360\n | 368\n | 376\n | 384\n | 392\n | 400\n | 408\n | 416\n | 424\n | 432\n | 440\n | 448\n | 456\n | 464\n | 472\n | 480\n | 488\n | 496\n | 504\n | 512\n/**\n * Defines supported bit sizes for the UintN and UFixedNxM types\n */\nexport type BitSize = UintBitSize | BigUintBitSize\n/**\n * Conditional type which returns the native equivalent type for a given UintN bit size\n */\ntype NativeForArc4Int<N extends BitSize> = N extends UintBitSize ? uint64 : biguint\n/**\n * Conditional type which returns the compat type relevant to a given UintN bit size\n */\ntype CompatForArc4Int<N extends BitSize> = N extends UintBitSize ? Uint64Compat : BigUintCompat\n\n/**\n * @hidden\n */\nconst TypeProperty = Symbol('ARC4Type')\n\n/**\n * A base type for ARC4 encoded values\n */\nexport abstract class ARC4Encoded implements BytesBacked {\n /** @hidden */\n abstract [TypeProperty]?: string\n\n /**\n * Retrieve the encoded bytes for this type\n */\n get bytes(): bytes {\n throw new NoImplementation()\n }\n}\n\n/**\n * A utf8 encoded string prefixed with its length expressed as a 2 byte uint\n */\nexport class Str extends ARC4Encoded {\n /** @hidden */\n [TypeProperty]?: 'arc4.Str'\n\n /**\n * Create a new Str instance\n * @param s The native string to initialize this Str from\n */\n constructor(s?: StringCompat) {\n super()\n }\n\n /**\n * Retrieve the decoded native string\n */\n get native(): string {\n throw new NoImplementation()\n }\n}\n\n/**\n * A fixed bit size unsigned int\n */\nexport class UintN<N extends BitSize> extends ARC4Encoded {\n /** @hidden */\n [TypeProperty]?: `arc4.UintN<${N}>`\n\n /**\n * Create a new UintN instance\n * @param v The native uint64 or biguint value to initialize this UintN from\n */\n constructor(v?: CompatForArc4Int<N>) {\n super()\n }\n\n /**\n * Retrieve the decoded native uint64 or biguint\n */\n get native(): NativeForArc4Int<N> {\n throw new NoImplementation()\n }\n}\n\n/**\n * An alias for UintN<8>\n */\nexport class Byte extends UintN<8> {}\n\n/**\n * An alias for UintN<8>\n */\nexport class UintN8 extends UintN<8> {}\n\n/**\n * An alias for UintN<16>\n */\nexport class UintN16 extends UintN<16> {}\n\n/**\n * An alias for UintN<32>\n */\nexport class UintN32 extends UintN<32> {}\n\n/**\n * An alias for UintN<64>\n */\nexport class UintN64 extends UintN<64> {}\n\n/**\n * An alias for UintN<128>\n */\nexport class UintN128 extends UintN<128> {}\n\n/**\n * An alias for UintN<256>\n */\nexport class UintN256 extends UintN<256> {}\n\n/**\n * A fixed bit size, fixed decimal unsigned value\n */\nexport class UFixedNxM<N extends BitSize, M extends number> extends ARC4Encoded {\n /** @hidden */\n [TypeProperty]?: `arc4.UFixedNxM<${N}x${M}>`\n\n /**\n * Create a new UFixedNxM value\n * @param v A string representing the integer and fractional portion of the number\n */\n constructor(v: `${number}.${number}`) {\n super()\n }\n\n /**\n * Retrieve the decoded native uint64 or biguint where the returned integer represents the fixed decimal value * (10 ^ M)\n */\n get native(): NativeForArc4Int<N> {\n throw new NoImplementation()\n }\n}\n\n/**\n * A boolean value\n */\nexport class Bool extends ARC4Encoded {\n /** @hidden */\n [TypeProperty]?: `arc4.Bool`\n\n /**\n * Create a new Bool value\n * @param v The native boolean to initialize this value from\n */\n constructor(v?: boolean) {\n super()\n }\n\n /**\n * Get the decoded native boolean for this value\n */\n get native(): boolean {\n throw new NoImplementation()\n }\n}\n\n/**\n * A base type for arc4 array types\n */\nabstract class Arc4ArrayBase<TItem extends ARC4Encoded> extends ARC4Encoded {\n protected constructor() {\n super()\n }\n\n /**\n * Returns the current length of this array\n */\n get length(): uint64 {\n throw new NoImplementation()\n }\n\n /**\n * Returns the item at the given index.\n * Negative indexes are taken from the end.\n * @param index The index of the item to retrieve\n */\n at(index: Uint64Compat): TItem {\n throw new NoImplementation()\n }\n\n /** @internal\n * Create a new Dynamic array with all items from this array\n */\n slice(): DynamicArray<TItem>\n /** @internal\n * Create a new DynamicArray with all items up till `end`.\n * Negative indexes are taken from the end.\n * @param end An index in which to stop copying items.\n */\n slice(end: Uint64Compat): DynamicArray<TItem>\n /** @internal\n * Create a new DynamicArray with items from `start`, up until `end`\n * Negative indexes are taken from the end.\n * @param start An index in which to start copying items.\n * @param end An index in which to stop copying items\n */\n slice(start: Uint64Compat, end: Uint64Compat): DynamicArray<TItem>\n slice(start?: Uint64Compat, end?: Uint64Compat): DynamicArray<TItem> {\n throw new NoImplementation()\n }\n\n /**\n * Returns an iterator for the items in this array\n */\n [Symbol.iterator](): IterableIterator<TItem> {\n throw new NoImplementation()\n }\n\n /**\n * Returns an iterator for a tuple of the indexes and items in this array\n */\n entries(): IterableIterator<readonly [uint64, TItem]> {\n throw new NoImplementation()\n }\n\n /**\n * Returns an iterator for the indexes in this array\n */\n keys(): IterableIterator<uint64> {\n throw new NoImplementation()\n }\n\n /**\n * Get or set the item at the specified index.\n * Negative indexes are not supported\n */\n [index: uint64]: TItem\n}\n\n/**\n * A fixed sized array of arc4 items\n * @typeParam TItem The type of a single item in the array\n * @typeParam TLength The fixed length of the array\n */\nexport class StaticArray<TItem extends ARC4Encoded, TLength extends number> extends Arc4ArrayBase<TItem> {\n /** @hidden */\n [TypeProperty]?: `arc4.StaticArray<${TItem[typeof TypeProperty]}, ${TLength}>`\n\n /**\n * Create a new StaticArray instance\n */\n constructor()\n /**\n * Create a new StaticArray instance with the specified items\n * @param items The initial items for the array\n */\n constructor(...items: TItem[] & { length: TLength })\n constructor(...items: TItem[] & { length: TLength }) {\n super()\n }\n\n /**\n * Returns a copy of this array\n */\n copy(): StaticArray<TItem, TLength> {\n throw new NoImplementation()\n }\n\n /**\n * Returns a new array containing all items from _this_ array, and _other_ array\n * @param other Another array to concat with this one\n */\n concat(other: Arc4ArrayBase<TItem>): DynamicArray<TItem> {\n throw new NoImplementation()\n }\n}\n\n/**\n * A dynamic sized array of arc4 items\n * @typeParam TItem The type of a single item in the array\n */\nexport class DynamicArray<TItem extends ARC4Encoded> extends Arc4ArrayBase<TItem> {\n /** @hidden */\n [TypeProperty]?: `arc4.DynamicArray<${TItem[typeof TypeProperty]}>`\n\n /**\n * Create a new DynamicArray with the specified items\n * @param items The initial items for the array\n */\n constructor(...items: TItem[]) {\n super()\n }\n\n /**\n * Push a number of items into this array\n * @param items The items to be added to this array\n */\n push(...items: TItem[]): void {\n throw new NoImplementation()\n }\n\n /**\n * Pop a single item from this array\n */\n pop(): TItem {\n throw new NoImplementation()\n }\n\n /**\n * Returns a copy of this array\n */\n copy(): DynamicArray<TItem> {\n throw new NoImplementation()\n }\n\n /**\n * Returns a new array containing all items from _this_ array, and _other_ array\n * @param other Another array to concat with this one\n */\n concat(other: Arc4ArrayBase<TItem>): DynamicArray<TItem> {\n throw new NoImplementation()\n }\n}\n\n/**\n * @hidden\n */\ntype ExpandTupleType<T extends ARC4Encoded[]> = T extends [infer T1 extends ARC4Encoded, ...infer TRest extends ARC4Encoded[]]\n ? TRest extends []\n ? `${T1[typeof TypeProperty]}`\n : `${T1[typeof TypeProperty]},${ExpandTupleType<TRest>}`\n : ''\n\n/**\n * An arc4 encoded tuple of values\n * @typeParam TTuple A type representing the native tuple of item types\n */\nexport class Tuple<TTuple extends [ARC4Encoded, ...ARC4Encoded[]]> extends ARC4Encoded {\n /** @hidden */\n [TypeProperty]?: `arc4.Tuple<${ExpandTupleType<TTuple>}>`\n\n /**\n * Create a new Tuple with the specified items\n * @param items The tuple items\n */\n constructor(...items: TTuple) {\n super()\n }\n\n /**\n * Returns the item at the specified index\n * @param index The index of the item to get. Must be a positive literal representing a tuple index\n */\n at<TIndex extends keyof TTuple>(index: TIndex): TTuple[TIndex] {\n throw new NoImplementation()\n }\n\n /**\n * Returns the length of this tuple\n */\n get length(): TTuple['length'] & uint64 {\n throw new NoImplementation()\n }\n\n /**\n * Returns the decoded native tuple (with arc4 encoded items)\n */\n get native(): TTuple {\n throw new NoImplementation()\n }\n}\n\n/**\n * A 32 byte Algorand Address\n */\nexport class Address extends Arc4ArrayBase<Byte> {\n /** @hidden */\n [TypeProperty]?: `arc4.Address`\n\n /**\n * Create a new Address instance\n * @param value An Account, base 32 address string, or the address bytes\n */\n constructor(value?: Account | string | bytes) {\n super()\n }\n\n /**\n * Returns an Account instance for this Address\n */\n get native(): Account {\n throw new NoImplementation()\n }\n}\n\n/**\n * The base type for arc4 structs\n */\nclass StructBase<T> extends ARC4Encoded {\n /** @hidden */\n [TypeProperty] = 'arc4.Struct'\n\n get native(): T {\n throw new NoImplementation()\n }\n\n /**\n * Returns a deep copy of this struct\n */\n copy(): this {\n throw new NoImplementation()\n }\n}\n\n/**\n * Type alias for the Struct constructor function\n * @typeParam T The shape of the arc4 struct\n */\ntype StructConstructor = {\n new <T extends Record<string, ARC4Encoded>>(initial: T): StructBase<T> & T\n}\n\n/**\n * The base type of arc4 structs\n *\n * Usage:\n * ```\n * class MyStruct extends Struct<{ x: UintN8, y: Str, z: DynamicBytes }> {}\n * ```\n */\nexport const Struct = StructBase as unknown as StructConstructor\n\n/**\n * A variable length sequence of bytes prefixed with its length expressed as a 2 byte uint\n */\nexport class DynamicBytes extends Arc4ArrayBase<Byte> {\n /** @hidden */\n [TypeProperty]?: `arc4.DynamicBytes`\n\n /**\n * Create a new DynamicBytes instance\n * @param value The bytes or utf8 interpreted string to initialize this type\n */\n constructor(value?: bytes | string) {\n super()\n }\n\n /**\n * Get the native bytes value (excludes the length prefix)\n */\n get native(): bytes {\n throw new NoImplementation()\n }\n\n /**\n * Returns a dynamic bytes object containing all bytes from _this_ and _other_\n * @param other Another array of bytes to concat with this one\n */\n concat(other: Arc4ArrayBase<Byte>): DynamicBytes {\n throw new NoImplementation()\n }\n}\n\n/**\n * A fixed length sequence of bytes\n */\nexport class StaticBytes<TLength extends number = 0> extends Arc4ArrayBase<Byte> {\n /** @hidden */\n [TypeProperty]?: `arc4.StaticBytes<${TLength}>`\n\n /**\n * Create a new StaticBytes instance\n * @param value THe bytes or utf8 interpreted string to initialize this type\n */\n constructor(value?: bytes | string) {\n super()\n }\n\n /**\n * Get the native bytes value\n */\n get native(): bytes {\n throw new NoImplementation()\n }\n\n /**\n * Returns a dynamic bytes object containing all bytes from _this_ and _other_\n * @param other Another array of bytes to concat with this one\n */\n concat(other: Arc4ArrayBase<Byte>): DynamicBytes {\n throw new NoImplementation()\n }\n}\n\n/**\n * Interpret the provided bytes as an ARC4 encoded type with no validation\n * @param bytes An arc4 encoded bytes value\n * @param prefix The prefix (if any), present in the bytes value. This prefix will be validated and removed\n */\nexport function interpretAsArc4<T extends ARC4Encoded>(bytes: BytesCompat, prefix: 'none' | 'log' = 'none'): T {\n throw new NoImplementation()\n}\n\n/**\n * Decode the provided bytes to a native Algorand TypeScript value\n * @param bytes An arc4 encoded bytes value\n * @param prefix The prefix (if any), present in the bytes value. This prefix will be validated and removed\n */\nexport function decodeArc4<T>(bytes: BytesCompat, prefix: 'none' | 'log' = 'none'): T {\n throw new NoImplementation()\n}\n\n/**\n * Encode the provided Algorand TypeScript value as ARC4 bytes\n * @param value Any native Algorand TypeScript value with a supported ARC4 encoding\n */\nexport function encodeArc4<T>(value: T): bytes {\n throw new NoImplementation()\n}\n\n/**\n * Return the total number of bytes required to store T as ARC4 bytes.\n *\n * T must represent a type with a fixed length encoding scheme.\n * @typeParam T Any native or arc4 type with a fixed encoding size.\n */\nexport function arc4EncodedLength<T>(): uint64 {\n throw new NoImplementation()\n}\n","import { BaseContract } from '../base-contract'\nimport { NoImplementation } from '../internal/errors'\nimport { DeliberateAny } from '../internal/typescript-helpers'\nimport { OnCompleteActionStr } from '../on-complete-action'\nimport { bytes } from '../primitives'\n\nexport * from './encoded-types'\n\n/**\n * The base type for all ARC4 contracts in Algorand TypeScript\n */\nexport class Contract extends BaseContract {\n /**\n * Default implementation of an ARC4 approval program, routes transactions to ABI or bare methods based on application\n * args and on completion actions\n */\n override approvalProgram(): boolean {\n throw new NoImplementation()\n }\n}\n\n/**\n * The possible options for a method being available on application create\n *\n * allow: This method CAN be called when the application is being created, but it is not required\n * disallow: This method CANNOT be called when the application is being created\n * require: This method CAN ONLY be called when the application is being created\n */\nexport type CreateOptions = 'allow' | 'disallow' | 'require'\n\n/**\n * Type alias for a default argument schema\n * @typeParam TContract The type of the contract containing the method this default argument is for\n */\nexport type DefaultArgument<TContract extends Contract> =\n | {\n /**\n * A compile time constant value to be used as a default\n */\n constant: string | boolean | number | bigint\n }\n | {\n /**\n * Retrieve the default value from a member of this contract. The member can be\n *\n * LocalState: The value is retrieved from the calling user's local state before invoking this method\n * GlobalState: The value is retrieved from the specified global state key before invoking this method\n * Method: Any readonly abimethod with no arguments can be used as a source\n */\n from: keyof TContract\n }\n/**\n * Configuration options for an abi method\n * @typeParam TContract the type of the contract this method is a part of\n */\nexport type AbiMethodConfig<TContract extends Contract> = {\n /**\n * Which on complete action(s) are allowed when invoking this method.\n * @default 'NoOp'\n */\n allowActions?: OnCompleteActionStr | OnCompleteActionStr[]\n /**\n * Whether this method should be callable when creating the application.\n * @default 'disallow'\n */\n onCreate?: CreateOptions\n /**\n * Does the method only perform read operations (no mutation of chain state)\n * @default false\n */\n readonly?: boolean\n /**\n * Override the name used to generate the abi method selector\n */\n name?: string\n\n /**\n * Specify default arguments that can be populated by clients calling this method.\n *\n * A map of parameter names to the default argument source\n */\n defaultArguments?: Record<string, DefaultArgument<TContract>>\n}\n\n/**\n * Declares the decorated method as an abimethod that is called when the first transaction arg matches the method selector\n * @param config The config for this abi method\n * @typeParam TContract the type of the contract this method is a part of\n */\nexport function abimethod<TContract extends Contract>(config?: AbiMethodConfig<TContract>) {\n return function <TArgs extends DeliberateAny[], TReturn>(\n target: (this: TContract, ...args: TArgs) => TReturn,\n ctx: ClassMethodDecoratorContext<TContract>,\n ): (this: TContract, ...args: TArgs) => TReturn {\n throw new NoImplementation()\n }\n}\n\n/**\n * Configuration options for a bare method\n */\nexport type BareMethodConfig = {\n /**\n * Which on complete action(s) are allowed when invoking this method.\n * @default 'NoOp'\n */\n allowActions?: OnCompleteActionStr | OnCompleteActionStr[]\n /**\n * Whether this method should be callable when creating the application.\n * @default 'disallow'\n */\n onCreate?: CreateOptions\n}\n\n/**\n * Declares the decorated method as a baremethod that can only be called with no transaction args\n * @param config The config for this bare method\n * @typeParam TContract the type of the contract this method is a part of\n */\nexport function baremethod<TContract extends Contract>(config?: BareMethodConfig) {\n return function <TArgs extends DeliberateAny[], TReturn>(\n target: (this: TContract, ...args: TArgs) => TReturn,\n ctx: ClassMethodDecoratorContext<TContract>,\n ): (this: TContract, ...args: TArgs) => TReturn {\n throw new NoImplementation()\n }\n}\n\n/**\n * A type alias for a contract instance method\n */\ntype ContractMethod = (this: Contract, ...args: DeliberateAny[]) => DeliberateAny\n\n/**\n * Returns the ARC4 method selector for a given ARC4 method signature. The method selector is the first\n * 4 bytes of the SHA512/256 hash of the method signature.\n * @param methodSignature An ARC4 method signature string ( Eg. `hello(string)string`. Must be a compile time constant), or a contract method reference. (Eg. `MyContract.prototype.myMethod`)\n * @returns The ARC4 method selector. Eg. `02BECE11`\n */\nexport function methodSelector(methodSignature: string | ContractMethod): bytes {\n throw new NoImplementation()\n}\n"],"names":[],"mappings":"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"}