@algorandfoundation/algorand-typescript-testing 1.0.0-beta.27 → 1.0.0-beta.28

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 (37) hide show
  1. package/{abi-metadata-CrWTVWxh.js → abi-metadata-MnpFwb6h.js} +2 -2
  2. package/abi-metadata-MnpFwb6h.js.map +1 -0
  3. package/abi-metadata.d.ts +2 -1
  4. package/{arc4-DEFhYT4N.js → arc4-C4P7NKRh.js} +3 -3
  5. package/{arc4-DEFhYT4N.js.map → arc4-C4P7NKRh.js.map} +1 -1
  6. package/{asset-params-Bn6tFvSU.js → asset-params-BqpkR1PO.js} +3 -3
  7. package/asset-params-BqpkR1PO.js.map +1 -0
  8. package/{crypto-CTvchC9k.js → crypto-B-GumABC.js} +43 -8
  9. package/crypto-B-GumABC.js.map +1 -0
  10. package/impl/encoded-types.d.ts +3 -1
  11. package/impl/state.d.ts +6 -12
  12. package/impl/transactions.d.ts +2 -2
  13. package/index.mjs +6 -6
  14. package/index.mjs.map +1 -1
  15. package/{inner-transactions-C2LSf8Qr.js → inner-transactions-cy1WcWRq.js} +29 -47
  16. package/inner-transactions-cy1WcWRq.js.map +1 -0
  17. package/internal/arc4.mjs +3 -3
  18. package/internal/index.mjs +10 -10
  19. package/internal/op.mjs +3 -3
  20. package/{op-ClR08uKc.js → op-H2hUf9EO.js} +9 -9
  21. package/op-H2hUf9EO.js.map +1 -0
  22. package/package.json +3 -6
  23. package/{program-factory-D1EkyGfS.js → program-factory-CrdkPpT0.js} +7 -3
  24. package/program-factory-CrdkPpT0.js.map +1 -0
  25. package/{runtime-helpers-DdyG6XmI.js → runtime-helpers-CwYM3xhU.js} +3 -3
  26. package/runtime-helpers-CwYM3xhU.js.map +1 -0
  27. package/runtime-helpers.d.ts +1 -1
  28. package/runtime-helpers.mjs +3 -3
  29. package/test-transformer/jest-transformer.mjs +1 -1
  30. package/test-transformer/vitest-transformer.mjs +1 -1
  31. package/abi-metadata-CrWTVWxh.js.map +0 -1
  32. package/asset-params-Bn6tFvSU.js.map +0 -1
  33. package/crypto-CTvchC9k.js.map +0 -1
  34. package/inner-transactions-C2LSf8Qr.js.map +0 -1
  35. package/op-ClR08uKc.js.map +0 -1
  36. package/program-factory-D1EkyGfS.js.map +0 -1
  37. package/runtime-helpers-DdyG6XmI.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import js_sha512 from 'js-sha512';
2
- import { d as BaseContract, al as getArc4TypeName$1 } from './crypto-CTvchC9k.js';
2
+ import { d as BaseContract, al as getArc4TypeName$1 } from './crypto-B-GumABC.js';
3
3
 
