@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.
- package/{abi-metadata-CrWTVWxh.js → abi-metadata-MnpFwb6h.js} +2 -2
- package/abi-metadata-MnpFwb6h.js.map +1 -0
- package/abi-metadata.d.ts +2 -1
- package/{arc4-DEFhYT4N.js → arc4-C4P7NKRh.js} +3 -3
- package/{arc4-DEFhYT4N.js.map → arc4-C4P7NKRh.js.map} +1 -1
- package/{asset-params-Bn6tFvSU.js → asset-params-BqpkR1PO.js} +3 -3
- package/asset-params-BqpkR1PO.js.map +1 -0
- package/{crypto-CTvchC9k.js → crypto-B-GumABC.js} +43 -8
- package/crypto-B-GumABC.js.map +1 -0
- package/impl/encoded-types.d.ts +3 -1
- package/impl/state.d.ts +6 -12
- package/impl/transactions.d.ts +2 -2
- package/index.mjs +6 -6
- package/index.mjs.map +1 -1
- package/{inner-transactions-C2LSf8Qr.js → inner-transactions-cy1WcWRq.js} +29 -47
- package/inner-transactions-cy1WcWRq.js.map +1 -0
- package/internal/arc4.mjs +3 -3
- package/internal/index.mjs +10 -10
- package/internal/op.mjs +3 -3
- package/{op-ClR08uKc.js → op-H2hUf9EO.js} +9 -9
- package/op-H2hUf9EO.js.map +1 -0
- package/package.json +3 -6
- package/{program-factory-D1EkyGfS.js → program-factory-CrdkPpT0.js} +7 -3
- package/program-factory-CrdkPpT0.js.map +1 -0
- package/{runtime-helpers-DdyG6XmI.js → runtime-helpers-CwYM3xhU.js} +3 -3
- package/runtime-helpers-CwYM3xhU.js.map +1 -0
- package/runtime-helpers.d.ts +1 -1
- package/runtime-helpers.mjs +3 -3
- package/test-transformer/jest-transformer.mjs +1 -1
- package/test-transformer/vitest-transformer.mjs +1 -1
- package/abi-metadata-CrWTVWxh.js.map +0 -1
- package/asset-params-Bn6tFvSU.js.map +0 -1
- package/crypto-CTvchC9k.js.map +0 -1
- package/inner-transactions-C2LSf8Qr.js.map +0 -1
- package/op-ClR08uKc.js.map +0 -1
- package/program-factory-D1EkyGfS.js.map +0 -1
- 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-
|
|
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-
|
|
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 {
|
|
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-
|
|
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-
|
|
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-
|
|
40
|
+
//# sourceMappingURL=arc4-C4P7NKRh.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arc4-
|
|
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,
|
|
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,
|
|
845
|
-
//# sourceMappingURL=asset-params-
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 ==
|
|
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,
|
|
2337
|
-
//# sourceMappingURL=crypto-
|
|
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
|