4
4
  class Contract extends BaseContract {
5
5
  static isArc4 = true;
@@ -114,4 +114,4 @@ const getArc4TypeName = (t) => {
114
114
  };
115
115
 
116
116
  export { Contract as C, getContractMethodAbiMetadata as a, getContractAbiMetadata as b, abimethod as c, baremethod as d, attachAbiMetadata as e, getArc4Selector as g };
117
- //# sourceMappingURL=abi-metadata-CrWTVWxh.js.map
117
+ //# sourceMappingURL=abi-metadata-MnpFwb6h.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi-metadata-MnpFwb6h.js","sources":["../src/impl/contract.ts","../src/abi-metadata.ts"],"sourcesContent":["import type { arc4, OnCompleteActionStr } from '@algorandfoundation/algorand-typescript'\nimport type { DeliberateAny } from '../typescript-helpers'\nimport { BaseContract } from './base-contract'\n\nexport class Contract extends BaseContract {\n static isArc4 = true\n\n override approvalProgram(): boolean {\n return true\n }\n}\n\nexport const Arc4MethodConfigSymbol = Symbol('Arc4MethodConfig')\nexport function abimethod<TContract extends Contract>(config?: arc4.AbiMethodConfig<TContract>) {\n return function <TArgs extends DeliberateAny[], TReturn>(\n target: { [Arc4MethodConfigSymbol]: arc4.AbiMethodConfig<TContract> } & ((this: TContract, ...args: TArgs) => TReturn),\n ): (this: TContract, ...args: TArgs) => TReturn {\n target[Arc4MethodConfigSymbol] = {\n ...config,\n onCreate: config?.onCreate ?? 'disallow',\n allowActions: ([] as OnCompleteActionStr[]).concat(config?.allowActions ?? 'NoOp'),\n }\n return target\n }\n}\n\nexport function baremethod<TContract extends Contract>(config?: arc4.BareMethodConfig) {\n return function <TArgs extends DeliberateAny[], TReturn>(\n target: { [Arc4MethodConfigSymbol]: arc4.AbiMethodConfig<TContract> } & ((this: TContract, ...args: TArgs) => TReturn),\n ): (this: TContract, ...args: TArgs) => TReturn {\n target[Arc4MethodConfigSymbol] = {\n ...config,\n onCreate: config?.onCreate ?? 'disallow',\n allowActions: ([] as OnCompleteActionStr[]).concat(config?.allowActions ?? 'NoOp'),\n }\n return target\n }\n}\n","import type { OnCompleteActionStr } from '@algorandfoundation/algorand-typescript'\nimport type { CreateOptions } from '@algorandfoundation/algorand-typescript/arc4'\nimport js_sha512 from 'js-sha512'\nimport type { TypeInfo } from './encoders'\nimport { Arc4MethodConfigSymbol, Contract } from './impl/contract'\nimport { getArc4TypeName as getArc4TypeNameForARC4Encoded } from './impl/encoded-types'\nimport type { DeliberateAny } from './typescript-helpers'\n\nexport interface AbiMetadata {\n methodName: string\n name?: string\n methodSignature: string | undefined\n argTypes: string[]\n returnType: string\n onCreate?: CreateOptions\n allowActions?: OnCompleteActionStr[]\n}\n\nconst metadataStore: WeakMap<{ new (): Contract }, Record<string, AbiMetadata>> = new WeakMap()\nexport const attachAbiMetadata = (contract: { new (): Contract }, methodName: string, metadata: AbiMetadata): void => {\n if (!metadataStore.has(contract)) {\n metadataStore.set(contract, {})\n }\n const metadatas: Record<string, AbiMetadata> = metadataStore.get(contract) as Record<string, AbiMetadata>\n metadatas[methodName] = metadata\n}\n\nexport const getContractAbiMetadata = <T extends Contract>(contract: T | { new (): T }): Record<string, AbiMetadata> => {\n // Initialize result object to store merged metadata\n const result: Record<string, AbiMetadata> = {}\n\n // Get the contract's class\n let currentClass = contract instanceof Contract ? (contract.constructor as { new (): T }) : contract\n\n // Walk up the prototype chain\n while (currentClass && currentClass.prototype) {\n // Find metadata for current class\n const currentMetadata = metadataStore.get(currentClass)\n\n if (currentMetadata) {\n // Merge metadata with existing result (don't override existing entries)\n const classMetadata = currentMetadata\n for (const [methodName, metadata] of Object.entries(classMetadata)) {\n if (!(methodName in result)) {\n result[methodName] = {\n ...metadata,\n ...(currentClass.prototype as DeliberateAny)?.[methodName]?.[Arc4MethodConfigSymbol],\n }\n }\n }\n }\n\n // Move up the prototype chain\n currentClass = Object.getPrototypeOf(currentClass)\n }\n\n return result\n}\n\nexport const getContractMethodAbiMetadata = <T extends Contract>(contract: T, methodName: string): AbiMetadata => {\n const metadatas = getContractAbiMetadata(contract)\n return metadatas[methodName]\n}\n\nexport const getArc4Signature = (metadata: AbiMetadata): string => {\n if (metadata.methodSignature === undefined) {\n const argTypes = metadata.argTypes.map((t) => JSON.parse(t) as TypeInfo).map(getArc4TypeName)\n const returnType = getArc4TypeName(JSON.parse(metadata.returnType) as TypeInfo)\n metadata.methodSignature = `${metadata.name ?? metadata.methodName}(${argTypes.join(',')})${returnType}`\n }\n return metadata.methodSignature\n}\n\nexport const getArc4Selector = (metadata: AbiMetadata): Uint8Array => {\n const hash = js_sha512.sha512_256.array(getArc4Signature(metadata))\n return new Uint8Array(hash.slice(0, 4))\n}\n\nconst getArc4TypeName = (t: TypeInfo): string => {\n const map: Record<string, string | ((t: TypeInfo) => string)> = {\n void: 'void',\n account: 'account',\n application: 'application',\n asset: 'asset',\n boolean: 'bool',\n biguint: 'uint512',\n bytes: 'byte[]',\n string: 'string',\n uint64: 'uint64',\n OnCompleteAction: 'uint64',\n TransactionType: 'uint64',\n Transaction: 'txn',\n PaymentTxn: 'pay',\n KeyRegistrationTxn: 'keyreg',\n AssetConfigTxn: 'acfg',\n AssetTransferTxn: 'axfer',\n AssetFreezeTxn: 'afrz',\n ApplicationTxn: 'appl',\n 'Tuple(<.*>)?': (t) =>\n `(${Object.values(t.genericArgs as Record<string, TypeInfo>)\n .map(getArc4TypeName)\n .join(',')})`,\n }\n const entry = Object.entries(map).find(([k, _]) => new RegExp(`^${k}$`, 'i').test(t.name))?.[1]\n if (entry === undefined) {\n return getArc4TypeNameForARC4Encoded(t) ?? t.name\n }\n if (entry instanceof Function) {\n return entry(t)\n }\n return entry\n}\n"],"names":["getArc4TypeNameForARC4Encoded"],"mappings":"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"}
package/abi-metadata.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { CreateOptions, OnCompleteActionStr } from '@algorandfoundation/algorand-typescript/arc4';
1
+ import type { OnCompleteActionStr } from '@algorandfoundation/algorand-typescript';
2
+ import type { CreateOptions } from '@algorandfoundation/algorand-typescript/arc4';
2
3
  import { Contract } from './impl/contract';
3
4
  export interface AbiMetadata {
4
5
  methodName: string;
@@ -1,7 +1,7 @@
1
1
  import * as arc4$1 from '@algorandfoundation/algorand-typescript/arc4';
2
- import { a as getContractMethodAbiMetadata, g as getArc4Selector, C as Contract, c as abimethod, d as baremethod } from './abi-metadata-CrWTVWxh.js';
2
+ import { a as getContractMethodAbiMetadata, g as getArc4Selector, C as Contract, c as abimethod, d as baremethod } from './abi-metadata-MnpFwb6h.js';
3
3
  import { encodingUtil } from '@algorandfoundation/puya-ts';
4
- import { am as sha512_256, i as Bytes } from './crypto-CTvchC9k.js';
4
+ import { am as sha512_256, i as Bytes } from './crypto-B-GumABC.js';
5
5
 
6
6
  function _mergeNamespaces(n, m) {
7
7
  m.forEach(function (e) {
@@ -37,4 +37,4 @@ var arc4 = /*#__PURE__*/_mergeNamespaces({
37
37
  }, [arc4$1]);
38
38
 
39
39
  export { arc4 as a, methodSelector as m };
40
- //# sourceMappingURL=arc4-DEFhYT4N.js.map
40
+ //# sourceMappingURL=arc4-C4P7NKRh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arc4-DEFhYT4N.js","sources":["../src/impl/method-selector.ts"],"sourcesContent":["import type { arc4, bytes } from '@algorandfoundation/algorand-typescript'\nimport { encodingUtil } from '@algorandfoundation/puya-ts'\nimport { getArc4Selector, getContractMethodAbiMetadata } from '../abi-metadata'\nimport type { Contract } from './contract'\nimport { sha512_256 } from './crypto'\nimport { Bytes } from './primitives'\n\nexport const methodSelector = <TContract extends Contract>(\n methodSignature: Parameters<typeof arc4.methodSelector>[0],\n contract?: TContract,\n): bytes => {\n if (typeof methodSignature === 'string') {\n return sha512_256(Bytes(encodingUtil.utf8ToUint8Array(methodSignature))).slice(0, 4)\n } else {\n const abiMetadata = getContractMethodAbiMetadata(contract!, methodSignature.name)\n return Bytes(getArc4Selector(abiMetadata))\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;MAOa,cAAc,GAAG,CAC5B,eAA0D,EAC1D,QAAoB,KACX;AACT,IAAA,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;AACvC,QAAA,OAAO,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;;SAC/E;QACL,MAAM,WAAW,GAAG,4BAA4B,CAAC,QAAS,EAAE,eAAe,CAAC,IAAI,CAAC;AACjF,QAAA,OAAO,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;;AAE9C;;;;;;;;;;;;"}
1
+ {"version":3,"file":"arc4-C4P7NKRh.js","sources":["../src/impl/method-selector.ts"],"sourcesContent":["import type { arc4, bytes } from '@algorandfoundation/algorand-typescript'\nimport { encodingUtil } from '@algorandfoundation/puya-ts'\nimport { getArc4Selector, getContractMethodAbiMetadata } from '../abi-metadata'\nimport type { Contract } from './contract'\nimport { sha512_256 } from './crypto'\nimport { Bytes } from './primitives'\n\nexport const methodSelector = <TContract extends Contract>(\n methodSignature: Parameters<typeof arc4.methodSelector>[0],\n contract?: TContract,\n): bytes => {\n if (typeof methodSignature === 'string') {\n return sha512_256(Bytes(encodingUtil.utf8ToUint8Array(methodSignature))).slice(0, 4)\n } else {\n const abiMetadata = getContractMethodAbiMetadata(contract!, methodSignature.name)\n return Bytes(getArc4Selector(abiMetadata))\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;MAOa,cAAc,GAAG,CAC5B,eAA0D,EAC1D,QAAoB,KACX;AACT,IAAA,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;AACvC,QAAA,OAAO,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;;SAC/E;QACL,MAAM,WAAW,GAAG,4BAA4B,CAAC,QAAS,EAAE,eAAe,CAAC,IAAI,CAAC;AACjF,QAAA,OAAO,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;;AAE9C;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { ARC4Encoded } from '@algorandfoundation/algorand-typescript/arc4';
2
2
  import { encodingUtil } from '@algorandfoundation/puya-ts';
3
- import { t as asMaybeUint64Cls, D as asMaybeBytesCls, a9 as asMaybeBigUintCls, a6 as BytesBackedCls, a7 as Uint64BackedCls, u as asUint64Cls, aq as encodeArc4Impl, I as InternalError, ak as nameOfType, aB as getArc4Encoder, A as AccountCls, f as ApplicationCls, g as AssetCls, aA as arc4Encoders, E as asUint8Array, N as BigUint, p as asBytes, J as Uint64, l as lazyContext, Q as getRandomBytes, r as asUint64, P as Account, aN as getObjectReference, i as Bytes, aK as sha256, aO as getApplicationAddress, aP as MIN_TXN_FEE, aQ as DEFAULT_ACCOUNT_MIN_BALANCE, aR as DEFAULT_MAX_TXN_LIFE, aS as ZERO_ADDRESS, aT as DEFAULT_ASSET_CREATE_MIN_BALANCE, aU as DEFAULT_ASSET_OPT_IN_MIN_BALANCE, aV as DEFAULT_GLOBAL_GENESIS_HASH, U as Uint64Cls, a as BytesCls, a3 as AvmError, B as BigUintCls, an as checkBigUint, aW as asBigUint, $ as BITS_IN_BYTE, O as MAX_BYTES_SIZE, C as CodeError, aX as isUint64, ae as asBytesCls, H as testInvariant, V as MAX_UINT8, aY as binaryStringToBytes, aZ as UINT64_SIZE, a4 as NotImplementedError, M as MAX_UINT64 } from './crypto-CTvchC9k.js';
3
+ import { t as asMaybeUint64Cls, D as asMaybeBytesCls, a9 as asMaybeBigUintCls, a7 as BytesBackedCls, a8 as Uint64BackedCls, u as asUint64Cls, ar as encodeArc4Impl, I as InternalError, ak as nameOfType, aC as getArc4Encoder, aB as arc4Encoders, g as AssetCls, f as ApplicationCls, A as AccountCls, J as Uint64, E as asUint8Array, p as asBytes, N as BigUint, l as lazyContext, Q as getRandomBytes, r as asUint64, P as Account, aO as getApplicationAddress, aP as getObjectReference, i as Bytes, aL as sha256, aQ as MIN_TXN_FEE, aR as DEFAULT_ACCOUNT_MIN_BALANCE, aS as DEFAULT_MAX_TXN_LIFE, aT as ZERO_ADDRESS, aU as DEFAULT_ASSET_CREATE_MIN_BALANCE, aV as DEFAULT_ASSET_OPT_IN_MIN_BALANCE, aW as DEFAULT_GLOBAL_GENESIS_HASH, U as Uint64Cls, a as BytesCls, a3 as AvmError, B as BigUintCls, an as checkBigUint, aX as asBigUint, $ as BITS_IN_BYTE, O as MAX_BYTES_SIZE, C as CodeError, aY as isUint64, a4 as NotImplementedError, ae as asBytesCls, H as testInvariant, V as MAX_UINT8, aZ as binaryStringToBytes, a_ as UINT64_SIZE, M as MAX_UINT64 } from './crypto-B-GumABC.js';
4
4
  import { Base64 } from '@algorandfoundation/algorand-typescript';
5
5
 
6
6
  const booleanFromBytes = (val) => {
@@ -841,5 +841,5 @@ const AssetParams = {
841
841
  },
842
842
  };
843
843
 
844
- export { AcctParams as A, BlockData as B, extractUint64 as C, getBit as D, getByte as E, itob as F, GlobalData as G, len as H, minBalance as I, JsonRef as J, mulw as K, replace as L, select as M, setBit as N, setByte as O, shl as P, shr as Q, sqrt as R, substring as S, VoterData as V, Global as a, btoi as b, getAsset as c, getApp as d, getAccount as e, AppParams as f, getEncoder as g, AssetParams as h, Block as i, VoterParams as j, addw as k, appOptedIn as l, balance as m, base64Decode as n, bitLength as o, bsqrt as p, bzero as q, concat as r, divmodw as s, toBytes as t, divw as u, exp as v, expw as w, extract as x, extractUint16 as y, extractUint32 as z };
845
- //# sourceMappingURL=asset-params-Bn6tFvSU.js.map
844
+ export { AcctParams as A, BlockData as B, extractUint64 as C, getBit as D, getByte as E, itob as F, GlobalData as G, len as H, minBalance as I, JsonRef as J, mulw as K, replace as L, select as M, setBit as N, setByte as O, shl as P, shr as Q, sqrt as R, substring as S, VoterData as V, Global as a, btoi as b, getApp as c, getAsset as d, getAccount as e, AppParams as f, getEncoder as g, AssetParams as h, Block as i, VoterParams as j, addw as k, appOptedIn as l, balance as m, base64Decode as n, bitLength as o, bsqrt as p, bzero as q, concat as r, divmodw as s, toBytes as t, divw as u, exp as v, expw as w, extract as x, extractUint16 as y, extractUint32 as z };
845
+ //# sourceMappingURL=asset-params-BqpkR1PO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-params-BqpkR1PO.js","sources":["../src/encoders.ts","../src/impl/block.ts","../src/impl/global.ts","../src/impl/app-params.ts","../src/impl/acct-params.ts","../src/impl/voter-params.ts","../src/impl/pure.ts","../src/impl/asset-params.ts"],"sourcesContent":["import type { biguint, bytes, OnCompleteAction, TransactionType, uint64 } from '@algorandfoundation/algorand-typescript'\nimport { ARC4Encoded } from '@algorandfoundation/algorand-typescript/arc4'\nimport { encodingUtil } from '@algorandfoundation/puya-ts'\nimport { InternalError } from './errors'\nimport { BytesBackedCls, Uint64BackedCls } from './impl/base'\nimport { arc4Encoders, encodeArc4Impl, getArc4Encoder } from './impl/encoded-types'\nimport { BigUint, Uint64, type StubBytesCompat } from './impl/primitives'\nimport { AccountCls, ApplicationCls, AssetCls } from './impl/reference'\nimport type { DeliberateAny } from './typescript-helpers'\nimport { asBytes, asMaybeBigUintCls, asMaybeBytesCls, asMaybeUint64Cls, asUint64Cls, asUint8Array, nameOfType } from './util'\n\nexport type TypeInfo = {\n name: string\n genericArgs?: TypeInfo[] | Record<string, TypeInfo>\n}\n\nexport type fromBytes<T> = (val: Uint8Array | StubBytesCompat, typeInfo: TypeInfo, prefix?: 'none' | 'log') => T\n\nconst booleanFromBytes: fromBytes<boolean> = (val) => {\n return encodingUtil.uint8ArrayToBigInt(asUint8Array(val)) > 0n\n}\n\nconst bigUintFromBytes: fromBytes<biguint> = (val) => {\n return BigUint(encodingUtil.uint8ArrayToBigInt(asUint8Array(val)))\n}\n\nconst bytesFromBytes: fromBytes<bytes> = (val) => {\n return asBytes(val)\n}\n\nconst stringFromBytes: fromBytes<string> = (val) => {\n return asBytes(val).toString()\n}\n\nconst uint64FromBytes: fromBytes<uint64> = (val) => {\n return Uint64(encodingUtil.uint8ArrayToBigInt(asUint8Array(val)))\n}\n\nconst onCompletionFromBytes: fromBytes<OnCompleteAction> = (val) => {\n return Uint64(encodingUtil.uint8ArrayToBigInt(asUint8Array(val))) as OnCompleteAction\n}\n\nconst transactionTypeFromBytes: fromBytes<TransactionType> = (val) => {\n return Uint64(encodingUtil.uint8ArrayToBigInt(asUint8Array(val))) as TransactionType\n}\n\nexport const encoders: Record<string, fromBytes<DeliberateAny>> = {\n account: AccountCls.fromBytes,\n application: ApplicationCls.fromBytes,\n asset: AssetCls.fromBytes,\n boolean: booleanFromBytes,\n biguint: bigUintFromBytes,\n bytes: bytesFromBytes,\n string: stringFromBytes,\n uint64: uint64FromBytes,\n OnCompleteAction: onCompletionFromBytes,\n TransactionType: transactionTypeFromBytes,\n ...arc4Encoders,\n}\n\nexport const getEncoder = <T>(typeInfo: TypeInfo): fromBytes<T> => {\n return getArc4Encoder<T>(typeInfo, encoders)\n}\n\nexport const toBytes = (val: unknown): bytes => {\n const uint64Val = asMaybeUint64Cls(val)\n if (uint64Val !== undefined) {\n return uint64Val.toBytes().asAlgoTs()\n }\n const bytesVal = asMaybeBytesCls(val)\n if (bytesVal !== undefined) {\n return bytesVal.asAlgoTs()\n }\n const bigUintVal = asMaybeBigUintCls(val)\n if (bigUintVal !== undefined) {\n return bigUintVal.toBytes().asAlgoTs()\n }\n if (val instanceof BytesBackedCls) {\n return val.bytes\n }\n if (val instanceof Uint64BackedCls) {\n return asUint64Cls(val.uint64).toBytes().asAlgoTs()\n }\n if (val instanceof ARC4Encoded) {\n return val.bytes\n }\n if (Array.isArray(val) || typeof val === 'object') {\n return encodeArc4Impl('', val)\n }\n throw new InternalError(`Invalid type for bytes: ${nameOfType(val)}`)\n}\n","import type { Account as AccountType, bytes, op, uint64 } from '@algorandfoundation/algorand-typescript'\nimport { lazyContext } from '../context-helpers/internal-context'\nimport { asUint64, getRandomBytes } from '../util'\nimport { Uint64, type StubUint64Compat } from './primitives'\nimport { Account } from './reference'\n\nexport class BlockData {\n seed: bytes\n timestamp: uint64\n proposer: AccountType\n feesCollected: uint64\n bonus: uint64\n branch: bytes\n feeSink: AccountType\n protocol: bytes\n txnCounter: uint64\n proposerPayout: uint64\n\n constructor() {\n this.seed = getRandomBytes(32).asAlgoTs()\n this.timestamp = asUint64(Date.now())\n this.proposer = Account()\n this.feesCollected = Uint64(0)\n this.bonus = Uint64(0)\n this.branch = getRandomBytes(32).asAlgoTs()\n this.feeSink = Account()\n this.protocol = getRandomBytes(32).asAlgoTs()\n this.txnCounter = Uint64(0)\n this.proposerPayout = Uint64(0)\n }\n}\n\nexport const Block: typeof op.Block = {\n blkSeed: function (a: StubUint64Compat): bytes {\n return lazyContext.ledger.getBlockData(a).seed\n },\n blkTimestamp: function (a: StubUint64Compat): uint64 {\n return lazyContext.ledger.getBlockData(a).timestamp\n },\n blkProposer: function (a: uint64): AccountType {\n return lazyContext.ledger.getBlockData(a).proposer\n },\n blkFeesCollected: function (a: uint64): uint64 {\n return lazyContext.ledger.getBlockData(a).feesCollected\n },\n blkBonus: function (a: uint64): uint64 {\n return lazyContext.ledger.getBlockData(a).bonus\n },\n blkBranch: function (a: uint64): bytes {\n return lazyContext.ledger.getBlockData(a).branch\n },\n blkFeeSink: function (a: uint64): AccountType {\n return lazyContext.ledger.getBlockData(a).feeSink\n },\n blkProtocol: function (a: uint64): bytes {\n return lazyContext.ledger.getBlockData(a).protocol\n },\n blkTxnCounter: function (a: uint64): uint64 {\n return lazyContext.ledger.getBlockData(a).txnCounter\n },\n blkProposerPayout: function (a: uint64): uint64 {\n return lazyContext.ledger.getBlockData(a).proposerPayout\n },\n}\n","import type { Account as AccountType, Application as ApplicationType, bytes, op, uint64 } from '@algorandfoundation/algorand-typescript'\nimport { encodingUtil } from '@algorandfoundation/puya-ts'\nimport {\n DEFAULT_ACCOUNT_MIN_BALANCE,\n DEFAULT_ASSET_CREATE_MIN_BALANCE,\n DEFAULT_ASSET_OPT_IN_MIN_BALANCE,\n DEFAULT_GLOBAL_GENESIS_HASH,\n DEFAULT_MAX_TXN_LIFE,\n MIN_TXN_FEE,\n ZERO_ADDRESS,\n} from '../constants'\nimport { lazyContext } from '../context-helpers/internal-context'\nimport { InternalError } from '../errors'\nimport { getObjectReference } from '../util'\nimport { sha256 } from './crypto'\nimport { Bytes, Uint64 } from './primitives'\nimport { Account, getApplicationAddress } from './reference'\n\nexport class GlobalData {\n minTxnFee: uint64\n minBalance: uint64\n maxTxnLife: uint64\n zeroAddress: AccountType\n logicSigVersion?: uint64\n round?: uint64\n latestTimestamp?: uint64\n groupId?: bytes\n callerApplicationId: uint64\n assetCreateMinBalance: uint64\n assetOptInMinBalance: uint64\n genesisHash: bytes\n opcodeBudget?: uint64\n payoutsEnabled: boolean\n payoutsGoOnlineFee: uint64\n payoutsPercent: uint64\n payoutsMinBalance: uint64\n\n constructor() {\n this.minTxnFee = Uint64(MIN_TXN_FEE)\n this.minBalance = Uint64(DEFAULT_ACCOUNT_MIN_BALANCE)\n this.maxTxnLife = Uint64(DEFAULT_MAX_TXN_LIFE)\n this.zeroAddress = Account(ZERO_ADDRESS)\n this.callerApplicationId = Uint64(0)\n this.assetCreateMinBalance = Uint64(DEFAULT_ASSET_CREATE_MIN_BALANCE)\n this.assetOptInMinBalance = Uint64(DEFAULT_ASSET_OPT_IN_MIN_BALANCE)\n this.genesisHash = DEFAULT_GLOBAL_GENESIS_HASH\n this.payoutsEnabled = false\n this.payoutsGoOnlineFee = Uint64(0)\n this.payoutsPercent = Uint64(0)\n this.payoutsMinBalance = Uint64(0)\n }\n}\nconst getGlobalData = (): GlobalData => {\n return lazyContext.ledger.globalData\n}\n\nconst getMissingValueErrorMessage = (name: keyof GlobalData) =>\n `'Global' object has no value set for attribute named '${name}'. Use \\`context.ledger.patchGlobalData({${name}: your_value})\\` to set the value in your test setup.\"`\n\nexport const Global: typeof op.Global = {\n /**\n * microalgos\n */\n get minTxnFee(): uint64 {\n return getGlobalData().minTxnFee\n },\n\n /**\n * microalgos\n */\n get minBalance(): uint64 {\n return getGlobalData().minBalance\n },\n\n /**\n * rounds\n */\n get maxTxnLife(): uint64 {\n return getGlobalData().maxTxnLife\n },\n\n /**\n * 32 byte address of all zero bytes\n */\n get zeroAddress(): AccountType {\n return getGlobalData().zeroAddress\n },\n\n /**\n * Number of transactions in this atomic transaction group. At least 1\n */\n get groupSize(): uint64 {\n const currentTransactionGroup = lazyContext.activeGroup.transactions\n return Uint64(currentTransactionGroup.length)\n },\n\n /**\n * Maximum supported version\n */\n get logicSigVersion(): uint64 {\n const data = getGlobalData()\n if (data.logicSigVersion !== undefined) return data.logicSigVersion\n throw new InternalError(getMissingValueErrorMessage('logicSigVersion'))\n },\n\n /**\n * Current round number. ApplicationType mode only.\n */\n get round(): uint64 {\n const data = getGlobalData()\n if (data.round !== undefined) return data.round\n return Uint64(lazyContext.txn.groups.length + 1)\n },\n\n /**\n * Last confirmed block UNIX timestamp. Fails if negative. ApplicationType mode only.\n */\n get latestTimestamp(): uint64 {\n const data = getGlobalData()\n if (data.latestTimestamp !== undefined) return data.latestTimestamp\n return Uint64(lazyContext.activeGroup.latestTimestamp)\n },\n\n /**\n * ID of current application executing. ApplicationType mode only.\n */\n get currentApplicationId(): ApplicationType {\n return lazyContext.activeApplication\n },\n\n /**\n * Address of the creator of the current application. ApplicationType mode only.\n */\n get creatorAddress(): AccountType {\n const app = lazyContext.activeApplication\n return app.creator\n },\n\n /**\n * Address that the current application controls. ApplicationType mode only.\n */\n get currentApplicationAddress(): AccountType {\n return this.currentApplicationId.address\n },\n\n /**\n * ID of the transaction group. 32 zero bytes if the transaction is not part of a group.\n */\n get groupId(): bytes {\n const data = getGlobalData()\n if (data.groupId !== undefined) return data.groupId\n const reference = getObjectReference(lazyContext.activeGroup)\n const referenceBytes = Bytes(encodingUtil.bigIntToUint8Array(reference))\n return sha256(referenceBytes)\n },\n\n /**\n * The remaining cost that can be spent by opcodes in this program.\n */\n get opcodeBudget(): uint64 {\n const data = getGlobalData()\n if (data.opcodeBudget !== undefined) return data.opcodeBudget\n throw new InternalError(getMissingValueErrorMessage('opcodeBudget'))\n },\n\n /**\n * The application ID of the application that called this application. 0 if this application is at the top-level. ApplicationType mode only.\n */\n get callerApplicationId(): uint64 {\n return getGlobalData().callerApplicationId\n },\n\n /**\n * The application address of the application that called this application. ZeroAddress if this application is at the top-level. ApplicationType mode only.\n */\n get callerApplicationAddress(): AccountType {\n return getApplicationAddress(this.callerApplicationId)\n },\n\n /**\n * The additional minimum balance required to create (and opt-in to) an asset.\n */\n get assetCreateMinBalance(): uint64 {\n return getGlobalData().assetCreateMinBalance\n },\n\n /**\n * The additional minimum balance required to opt-in to an asset.\n */\n get assetOptInMinBalance(): uint64 {\n return getGlobalData().assetOptInMinBalance\n },\n\n /**\n * The Genesis Hash for the network.\n */\n get genesisHash(): bytes {\n return getGlobalData().genesisHash\n },\n\n /**\n * Whether block proposal payouts are enabled.\n * Min AVM version: 11\n */\n get payoutsEnabled(): boolean {\n return getGlobalData().payoutsEnabled\n },\n\n /**\n * The fee required in a keyreg transaction to make an account incentive eligible.\n * Min AVM version: 11\n */\n get payoutsGoOnlineFee(): uint64 {\n return getGlobalData().payoutsGoOnlineFee\n },\n\n /**\n * The percentage of transaction fees in a block that can be paid to the block proposer.\n * Min AVM version: 11\n */\n get payoutsPercent(): uint64 {\n return getGlobalData().payoutsPercent\n },\n\n /**\n * The minimum algo balance an account must have in the agreement round to receive block payouts in the proposal round.\n * Min AVM version: 11\n */\n get payoutsMinBalance(): uint64 {\n return getGlobalData().payoutsMinBalance\n },\n\n /**\n * The maximum algo balance an account can have in the agreement round to receive block payouts in the proposal round.\n * Min AVM version: 11\n */\n get payoutsMaxBalance(): uint64 {\n return getGlobalData().payoutsMinBalance\n },\n}\n","import type {\n Account as AccountType,\n Application as ApplicationType,\n bytes,\n gtxn,\n op,\n uint64,\n} from '@algorandfoundation/algorand-typescript'\nimport { lazyContext } from '../context-helpers/internal-context'\nimport { asMaybeUint64Cls, asUint64 } from '../util'\nimport { Bytes, Uint64, type StubUint64Compat } from './primitives'\nimport { Account } from './reference'\n\nconst resolveAppIndex = (appIdOrIndex: StubUint64Compat): uint64 => {\n const input = asUint64(appIdOrIndex)\n if (input >= 1001) {\n return input\n }\n const txn = lazyContext.activeGroup.activeTransaction as gtxn.ApplicationTxn\n return txn.apps(input).id\n}\n\nexport const getApp = (app: ApplicationType | StubUint64Compat): ApplicationType | undefined => {\n try {\n const appId = asMaybeUint64Cls(app)\n if (appId !== undefined) {\n return lazyContext.ledger.getApplication(resolveAppIndex(appId))\n }\n return app as ApplicationType\n } catch {\n return undefined\n }\n}\n\nexport const AppParams: typeof op.AppParams = {\n appApprovalProgram(a: ApplicationType | StubUint64Compat): readonly [bytes, boolean] {\n const app = getApp(a)\n return app === undefined ? [Bytes(), false] : [app.approvalProgram, true]\n },\n appClearStateProgram(a: ApplicationType | StubUint64Compat): readonly [bytes, boolean] {\n const app = getApp(a)\n return app === undefined ? [Bytes(), false] : [app.clearStateProgram, true]\n },\n appGlobalNumUint(a: ApplicationType | StubUint64Compat): readonly [uint64, boolean] {\n const app = getApp(a)\n return app === undefined ? [Uint64(0), false] : [app.globalNumUint, true]\n },\n appGlobalNumByteSlice(a: ApplicationType | StubUint64Compat): readonly [uint64, boolean] {\n const app = getApp(a)\n return app === undefined ? [Uint64(0), false] : [app.globalNumBytes, true]\n },\n appLocalNumUint(a: ApplicationType | StubUint64Compat): readonly [uint64, boolean] {\n const app = getApp(a)\n return app === undefined ? [Uint64(0), false] : [app.localNumUint, true]\n },\n appLocalNumByteSlice(a: ApplicationType | StubUint64Compat): readonly [uint64, boolean] {\n const app = getApp(a)\n return app === undefined ? [Uint64(0), false] : [app.localNumBytes, true]\n },\n appExtraProgramPages(a: ApplicationType | StubUint64Compat): readonly [uint64, boolean] {\n const app = getApp(a)\n return app === undefined ? [Uint64(0), false] : [app.extraProgramPages, true]\n },\n appCreator(a: ApplicationType | StubUint64Compat): readonly [AccountType, boolean] {\n const app = getApp(a)\n return app === undefined ? [Account(), false] : [app.creator, true]\n },\n appAddress(a: ApplicationType | StubUint64Compat): readonly [AccountType, boolean] {\n const app = getApp(a)\n return app === undefined ? [Account(), false] : [app.address, true]\n },\n}\n","import type { Account, Application, gtxn, op, uint64 } from '@algorandfoundation/algorand-typescript'\nimport { lazyContext } from '../context-helpers/internal-context'\nimport { asMaybeUint64Cls } from '../util'\nimport { getApp } from './app-params'\nimport { Global } from './global'\nimport type { StubUint64Compat } from './primitives'\n\nexport const getAccount = (acct: Account | StubUint64Compat): Account => {\n const acctId = asMaybeUint64Cls(acct)\n if (acctId !== undefined) {\n const activeTxn = lazyContext.activeGroup.activeTransaction\n return (activeTxn as gtxn.ApplicationTxn).accounts(acctId.asAlgoTs())\n }\n return acct as Account\n}\n\nexport const balance = (a: Account | StubUint64Compat): uint64 => {\n const acct = getAccount(a)\n return acct.balance\n}\n\nexport const minBalance = (a: Account | StubUint64Compat): uint64 => {\n const acct = getAccount(a)\n return acct.minBalance\n}\n\nexport const appOptedIn = (a: Account | StubUint64Compat, b: Application | StubUint64Compat): boolean => {\n const account = getAccount(a)\n const app = getApp(b)\n\n if (account === undefined || app === undefined) {\n return false\n }\n return account.isOptedIn(app)\n}\n\nexport const AcctParams: typeof op.AcctParams = {\n acctBalance(a: Account | StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.balance, acct.balance !== 0]\n },\n acctMinBalance(a: Account | StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.minBalance, acct.balance !== 0]\n },\n acctAuthAddr(a: Account | StubUint64Compat): readonly [Account, boolean] {\n const acct = getAccount(a)\n return [acct.authAddress, acct.balance !== 0]\n },\n acctTotalNumUint(a: Account | StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalNumUint, acct.balance !== 0]\n },\n acctTotalNumByteSlice(a: Account | StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalNumByteSlice, acct.balance !== 0]\n },\n acctTotalExtraAppPages(a: Account | StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalExtraAppPages, acct.balance !== 0]\n },\n acctTotalAppsCreated(a: Account | StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalAppsCreated, acct.balance !== 0]\n },\n acctTotalAppsOptedIn(a: Account | StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalAppsOptedIn, acct.balance !== 0]\n },\n acctTotalAssetsCreated(a: Account | StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalAssetsCreated, acct.balance !== 0]\n },\n acctTotalAssets(a: Account | StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalAssets, acct.balance !== 0]\n },\n acctTotalBoxes(a: Account | StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalBoxes, acct.balance !== 0]\n },\n acctTotalBoxBytes(a: Account | StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n return [acct.totalBoxBytes, acct.balance !== 0]\n },\n acctIncentiveEligible: function (a: Account | StubUint64Compat): readonly [boolean, boolean] {\n const acct = getAccount(a)\n const accountData = lazyContext.ledger.accountDataMap.get(acct)\n return [accountData?.incentiveEligible ?? false, acct.balance !== 0]\n },\n acctLastProposed: function (a: Account | StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n const accountData = lazyContext.ledger.accountDataMap.get(acct)\n return [accountData?.lastProposed ?? Global.round, acct.balance !== 0]\n },\n acctLastHeartbeat: function (a: Account | StubUint64Compat): readonly [uint64, boolean] {\n const acct = getAccount(a)\n const accountData = lazyContext.ledger.accountDataMap.get(acct)\n return [accountData?.lastHeartbeat ?? Global.round, acct.balance !== 0]\n },\n}\n","import type { Account, op, uint64 } from '@algorandfoundation/algorand-typescript'\nimport { lazyContext } from '../context-helpers/internal-context'\nimport { getAccount } from './acct-params'\nimport type { StubUint64Compat } from './primitives'\n\nexport class VoterData {\n balance: uint64\n incentiveEligible: boolean\n\n constructor() {\n this.balance = 0\n this.incentiveEligible = false\n }\n}\n\nconst getVoterData = (a: Account | StubUint64Compat): VoterData => {\n const acct = getAccount(a)\n return lazyContext.getVoterData(acct)\n}\n\nexport const VoterParams: typeof op.VoterParams = {\n voterBalance: function (a: Account | StubUint64Compat): readonly [uint64, boolean] {\n const data = getVoterData(a)\n return [data.balance, data.balance !== 0]\n },\n voterIncentiveEligible: function (a: Account | StubUint64Compat): readonly [boolean, boolean] {\n const data = getVoterData(a)\n return [data.incentiveEligible, data.balance !== 0]\n },\n}\n","import type { biguint, bytes, op, uint64 } from '@algorandfoundation/algorand-typescript'\nimport { Base64 } from '@algorandfoundation/algorand-typescript'\nimport { BITS_IN_BYTE, MAX_BYTES_SIZE, MAX_UINT64, MAX_UINT8, UINT64_SIZE } from '../constants'\nimport { AvmError, CodeError, NotImplementedError, testInvariant } from '../errors'\nimport { asBigUint, asBytes, asBytesCls, asMaybeBytesCls, asMaybeUint64Cls, asUint64Cls, binaryStringToBytes } from '../util'\nimport type { StubBigUintCompat, StubBytesCompat, StubUint64Compat } from './primitives'\nimport { BigUintCls, Bytes, BytesCls, checkBigUint, isUint64, Uint64, Uint64Cls } from './primitives'\n\nexport const addw = (a: StubUint64Compat, b: StubUint64Compat): readonly [uint64, uint64] => {\n const uint64A = Uint64Cls.fromCompat(a)\n const uint64B = Uint64Cls.fromCompat(b)\n const sum = uint64A.asBigInt() + uint64B.asBigInt()\n return toUint128(sum)\n}\n\nexport const base64Decode = (e: Base64, a: StubBytesCompat): bytes => {\n const encoding = e === Base64.StdEncoding ? 'base64' : 'base64url'\n const bytesValue = BytesCls.fromCompat(a)\n const stringValue = bytesValue.toString()\n\n const bufferResult = Buffer.from(stringValue, encoding)\n if (bufferResult.toString(encoding) !== stringValue) {\n throw new AvmError('illegal base64 data')\n }\n\n const uint8ArrayResult = new Uint8Array(bufferResult)\n return Bytes(uint8ArrayResult)\n}\n\nexport const bitLength = (a: StubUint64Compat | StubBytesCompat): uint64 => {\n const uint64Cls = asMaybeUint64Cls(a)\n const bigUintCls = asMaybeBytesCls(a)?.toBigUint()\n const bigIntValue = (uint64Cls?.asBigInt() ?? bigUintCls?.asBigInt())!\n const binaryValue = bigIntValue === 0n ? '' : bigIntValue.toString(2)\n return Uint64(binaryValue.length)\n}\n\nexport const bsqrt = (a: StubBigUintCompat): biguint => {\n const bigUintClsValue = BigUintCls.fromCompat(a)\n const bigintValue = checkBigUint(bigUintClsValue.asBigInt())\n const sqrtValue = squareroot(bigintValue)\n return asBigUint(sqrtValue)\n}\n\nexport const btoi = (a: StubBytesCompat): uint64 => {\n const bytesValue = BytesCls.fromCompat(a)\n if (bytesValue.length.asAlgoTs() > BITS_IN_BYTE) {\n throw new AvmError(`btoi arg too long, got [${bytesValue.length.valueOf()}]bytes`)\n }\n return bytesValue.toUint64().asAlgoTs()\n}\n\nexport const bzero = (a: StubUint64Compat): bytes => {\n const size = Uint64Cls.fromCompat(a).asBigInt()\n if (size > MAX_BYTES_SIZE) {\n throw new AvmError('bzero attempted to create a too large string')\n }\n return Bytes(new Uint8Array(Number(size)))\n}\n\nexport const concat = (a: StubBytesCompat, b: StubBytesCompat): bytes => {\n const bytesA = BytesCls.fromCompat(a)\n const bytesB = BytesCls.fromCompat(b)\n return bytesA.concat(bytesB).asAlgoTs()\n}\n\nexport const divmodw = (\n a: StubUint64Compat,\n b: StubUint64Compat,\n c: StubUint64Compat,\n d: StubUint64Compat,\n): readonly [uint64, uint64, uint64, uint64] => {\n const i = uint128ToBigInt(a, b)\n const j = uint128ToBigInt(c, d)\n\n const div = i / j\n const mod = i % j\n return [...toUint128(div), ...toUint128(mod)]\n}\n\nexport const divw = (a: StubUint64Compat, b: StubUint64Compat, c: StubUint64Compat): uint64 => {\n const i = uint128ToBigInt(a, b)\n const j = Uint64Cls.fromCompat(c).asBigInt()\n return Uint64(i / j)\n}\n\nexport const exp = (a: StubUint64Compat, b: StubUint64Compat): uint64 => {\n const base = Uint64Cls.fromCompat(a).asBigInt()\n const exponent = Uint64Cls.fromCompat(b).asBigInt()\n if (base === 0n && exponent === 0n) {\n throw new CodeError('0 ** 0 is undefined')\n }\n return Uint64(base ** exponent)\n}\n\nexport const expw = (a: StubUint64Compat, b: StubUint64Compat): readonly [uint64, uint64] => {\n const base = Uint64Cls.fromCompat(a).asBigInt()\n const exponent = Uint64Cls.fromCompat(b).asBigInt()\n if (base === 0n && exponent === 0n) {\n throw new CodeError('0 ** 0 is undefined')\n }\n return toUint128(base ** exponent)\n}\n\ntype ExtractType = ((a: StubBytesCompat, b: StubUint64Compat) => bytes) &\n ((a: StubBytesCompat, b: StubUint64Compat, c: StubUint64Compat) => bytes)\nexport const extract = ((a: StubBytesCompat, b: StubUint64Compat, c?: StubUint64Compat): bytes => {\n const bytesValue = BytesCls.fromCompat(a)\n const bytesLength = bytesValue.length.asBigInt()\n\n const start = Uint64Cls.fromCompat(b).asBigInt()\n const length = c !== undefined ? Uint64Cls.fromCompat(c).asBigInt() : undefined\n const end = length !== undefined ? start + length : undefined\n\n if (start > bytesLength) {\n throw new CodeError(`extraction start ${start} is beyond length`)\n }\n if (end !== undefined && end > bytesLength) {\n throw new CodeError(`extraction end ${end} is beyond length`)\n }\n\n return bytesValue.slice(start, end).asAlgoTs()\n}) as ExtractType\n\nexport const extractUint16 = (a: StubBytesCompat, b: StubUint64Compat): uint64 => {\n const result = extract(a, b, 2)\n const bytesResult = BytesCls.fromCompat(result)\n return bytesResult.toUint64().asAlgoTs()\n}\n\nexport const extractUint32 = (a: StubBytesCompat, b: StubUint64Compat): uint64 => {\n const result = extract(a, b, 4)\n const bytesResult = BytesCls.fromCompat(result)\n return bytesResult.toUint64().asAlgoTs()\n}\n\nexport const extractUint64 = (a: StubBytesCompat, b: StubUint64Compat): uint64 => {\n const result = extract(a, b, 8)\n const bytesResult = BytesCls.fromCompat(result)\n return bytesResult.toUint64().asAlgoTs()\n}\n\nexport const getBit = (a: StubUint64Compat | StubBytesCompat, b: StubUint64Compat): uint64 => {\n const binaryString = toBinaryString(isUint64(a) ? asUint64Cls(a).toBytes().asAlgoTs() : asBytes(a))\n const index = Uint64Cls.fromCompat(b).asNumber()\n const adjustedIndex = asMaybeUint64Cls(a) ? binaryString.length - index - 1 : index\n if (adjustedIndex < 0 || adjustedIndex >= binaryString.length) {\n throw new CodeError(`getBit index ${index} is beyond length`)\n }\n return binaryString[adjustedIndex] === '1' ? 1 : 0\n}\n\nexport const getByte = (a: StubBytesCompat, b: StubUint64Compat): uint64 => {\n const bytesValue = BytesCls.fromCompat(a)\n const index = Uint64Cls.fromCompat(b).asNumber()\n if (index >= bytesValue.length.asNumber()) {\n throw new CodeError(`getBytes index ${index} is beyond length`)\n }\n return bytesValue.at(index).toUint64().asAlgoTs()\n}\n\nexport const itob = (a: StubUint64Compat): bytes => {\n return asUint64Cls(a).toBytes().asAlgoTs()\n}\n\nexport const len = (a: StubBytesCompat): uint64 => {\n return asBytesCls(a).length.asAlgoTs()\n}\n\nexport const mulw = (a: StubUint64Compat, b: StubUint64Compat): readonly [uint64, uint64] => {\n const uint64A = Uint64Cls.fromCompat(a)\n const uint64B = Uint64Cls.fromCompat(b)\n const product = uint64A.asBigInt() * uint64B.asBigInt()\n return toUint128(product)\n}\n\nexport const replace = (a: StubBytesCompat, b: StubUint64Compat, c: StubBytesCompat): bytes => {\n const bytesValue = BytesCls.fromCompat(a)\n const index = Uint64Cls.fromCompat(b).asNumber()\n const replacement = BytesCls.fromCompat(c)\n\n const valueLength = bytesValue.length.asNumber()\n const replacementLength = replacement.length.asNumber()\n\n if (index + replacementLength > valueLength) {\n throw new CodeError(`expected value <= ${valueLength}, got: ${index + replacementLength}`)\n }\n return bytesValue\n .slice(0, index)\n .concat(replacement)\n .concat(bytesValue.slice(index + replacementLength, valueLength))\n .asAlgoTs()\n}\n\ntype selectType = ((a: StubBytesCompat, b: StubBytesCompat, c: StubUint64Compat) => bytes) &\n ((a: StubUint64Compat, b: StubUint64Compat, c: StubUint64Compat) => uint64)\nexport const select = ((\n a: StubUint64Compat | StubBytesCompat,\n b: StubUint64Compat | StubBytesCompat,\n c: StubUint64Compat,\n): uint64 | bytes => {\n const uint64A = asMaybeUint64Cls(a)\n const uint64B = asMaybeUint64Cls(b)\n const bytesA = asMaybeBytesCls(a)\n const bytesB = asMaybeBytesCls(b)\n const bigIntC = Uint64Cls.fromCompat(c).asBigInt()\n\n return (bigIntC !== 0n ? (uint64B ?? bytesB)! : (uint64A ?? bytesA)!).asAlgoTs()\n}) as selectType\n\ntype SetBitType = ((target: StubBytesCompat, n: StubUint64Compat, c: StubUint64Compat) => bytes) &\n ((target: StubUint64Compat, n: StubUint64Compat, c: StubUint64Compat) => uint64)\n\nexport const setBit = ((a: StubUint64Compat | StubBytesCompat, b: StubUint64Compat, c: StubUint64Compat) => {\n const uint64Cls = asMaybeUint64Cls(a)\n const indexParam = Uint64Cls.fromCompat(b).asNumber()\n const bit = Uint64Cls.fromCompat(c).asNumber()\n if (uint64Cls) {\n const binaryString = toBinaryString(uint64Cls?.toBytes().asAlgoTs())\n const index = binaryString.length - indexParam - 1\n const newBytes = doSetBit(binaryString, index, bit)\n return newBytes.toUint64().asAlgoTs()\n } else {\n const bytesCls = asMaybeBytesCls(a)\n testInvariant(bytesCls, 'a must be uint64 or bytes')\n const binaryString = toBinaryString(bytesCls.asAlgoTs())\n const newBytes = doSetBit(binaryString, indexParam, bit)\n return newBytes.asAlgoTs()\n }\n}) as SetBitType\n\nexport const setByte = (a: StubBytesCompat, b: StubUint64Compat, c: StubUint64Compat): bytes => {\n const binaryString = toBinaryString(BytesCls.fromCompat(a).asAlgoTs())\n\n const byteIndex = Uint64Cls.fromCompat(b).asNumber()\n const bitIndex = byteIndex * BITS_IN_BYTE\n\n const replacementNumber = Uint64Cls.fromCompat(c)\n const replacement = toBinaryString(replacementNumber.toBytes().at(-1).asAlgoTs())\n\n if (bitIndex >= binaryString.length) {\n throw new CodeError(`setByte index ${byteIndex} is beyond length`)\n }\n if (replacementNumber.valueOf() > MAX_UINT8) {\n throw new CodeError(`setByte value ${replacementNumber.asNumber()} > ${MAX_UINT8}`)\n }\n const updatedString = binaryString.slice(0, bitIndex) + replacement + binaryString.slice(bitIndex + replacement.length)\n const updatedBytes = binaryStringToBytes(updatedString)\n return updatedBytes.asAlgoTs()\n}\n\nexport const shl = (a: StubUint64Compat, b: StubUint64Compat): uint64 => {\n const uint64A = Uint64Cls.fromCompat(a)\n const uint64B = Uint64Cls.fromCompat(b)\n const bigIntA = uint64A.asBigInt()\n const bigIntB = uint64B.asBigInt()\n if (bigIntB >= UINT64_SIZE) {\n throw new CodeError(`shl value ${bigIntB} >= ${UINT64_SIZE}`)\n }\n const shifted = (bigIntA * 2n ** bigIntB) % 2n ** BigInt(UINT64_SIZE)\n return Uint64(shifted)\n}\n\nexport const shr = (a: StubUint64Compat, b: StubUint64Compat): uint64 => {\n const uint64A = Uint64Cls.fromCompat(a)\n const uint64B = Uint64Cls.fromCompat(b)\n const bigIntA = uint64A.asBigInt()\n const bigIntB = uint64B.asBigInt()\n if (bigIntB >= UINT64_SIZE) {\n throw new CodeError(`shr value ${bigIntB} >= ${UINT64_SIZE}`)\n }\n const shifted = bigIntA / 2n ** bigIntB\n return Uint64(shifted)\n}\n\nexport const sqrt = (a: StubUint64Compat): uint64 => {\n const bigIntValue = Uint64Cls.fromCompat(a).asBigInt()\n const sqrtValue = squareroot(bigIntValue)\n return Uint64(sqrtValue)\n}\n\nexport const substring = (a: StubBytesCompat, b: StubUint64Compat, c: StubUint64Compat): bytes => {\n const bytesValue = BytesCls.fromCompat(a)\n const start = Uint64Cls.fromCompat(b).asBigInt()\n const end = Uint64Cls.fromCompat(c).asBigInt()\n if (start > end) {\n throw new CodeError('substring end before start')\n }\n if (end > bytesValue.length.asNumber()) {\n throw new CodeError('substring range beyond length of string')\n }\n return bytesValue.slice(start, end).asAlgoTs()\n}\n\nexport const JsonRef = new Proxy({} as typeof op.JsonRef, {\n get: (_target, prop) => {\n throw new NotImplementedError(`JsonRef.${prop.toString()}`)\n },\n})\n\nconst squareroot = (x: bigint): bigint => {\n let lo = 0n,\n hi = x\n while (lo <= hi) {\n const mid = (lo + hi) / 2n\n if (mid * mid > x) hi = mid - 1n\n else lo = mid + 1n\n }\n return hi\n}\n\nconst toUint128 = (value: bigint): [uint64, uint64] => {\n const cf = value >> 64n\n const rest = value & MAX_UINT64\n return [Uint64(cf), Uint64(rest)]\n}\n\nconst uint128ToBigInt = (a: StubUint64Compat, b: StubUint64Compat): bigint => {\n const bigIntA = Uint64Cls.fromCompat(a).asBigInt()\n const bigIntB = Uint64Cls.fromCompat(b).asBigInt()\n return (bigIntA << 64n) + bigIntB\n}\n\nconst toBinaryString = (a: bytes): string => {\n return [...BytesCls.fromCompat(a).asUint8Array()].map((x) => x.toString(2).padStart(BITS_IN_BYTE, '0')).join('')\n}\n\nconst doSetBit = (binaryString: string, index: number, bit: number): BytesCls => {\n if (index < 0 || index >= binaryString.length) {\n throw new CodeError(`setBit index ${index < 0 ? binaryString.length - index : index} is beyond length`)\n }\n if (bit !== 0 && bit !== 1) {\n throw new CodeError(`setBit value > 1`)\n }\n const updatedString = binaryString.slice(0, index) + bit.toString() + binaryString.slice(index + 1)\n return binaryStringToBytes(updatedString)\n}\n","import type { Account as AccountType, Asset as AssetType, bytes, gtxn, op, uint64 } from '@algorandfoundation/algorand-typescript'\nimport { lazyContext } from '../context-helpers/internal-context'\nimport { asMaybeUint64Cls, asUint64 } from '../util'\nimport { Bytes, Uint64, type StubUint64Compat } from './primitives'\nimport { Account } from './reference'\n\nconst resolveAssetIndex = (assetIdOrIndex: StubUint64Compat): uint64 => {\n const input = asUint64(assetIdOrIndex)\n if (input >= 1001) {\n return input\n }\n const txn = lazyContext.activeGroup.activeTransaction as gtxn.ApplicationTxn\n return txn.assets(input).id\n}\n\nexport const getAsset = (asset: AssetType | StubUint64Compat): AssetType | undefined => {\n try {\n const assetId = asMaybeUint64Cls(asset)\n if (assetId !== undefined) {\n return lazyContext.ledger.getAsset(resolveAssetIndex(assetId))\n }\n return asset as AssetType\n } catch {\n return undefined\n }\n}\n\nexport const AssetParams: typeof op.AssetParams = {\n assetTotal(a: AssetType | StubUint64Compat): readonly [uint64, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Uint64(0), false] : [asset.total, true]\n },\n assetDecimals(a: AssetType | StubUint64Compat): readonly [uint64, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Uint64(0), false] : [asset.decimals, true]\n },\n assetDefaultFrozen(a: AssetType | StubUint64Compat): readonly [boolean, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [false, false] : [asset.defaultFrozen, true]\n },\n assetUnitName(a: AssetType | StubUint64Compat): readonly [bytes, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Bytes(), false] : [asset.unitName, true]\n },\n assetName(a: AssetType | StubUint64Compat): readonly [bytes, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Bytes(), false] : [asset.name, true]\n },\n assetUrl(a: AssetType | StubUint64Compat): readonly [bytes, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Bytes(), false] : [asset.url, true]\n },\n assetMetadataHash(a: AssetType | StubUint64Compat): readonly [bytes, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Bytes(), false] : [asset.metadataHash, true]\n },\n assetManager(a: AssetType | StubUint64Compat): readonly [AccountType, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Account(), false] : [asset.manager, true]\n },\n assetReserve(a: AssetType | StubUint64Compat): readonly [AccountType, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Account(), false] : [asset.reserve, true]\n },\n assetFreeze(a: AssetType | StubUint64Compat): readonly [AccountType, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Account(), false] : [asset.freeze, true]\n },\n assetClawback(a: AssetType | StubUint64Compat): readonly [AccountType, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Account(), false] : [asset.clawback, true]\n },\n assetCreator(a: AssetType | StubUint64Compat): readonly [AccountType, boolean] {\n const asset = getAsset(a)\n return asset === undefined ? [Account(), false] : [asset.creator, true]\n },\n}\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { UintN, UFixedNxM, Byte, Str, Bool, StaticArray, Address, DynamicArray,
2
2
  import { encodingUtil } from '@algorandfoundation/puya-ts';
3
3
  import assert$1 from 'assert';
4
4
  import js_sha512 from 'js-sha512';
5
- import { Ecdsa, arc4 } from '@algorandfoundation/algorand-typescript';
5
+ import { Ecdsa, OnCompleteAction } from '@algorandfoundation/algorand-typescript';
6
6
  import elliptic from 'elliptic';
7
7
  import js_sha256 from 'js-sha256';
8
8
  import js_sha3 from 'js-sha3';
@@ -1478,7 +1478,7 @@ class StaticArrayImpl extends StaticArray {
1478
1478
  const childTypes = Array(arraySize).fill(genericArgs.elementType);
1479
1479
  let i = 0;
1480
1480
  let size = 0;
1481
- if (genericArgs.elementType.name === 'Bool') {
1481
+ if (['Bool', 'boolean'].includes(genericArgs.elementType.name)) {
1482
1482
  while (i < childTypes.length) {
1483
1483
  const after = findBoolTypes(childTypes, i, 1);
1484
1484
  const boolNum = after + 1;
@@ -1707,7 +1707,7 @@ class TupleImpl extends Tuple {
1707
1707
  let size = 0;
1708
1708
  while (i < genericArgs.length) {
1709
1709
  const childType = genericArgs[i];
1710
- if (childType.name === 'Bool') {
1710
+ if (['Bool', 'boolean'].includes(childType.name)) {
1711
1711
  const after = findBoolTypes(genericArgs, i, 1);
1712
1712
  const boolNum = after + 1;
1713
1713
  size += Math.floor(boolNum / BITS_IN_BYTE);
@@ -1770,6 +1770,9 @@ class StructImpl extends Struct {
1770
1770
  get native() {
1771
1771
  return this.items;
1772
1772
  }
1773
+ copy() {
1774
+ return StructImpl.fromBytesImpl(this.bytes, JSON.stringify(this.typeInfo));
1775
+ }
1773
1776
  decodeAsProperties() {
1774
1777
  if (this.uint8ArrayValue) {
1775
1778
  const values = decode(this.uint8ArrayValue, Object.values(this.genericArgs));
@@ -1793,6 +1796,26 @@ class StructImpl extends Struct {
1793
1796
  const genericArgs = Object.values(t.genericArgs);
1794
1797
  return `(${genericArgs.map(getArc4TypeName).join(',')})`;
1795
1798
  };
1799
+ static getMaxBytesLength(typeInfo) {
1800
+ const genericArgs = Object.values(typeInfo.genericArgs);
1801
+ let i = 0;
1802
+ let size = 0;
1803
+ while (i < genericArgs.length) {
1804
+ const childType = genericArgs[i];
1805
+ if (['Bool', 'boolean'].includes(childType.name)) {
1806
+ const after = findBoolTypes(genericArgs, i, 1);
1807
+ const boolNum = after + 1;
1808
+ size += Math.floor(boolNum / BITS_IN_BYTE);
1809
+ size += boolNum % BITS_IN_BYTE ? 1 : 0;
1810
+ i += after;
1811
+ }
1812
+ else {
1813
+ size += getMaxLengthOfStaticContentType(childType);
1814
+ }
1815
+ i += 1;
1816
+ }
1817
+ return size;
1818
+ }
1796
1819
  }
1797
1820
  class DynamicBytesImpl extends DynamicBytes {
1798
1821
  typeInfo;
@@ -1925,7 +1948,7 @@ const decode = (value, childTypes) => {
1925
1948
  valuePartitions.push(new Uint8Array());
1926
1949
  arrayIndex += ABI_LENGTH_SIZE;
1927
1950
  }
1928
- else if (childType.name === 'Bool') {
1951
+ else if (['Bool', 'boolean'].includes(childType.name)) {
1929
1952
  const before = findBoolTypes(childTypes, i, -1);
1930
1953
  let after = findBoolTypes(childTypes, i, 1);
1931
1954
  if (before % 8 != 0) {
@@ -1980,7 +2003,7 @@ const findBoolTypes = (values, index, delta) => {
1980
2003
  const length = values.length;
1981
2004
  while (true) {
1982
2005
  const curr = index + delta * until;
1983
- if (values[curr].name === 'Bool') {
2006
+ if (['Bool', 'boolean'].includes(values[curr].name)) {
1984
2007
  if ((curr != length - 1 && delta > 0) || (curr > 0 && delta < 0)) {
1985
2008
  until += 1;
1986
2009
  }
@@ -1997,6 +2020,12 @@ const findBoolTypes = (values, index, delta) => {
1997
2020
  };
1998
2021
  const getMaxLengthOfStaticContentType = (type) => {
1999
2022
  switch (trimGenericTypeName(type.name)) {
2023
+ case 'uint64':
2024
+ return UINT64_SIZE / BITS_IN_BYTE;
2025
+ case 'biguint':
2026
+ return UINT512_SIZE / BITS_IN_BYTE;
2027
+ case 'boolean':
2028
+ return 1;
2000
2029
  case 'Address':
2001
2030
  return AddressImpl.getMaxBytesLength(type);
2002
2031
  case 'Byte':
@@ -2011,6 +2040,8 @@ const getMaxLengthOfStaticContentType = (type) => {
2011
2040
  return StaticBytesImpl.getMaxBytesLength(type);
2012
2041
  case 'Tuple':
2013
2042
  return TupleImpl.getMaxBytesLength(type);
2043
+ case 'Struct':
2044
+ return StructImpl.getMaxBytesLength(type);
2014
2045
  }
2015
2046
  throw new CodeError(`unsupported type ${type.name}`);
2016
2047
  };
@@ -2241,6 +2272,10 @@ const getArc4Encoded = (value) => {
2241
2272
  }
2242
2273
  throw new CodeError(`Unsupported type for encoding: ${typeof value}`);
2243
2274
  };
2275
+ const arc4EncodedLengthImpl = (typeInfoString) => {
2276
+ const typeInfo = JSON.parse(typeInfoString);
2277
+ return getMaxLengthOfStaticContentType(typeInfo);
2278
+ };
2244
2279
 
2245
2280
  const sha256 = (a) => {
2246
2281
  const bytesA = BytesCls.fromCompat(a);
@@ -2274,7 +2309,7 @@ const ed25519verifyBare = (a, b, c) => {
2274
2309
  };
2275
2310
  const ed25519verify = (a, b, c) => {
2276
2311
  const txn = lazyContext.activeGroup.activeTransaction;
2277
- const programBytes = asBytesCls(txn.onCompletion == arc4.OnCompleteAction[arc4.OnCompleteAction.ClearState] ? txn.clearStateProgram : txn.approvalProgram);
2312
+ const programBytes = asBytesCls(txn.onCompletion == OnCompleteAction[OnCompleteAction.ClearState] ? txn.clearStateProgram : txn.approvalProgram);
2278
2313
  const logicSig = conactUint8Arrays(asUint8Array(PROGRAM_TAG), programBytes.asUint8Array());
2279
2314
  const logicSigAddress = js_sha512.sha512_256.array(logicSig);
2280
2315
  const addressBytes = Bytes(logicSigAddress);
@@ -2333,5 +2368,5 @@ const curveMap = {
2333
2368
  [Ecdsa.Secp256r1]: 'p256',
2334
2369
  };
2335
2370
 
2336
- export { BITS_IN_BYTE as $, AccountCls as A, BigUintCls as B, CodeError as C, asMaybeBytesCls as D, asUint8Array as E, asNumber as F, ABI_RETURN_VALUE_LOG_PREFIX as G, testInvariant as H, InternalError as I, Uint64 as J, getRandomBigInt as K, asBigUintCls as L, MAX_UINT64 as M, BigUint as N, MAX_BYTES_SIZE as O, Account as P, getRandomBytes as Q, MAX_UINT512 as R, AddressImpl as S, TRANSACTION_GROUP_MAX_SIZE as T, Uint64Cls as U, MAX_UINT8 as V, MAX_UINT16 as W, MAX_UINT32 as X, MAX_UINT128 as Y, MAX_UINT256 as Z, DynamicBytesImpl as _, BytesCls as a, StrImpl as a0, ContextManager as a1, DEFAULT_TEMPLATE_VAR_PREFIX as a2, AvmError as a3, NotImplementedError as a4, toExternalValue as a5, BytesBackedCls as a6, Uint64BackedCls as a7, assert as a8, asMaybeBigUintCls as a9, arc4Encoders as aA, getArc4Encoder as aB, EllipticCurve as aC, ecdsaPkDecompress as aD, ecdsaPkRecover as aE, ecdsaVerify as aF, ed25519verify as aG, ed25519verifyBare as aH, keccak256 as aI, mimc as aJ, sha256 as aK, sha3_256 as aL, vrfVerify as aM, getObjectReference as aN, getApplicationAddress as aO, MIN_TXN_FEE as aP, DEFAULT_ACCOUNT_MIN_BALANCE as aQ, DEFAULT_MAX_TXN_LIFE as aR, ZERO_ADDRESS as aS, DEFAULT_ASSET_CREATE_MIN_BALANCE as aT, DEFAULT_ASSET_OPT_IN_MIN_BALANCE as aU, DEFAULT_GLOBAL_GENESIS_HASH as aV, asBigUint as aW, isUint64 as aX, binaryStringToBytes as aY, UINT64_SIZE as aZ, contract as aa, err as ab, combineIntoMaxBytePages as ac, MAX_ITEMS_IN_LOG as ad, asBytesCls as ae, MAX_BOX_SIZE as af, conactUint8Arrays as ag, asAccount as ah, asAsset as ai, asApplication as aj, nameOfType as ak, getArc4TypeName as al, sha512_256 as am, checkBigUint as an, checkBytes as ao, decodeArc4Impl as ap, encodeArc4Impl as aq, UFixedNxMImpl as ar, ByteImpl as as, BoolImpl as at, StaticArrayImpl as au, DynamicArrayImpl as av, TupleImpl as aw, StructImpl as ax, StaticBytesImpl as ay, interpretAsArc4Impl as az, AlgoTsPrimitiveCls as b, AssertError as c, BaseContract as d, ContractOptionsSymbol as e, ApplicationCls as f, AssetCls as g, getArc4Encoded as h, Bytes as i, BytesMap as j, UintNImpl as k, lazyContext as l, iterBigInt as m, Uint64Map as n, AccountMap as o, asBytes as p, Asset as q, asUint64 as r, Application as s, asMaybeUint64Cls as t, asUint64Cls as u, AssetHolding as v, AccountData as w, ApplicationData as x, getDefaultAssetData as y, asBigInt as z };
2337
- //# sourceMappingURL=crypto-CTvchC9k.js.map
2371
+ export { BITS_IN_BYTE as $, AccountCls as A, BigUintCls as B, CodeError as C, asMaybeBytesCls as D, asUint8Array as E, asNumber as F, ABI_RETURN_VALUE_LOG_PREFIX as G, testInvariant as H, InternalError as I, Uint64 as J, getRandomBigInt as K, asBigUintCls as L, MAX_UINT64 as M, BigUint as N, MAX_BYTES_SIZE as O, Account as P, getRandomBytes as Q, MAX_UINT512 as R, AddressImpl as S, TRANSACTION_GROUP_MAX_SIZE as T, Uint64Cls as U, MAX_UINT8 as V, MAX_UINT16 as W, MAX_UINT32 as X, MAX_UINT128 as Y, MAX_UINT256 as Z, DynamicBytesImpl as _, BytesCls as a, StrImpl as a0, ContextManager as a1, DEFAULT_TEMPLATE_VAR_PREFIX as a2, AvmError as a3, NotImplementedError as a4, toExternalValue as a5, assert as a6, BytesBackedCls as a7, Uint64BackedCls as a8, asMaybeBigUintCls as a9, interpretAsArc4Impl as aA, arc4Encoders as aB, getArc4Encoder as aC, EllipticCurve as aD, ecdsaPkDecompress as aE, ecdsaPkRecover as aF, ecdsaVerify as aG, ed25519verify as aH, ed25519verifyBare as aI, keccak256 as aJ, mimc as aK, sha256 as aL, sha3_256 as aM, vrfVerify as aN, getApplicationAddress as aO, getObjectReference as aP, MIN_TXN_FEE as aQ, DEFAULT_ACCOUNT_MIN_BALANCE as aR, DEFAULT_MAX_TXN_LIFE as aS, ZERO_ADDRESS as aT, DEFAULT_ASSET_CREATE_MIN_BALANCE as aU, DEFAULT_ASSET_OPT_IN_MIN_BALANCE as aV, DEFAULT_GLOBAL_GENESIS_HASH as aW, asBigUint as aX, isUint64 as aY, binaryStringToBytes as aZ, UINT64_SIZE as a_, contract as aa, err as ab, combineIntoMaxBytePages as ac, MAX_ITEMS_IN_LOG as ad, asBytesCls as ae, MAX_BOX_SIZE as af, conactUint8Arrays as ag, asApplication as ah, asAsset as ai, asAccount as aj, nameOfType as ak, getArc4TypeName as al, sha512_256 as am, checkBigUint as an, checkBytes as ao, arc4EncodedLengthImpl as ap, decodeArc4Impl as aq, encodeArc4Impl as ar, UFixedNxMImpl as as, ByteImpl as at, BoolImpl as au, StaticArrayImpl as av, DynamicArrayImpl as aw, TupleImpl as ax, StructImpl as ay, StaticBytesImpl as az, AlgoTsPrimitiveCls as b, AssertError as c, BaseContract as d, UintNImpl as e, ApplicationCls as f, AssetCls as g, getArc4Encoded as h, Bytes as i, BytesMap as j, ContractOptionsSymbol as k, lazyContext as l, iterBigInt as m, Uint64Map as n, AccountMap as o, asBytes as p, Asset as q, asUint64 as r, Application as s, asMaybeUint64Cls as t, asUint64Cls as u, AssetHolding as v, AccountData as w, ApplicationData as x, getDefaultAssetData as y, asBigInt as z };
2372
+ //# sourceMappingURL=crypto-B-GumABC.js.map