From 49f0cd608f5c7af20ef28a1139b346048c0f6d4a Mon Sep 17 00:00:00 2001 From: Tristan Menzel Date: Mon, 25 Nov 2024 12:36:10 -0800 Subject: [PATCH] fix: Generate a name for anonymous types used in ABI methods + stabilise output for SingleEval nodes --- package.json | 4 +- src/awst/json-serialize-awst.ts | 11 +- src/awst/node-factory.ts | 3 +- src/awst/nodes.ts | 21 +- src/awst/to-code-visitor.ts | 17 +- src/awst/util.ts | 14 + src/awst/wtypes.ts | 5 +- src/awst_build/arc4-util.ts | 2 + .../ast-visitors/contract-method-visitor.ts | 1 - .../object-literal-expression-builder.ts | 2 +- src/awst_build/ptypes/index.ts | 24 +- tests/approvals.spec.ts | 8 +- tests/approvals/named-types.algo.ts | 13 +- .../accounts/AccountsContract.approval.teal | 1226 +- .../out/accounts/AccountsContract.arc32.json | 4 +- .../out/accounts/AccountsContract.ssa.ir | 380 +- tests/approvals/out/accounts/accounts.awst | 4 +- .../approvals/out/accounts/accounts.awst.json | 22095 +++++++++++++++- .../out/arc4-struct/StructDemo.approval.teal | 153 +- .../out/arc4-struct/StructDemo.arc32.json | 2 +- .../out/arc4-struct/arc4-struct.awst | 10 +- .../out/arc4-struct/arc4-struct.awst.json | 84 +- .../DemoContract.approval.teal | 59 +- .../biguint-expressions/DemoContract.ssa.ir | 2 +- .../boolean-expressions.awst | 4 +- .../boolean-expressions.awst.json | 8 +- .../DemoContract.approval.teal | 78 + .../destructured-params.awst | 2 +- .../destructured-params.awst.json | 32 +- .../destructuring-iterators.awst.json | 26 +- .../local-state/LocalStateDemo.approval.teal | 240 + .../out/local-state/LocalStateDemo.arc32.json | 44 +- .../out/local-state/LocalStateDemo.ssa.ir | 66 +- .../out/local-state/local-state.awst | 4 +- .../out/local-state/local-state.awst.json | 2827 +- .../out/named-types/MyContract.approval.teal | 98 +- .../out/named-types/MyContract.arc32.json | 17 +- .../out/named-types/MyContract.ssa.ir | 60 +- .../out/named-types/named-types.awst | 11 +- .../out/named-types/named-types.awst.json | 1176 +- .../object-destructuring.awst | 16 +- .../object-destructuring.awst.json | 791 +- .../property-ordering.awst.json | 32 +- 43 files changed, 27838 insertions(+), 1838 deletions(-) diff --git a/package.json b/package.json index fb3225ad..c036c64d 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,9 @@ "scripts": { "postinstall": "npx patch-package", "dev:examples": "tsx src/cli.ts build examples --output-awst --output-awst-json", - "dev:approvals": "rimraf tests/approvals/out && tsx src/cli.ts build tests/approvals --output-awst --output-awst-json --output-ssa-ir --out-dir out/[name] --optimization-level 0", + "dev:approvals": "rimraf tests/approvals/out && tsx src/cli.ts build tests/approvals --dry-run", "dev:expected-output": "tsx src/cli.ts build tests/expected-output --dry-run", - "dev:testing": "tsx src/cli.ts build tests/approvals/biguint-expressions.algo.ts --output-awst --output-awst-json --output-ssa-ir --log-level=info --log-level info --out-dir out/[name]", + "dev:testing": "tsx src/cli.ts build tests/approvals/named-types.algo.ts --output-awst --output-awst-json --output-ssa-ir --log-level=info --log-level debug --out-dir out/[name]", "audit": "better-npm-audit audit", "format": "prettier --write .", "lint": "eslint \"src/**/*.ts\"", diff --git a/src/awst/json-serialize-awst.ts b/src/awst/json-serialize-awst.ts index 9978af51..c945746c 100644 --- a/src/awst/json-serialize-awst.ts +++ b/src/awst/json-serialize-awst.ts @@ -7,8 +7,9 @@ import { invariant } from '../util' import { buildBase85Encoder } from '../util/base-85' import { ARC4ABIMethodConfig, ContractReference, LogicSigReference } from './models' import type { RootNode } from './nodes' -import { IntrinsicCall } from './nodes' +import { IntrinsicCall, SingleEvaluation } from './nodes' import { SourceLocation } from './source-location' +import { SymbolToNumber } from './util' export class SnakeCaseSerializer { constructor(private readonly spaces = 2) {} @@ -35,6 +36,7 @@ export class AwstSerializer extends SnakeCaseSerializer { ) { super() } + #singleEvals = new SymbolToNumber() private b85 = buildBase85Encoder() protected serializerFunction(key: string, value: unknown): unknown { @@ -97,6 +99,13 @@ export class AwstSerializer extends SnakeCaseSerializer { file: filePath, } } + if (value instanceof SingleEvaluation) { + return { + _type: SingleEvaluation.name, + ...(super.serializerFunction(key, value) as object), + id: String(this.#singleEvals.forSymbol(value.id)[0]), + } + } if (value instanceof ARC4ABIMethodConfig) { // TODO: This can be removed once puya has been updated to support a more advanced default args schema return { diff --git a/src/awst/node-factory.ts b/src/awst/node-factory.ts index e134185c..4ca0c68d 100644 --- a/src/awst/node-factory.ts +++ b/src/awst/node-factory.ts @@ -34,7 +34,6 @@ import { wtypes } from './wtypes' type ConcreteNodes = typeof concreteNodes -let singleEval = 0n const explicitNodeFactory = { voidConstant(props: { sourceLocation: SourceLocation }): VoidConstant { return new VoidConstant({ @@ -133,7 +132,7 @@ const explicitNodeFactory = { }, singleEvaluation({ source }: { source: Expression }) { return new SingleEvaluation({ - id: singleEval++, + id: Symbol(), sourceLocation: source.sourceLocation, wtype: source.wtype, source, diff --git a/src/awst/nodes.ts b/src/awst/nodes.ts index 08c02cca..d76d9be0 100644 --- a/src/awst/nodes.ts +++ b/src/awst/nodes.ts @@ -162,8 +162,8 @@ export class DecimalConstant extends Expression { export class BoolConstant extends Expression { constructor(props: Props) { super(props) - this.wtype = props.wtype this.value = props.value + this.wtype = props.wtype } value: boolean accept(visitor: ExpressionVisitor): T { @@ -193,8 +193,8 @@ export class BytesConstant extends Expression { export class StringConstant extends Expression { constructor(props: Props) { super(props) - this.wtype = props.wtype this.value = props.value + this.wtype = props.wtype } value: string accept(visitor: ExpressionVisitor): T { @@ -538,7 +538,7 @@ export class SingleEvaluation extends Expression { this.sourceLocation = props.sourceLocation } source: Expression - id: bigint + id: symbol sourceLocation: SourceLocation accept(visitor: ExpressionVisitor): T { return visitor.visitSingleEvaluation(this) @@ -969,6 +969,19 @@ export class BytesAugmentedAssignment extends Statement { return visitor.visitBytesAugmentedAssignment(this) } } +export class Emit extends Expression { + constructor(props: Props) { + super(props) + this.signature = props.signature + this.value = props.value + this.wtype = props.wtype + } + signature: string + value: Expression + accept(visitor: ExpressionVisitor): T { + return visitor.visitEmit(this) + } +} export class Range extends Expression { constructor(props: Props) { super(props) @@ -1355,6 +1368,7 @@ export const concreteNodes = { uInt64AugmentedAssignment: UInt64AugmentedAssignment, bigUIntAugmentedAssignment: BigUIntAugmentedAssignment, bytesAugmentedAssignment: BytesAugmentedAssignment, + emit: Emit, range: Range, enumeration: Enumeration, reversed: Reversed, @@ -1429,6 +1443,7 @@ export interface ExpressionVisitor { visitBytesBinaryOperation(expression: BytesBinaryOperation): T visitBooleanBinaryOperation(expression: BooleanBinaryOperation): T visitNot(expression: Not): T + visitEmit(expression: Emit): T visitRange(expression: Range): T visitEnumeration(expression: Enumeration): T visitReversed(expression: Reversed): T diff --git a/src/awst/to-code-visitor.ts b/src/awst/to-code-visitor.ts index d26a6115..3154b499 100644 --- a/src/awst/to-code-visitor.ts +++ b/src/awst/to-code-visitor.ts @@ -3,9 +3,10 @@ import { TodoError } from '../errors' import { logger } from '../logger' import { uint8ArrayToBase32, uint8ArrayToUtf8 } from '../util' import type { ContractReference } from './models' -import type { AppStorageDefinition, ContractMemberNodeVisitor, ExpressionVisitor, RootNodeVisitor, StatementVisitor } from './nodes' +import type { AppStorageDefinition, ContractMemberNodeVisitor, Emit, ExpressionVisitor, RootNodeVisitor, StatementVisitor } from './nodes' import * as nodes from './nodes' import { AppStorageKind, BytesEncoding, ContractMethodTarget, InstanceMethodTarget, InstanceSuperMethodTarget, SubroutineID } from './nodes' +import { SymbolToNumber } from './util' import { wtypes } from './wtypes' function printBytes(value: Uint8Array, encoding: BytesEncoding) { @@ -41,7 +42,7 @@ export class ToCodeVisitor visitAppStorageDefinition(contractMemberNode: AppStorageDefinition): string[] { throw new Error('Method not implemented.') } - #singleEval = new Set() + #singleEval = new SymbolToNumber() visitUInt64PostfixUnaryOperation(expression: nodes.UInt64PostfixUnaryOperation): string { return `${expression.target.accept(this)}${expression.op}` } @@ -175,11 +176,11 @@ export class ToCodeVisitor return `LocalState[${expression.account.accept(this)}][${expression.key.accept(this)}]` } visitSingleEvaluation(expression: nodes.SingleEvaluation): string { - if (this.#singleEval.has(expression.id)) { - return `#${expression.id}` + const [id, isNew] = this.#singleEval.forSymbol(expression.id) + if (!isNew) { + return `#${id}` } - this.#singleEval.add(expression.id) - return `(#${expression.id} = ${expression.source.accept(this)})` + return `(#${id} = ${expression.source.accept(this)})` } visitReinterpretCast(expression: nodes.ReinterpretCast): string { const target = expression.expr.accept(this) @@ -319,6 +320,10 @@ export class ToCodeVisitor '}', ] } + visitEmit(expression: Emit): string { + throw new TodoError('Method not implemented.', { sourceLocation: expression.sourceLocation }) + } + visitContractMethod(statement: nodes.ContractMethod): string[] { const prefix = statement.cref.id === this.currentContract.at(-1)?.id ? '' : `${statement.cref.className}::` return [`${prefix}${statement.memberName}(): ${statement.returnType}`, '{', ...indent(statement.body.accept(this)), '}', ''] diff --git a/src/awst/util.ts b/src/awst/util.ts index 40c754b9..c7feee0c 100644 --- a/src/awst/util.ts +++ b/src/awst/util.ts @@ -4,3 +4,17 @@ import { BoolConstant, BytesConstant, IntegerConstant, StringConstant } from './ export function isConstant(expr: Expression): expr is Constant { return expr instanceof StringConstant || expr instanceof BytesConstant || expr instanceof IntegerConstant || expr instanceof BoolConstant } + +export class SymbolToNumber { + #symbols = new Map() + + forSymbol(sym: symbol): [number, boolean] { + let val = this.#symbols.get(sym) + if (val !== undefined) { + return [val, false] + } + val = this.#symbols.size + this.#symbols.set(sym, val) + return [val, true] + } +} diff --git a/src/awst/wtypes.ts b/src/awst/wtypes.ts index 90f15146..0c7bb00f 100644 --- a/src/awst/wtypes.ts +++ b/src/awst/wtypes.ts @@ -158,10 +158,11 @@ export namespace wtypes { } toString(): string { + const displayName = this.name.split('::').at(-1) ?? this.name if (this.names) { - return `${this.name === 'Anonymous' ? '' : this.name}{ ${this.names.map((n, i) => `${n}: ${this.types[i]}`).join(', ')} }` + return `${displayName}{ ${this.names.map((n, i) => `${n}: ${this.types[i]}`).join(', ')} }` } - return `${this.immutable ? 'readonly' : ''}${this.name ?? ''}[${this.types.join(', ')}]` + return `${this.immutable ? 'readonly' : ''}${displayName}[${this.types.join(', ')}]` } } export class WArray extends WType { diff --git a/src/awst_build/arc4-util.ts b/src/awst_build/arc4-util.ts index 19bc04cd..090db561 100644 --- a/src/awst_build/arc4-util.ts +++ b/src/awst_build/arc4-util.ts @@ -75,7 +75,9 @@ export function getFunctionTypes(ptype: FunctionPType, sourceLocation: SourceLoc if ('output' in result) { logger.error(sourceLocation, 'for compatibility with ARC-32, ARC-4 methods cannot have an argument named output') } + result['output'] = ptype.returnType + return result } diff --git a/src/awst_build/ast-visitors/contract-method-visitor.ts b/src/awst_build/ast-visitors/contract-method-visitor.ts index 01840bbc..40f0a45d 100644 --- a/src/awst_build/ast-visitors/contract-method-visitor.ts +++ b/src/awst_build/ast-visitors/contract-method-visitor.ts @@ -167,7 +167,6 @@ export class ContractMethodVisitor extends ContractMethodBaseVisitor { return new ARC4ABIMethodConfig({ sourceLocation: methodLocation, allowedCompletionTypes: [OnCompletionAction.NoOp], - create: ARC4CreateOption.Disallow, name: functionType.name, readonly: false, diff --git a/src/awst_build/eb/literal/object-literal-expression-builder.ts b/src/awst_build/eb/literal/object-literal-expression-builder.ts index dbcf1723..e2204a90 100644 --- a/src/awst_build/eb/literal/object-literal-expression-builder.ts +++ b/src/awst_build/eb/literal/object-literal-expression-builder.ts @@ -74,7 +74,7 @@ export class ObjectLiteralExpressionBuilder extends LiteralExpressionBuilder { // Resolve this object to a tuple using declared order but using the target property types. // This will resolve numeric literals to algo-ts types if available const tempType = new ObjectPType({ - name: undefined, + isAnonymous: true, properties: Object.fromEntries(this.ptype.orderedProperties().map(([p]) => [p, ptype.getPropertyType(p)] as const)), }) diff --git a/src/awst_build/ptypes/index.ts b/src/awst_build/ptypes/index.ts index 4e0d9aa3..094b2798 100644 --- a/src/awst_build/ptypes/index.ts +++ b/src/awst_build/ptypes/index.ts @@ -496,7 +496,15 @@ export class FunctionPType extends PType { super() this.name = props.name this.module = props.module - this.returnType = props.returnType + if (props.returnType instanceof ObjectPType && props.returnType.isAnonymous) { + this.returnType = new ObjectPType({ + name: `${props.name}Result`, + module: props.module, + properties: props.returnType.properties, + }) + } else { + this.returnType = props.returnType + } this.parameters = props.parameters } } @@ -608,24 +616,30 @@ export class ArrayPType extends TransientType { } } +type ObjectPTypeArgs = + | { module: string; name: string; properties: Record; isAnonymous?: false } + | { module?: undefined; name?: undefined; properties: Record; isAnonymous: true } + export class ObjectPType extends PType { readonly name: string readonly module: string readonly properties: Record readonly singleton = false + readonly isAnonymous: boolean - constructor(props: { module?: string; name?: string; properties: Record }) { + constructor(props: ObjectPTypeArgs) { super() this.name = props.name ?? '' this.module = props.module ?? '' this.properties = props.properties + this.isAnonymous = props.isAnonymous ?? false } static anonymous(props: Record | Array<[string, PType]>) { const properties = Array.isArray(props) ? Object.fromEntries(props) : props return new ObjectPType({ - name: 'Anonymous', properties, + isAnonymous: true, }) } @@ -640,7 +654,7 @@ export class ObjectPType extends PType { tupleNames.push(propName) } return new wtypes.WTuple({ - name: this.name, + name: this.fullName, names: tupleNames, types: tupleTypes, immutable: true, @@ -648,7 +662,7 @@ export class ObjectPType extends PType { } orderedProperties() { - return Object.entries(this.properties) //.toSorted(sortBy(([key]) => key)) + return Object.entries(this.properties) } getPropertyType(name: string): PType { diff --git a/tests/approvals.spec.ts b/tests/approvals.spec.ts index 7ee415f5..bcad0395 100644 --- a/tests/approvals.spec.ts +++ b/tests/approvals.spec.ts @@ -50,10 +50,10 @@ describe('Approvals', () => { }) it('There should be no differences to committed changes', () => { - // Run git add to force line ending changes - sync('git', ['add', '.'], { - stdio: 'inherit', - }) + // // Run git add to force line ending changes + // sync('git', ['add', '.'], { + // stdio: 'inherit', + // }) const result = sync('git', ['status', '--porcelain'], { stdio: 'pipe', }) diff --git a/tests/approvals/named-types.algo.ts b/tests/approvals/named-types.algo.ts index 1bb387d8..c7c6328e 100644 --- a/tests/approvals/named-types.algo.ts +++ b/tests/approvals/named-types.algo.ts @@ -1,5 +1,5 @@ import type { uint64 } from '@algorandfoundation/algorand-typescript' -import { Contract, Uint64 } from '@algorandfoundation/algorand-typescript' +import { assertMatch, Contract, Uint64 } from '@algorandfoundation/algorand-typescript' type XY = { x: uint64 @@ -11,13 +11,6 @@ type YX = { x: uint64 } -/** - * In TypeScript, objects with the same properties are considered equal regardless of declaration order however puya-ts - * should respect the declaration order when encoding an object as an ARC4 tuple. Ie. XY should be assignable to YX but - * when encoded as an ARC4 tuple they should be encoded as [X, Y] and [Y, X] respectively. - * - * TODO: This is not currently the case. - */ export class MyContract extends Contract { public getXY(): XY { return { @@ -40,7 +33,9 @@ export class MyContract extends Contract { } } - public test(x: XY, y: YX) {} + public test(x: XY, y: YX) { + assertMatch(x, { ...y }) + } public testing() { const a = this.getXY() diff --git a/tests/approvals/out/accounts/AccountsContract.approval.teal b/tests/approvals/out/accounts/AccountsContract.approval.teal index 955d5985..7ac01bc5 100644 --- a/tests/approvals/out/accounts/AccountsContract.approval.teal +++ b/tests/approvals/out/accounts/AccountsContract.approval.teal @@ -1,31 +1,49 @@ #pragma version 10 tests/approvals/accounts.algo.ts::AccountsContract.approvalProgram: - intcblock 0 1 + intcblock 0 93 1 + txn ApplicationID + bnz main_after_if_else@2 + callsub constructor + +main_after_if_else@2: callsub __puya_arc4_router__ return +// tests/approvals/accounts.algo.ts::AccountsContract.constructor() -> void: +constructor: + // tests/approvals/accounts.algo.ts:4 + // export class AccountsContract extends Contract { + proto 0 0 + retsub + + // tests/approvals/accounts.algo.ts::AccountsContract.__puya_arc4_router__() -> uint64: __puya_arc4_router__: // tests/approvals/accounts.algo.ts:4 // export class AccountsContract extends Contract { proto 0 1 txn NumAppArgs + intc_0 // 0 + != bz __puya_arc4_router___bare_routing@5 - pushbytes 0xdfe9a035 // method "getAccountInfo(account,asset)(byte[],uint64,uint64,byte[],uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64,bool,bool)" txna ApplicationArgs 0 + pushbytes 0xdfe9a035 // method "getAccountInfo(account,asset)(byte[],uint64,uint64,byte[],uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64,uint64,bool,bool)" + swap match __puya_arc4_router___getAccountInfo_route@2 - intc_0 // 0 - retsub + b __puya_arc4_router___switch_case_default@3 __puya_arc4_router___getAccountInfo_route@2: // tests/approvals/accounts.algo.ts:5 // public getAccountInfo(account: Account, asset: Asset) { txn OnCompletion - ! + intc_0 // NoOp + == assert // OnCompletion is not NoOp txn ApplicationID + intc_0 // 0 + != assert // can only call when not creating // tests/approvals/accounts.algo.ts:4 // export class AccountsContract extends Contract { @@ -38,88 +56,114 @@ __puya_arc4_router___getAccountInfo_route@2: // tests/approvals/accounts.algo.ts:5 // public getAccountInfo(account: Account, asset: Asset) { callsub getAccountInfo - dig 14 + cover 14 + cover 13 + cover 12 + cover 11 + cover 10 + cover 9 + cover 8 + cover 7 + cover 6 + cover 5 + cover 4 + cover 3 + cover 2 + swap + dup len itob extract 6 2 - uncover 15 + swap concat - uncover 14 + cover 11 itob - uncover 14 + cover 12 itob - dig 14 + cover 12 + dup len itob extract 6 2 - uncover 15 + swap concat - uncover 14 + cover 14 itob - uncover 14 + cover 9 itob - uncover 14 + cover 10 itob - uncover 14 + cover 11 itob - uncover 14 + cover 11 itob - uncover 14 + cover 12 itob - uncover 14 + cover 12 itob - uncover 14 + cover 12 itob - uncover 14 + cover 12 + swap itob + cover 12 pushbytes 0x00 intc_0 // 0 - uncover 16 + uncover 9 setbit + cover 11 pushbytes 0x00 intc_0 // 0 - uncover 16 + uncover 15 setbit - dig 14 + cover 9 + intc_1 // 93 + itob + extract 6 2 + pushbytes 0x + swap + concat + dig 1 len - pushint 93 // 93 + intc_1 // 93 + - pushbytes 0x005d - uncover 15 + swap + uncover 4 concat - uncover 14 + uncover 5 concat swap itob extract 6 2 concat - uncover 11 + uncover 2 concat - uncover 10 + uncover 2 concat - uncover 9 + uncover 2 concat - uncover 8 + uncover 2 concat - uncover 7 + uncover 2 concat - uncover 6 + uncover 2 concat - uncover 5 + uncover 3 + concat + uncover 3 concat uncover 4 concat uncover 3 concat uncover 2 - concat - swap intc_0 // 0 getbit - pushint 737 // 737 swap - setbit + pushint 737 // 737 uncover 2 + setbit + swap concat swap concat @@ -127,20 +171,34 @@ __puya_arc4_router___getAccountInfo_route@2: swap concat log - intc_1 // 1 + intc_2 // 1 retsub +__puya_arc4_router___switch_case_default@3: + b __puya_arc4_router___after_if_else@9 + __puya_arc4_router___bare_routing@5: // tests/approvals/accounts.algo.ts:4 // export class AccountsContract extends Contract { txn OnCompletion - bnz __puya_arc4_router___after_if_else@9 + intc_0 // 0 + swap + match __puya_arc4_router_____algots__.defaultCreate@6 + b __puya_arc4_router___switch_case_default@7 + +__puya_arc4_router_____algots__.defaultCreate@6: + // tests/approvals/accounts.algo.ts:4 + // export class AccountsContract extends Contract { txn ApplicationID - ! + intc_0 // 0 + == assert // can only call when creating - intc_1 // 1 + callsub __algots__.defaultCreate + intc_2 // 1 retsub +__puya_arc4_router___switch_case_default@7: + __puya_arc4_router___after_if_else@9: // tests/approvals/accounts.algo.ts:4 // export class AccountsContract extends Contract { @@ -157,91 +215,1121 @@ getAccountInfo: // balance: account.balance, frame_dig -2 acct_params_get AcctBalance + bury 1 assert // account funded // tests/approvals/accounts.algo.ts:9 // minBalance: account.minBalance, frame_dig -2 acct_params_get AcctMinBalance + bury 1 assert // account funded // tests/approvals/accounts.algo.ts:10 // authAddress: account.authAddress.bytes, frame_dig -2 acct_params_get AcctAuthAddr + bury 1 assert // account funded // tests/approvals/accounts.algo.ts:11 // totalNumUint: account.totalNumUint, frame_dig -2 acct_params_get AcctTotalNumUint + bury 1 assert // account funded // tests/approvals/accounts.algo.ts:12 // totalNumByteSlice: account.totalNumByteSlice, frame_dig -2 acct_params_get AcctTotalNumByteSlice + bury 1 assert // account funded // tests/approvals/accounts.algo.ts:13 // totalExtraAppPages: account.totalExtraAppPages, frame_dig -2 acct_params_get AcctTotalExtraAppPages + bury 1 assert // account funded // tests/approvals/accounts.algo.ts:14 // totalAppsCreated: account.totalAppsCreated, frame_dig -2 acct_params_get AcctTotalAppsCreated + bury 1 assert // account funded // tests/approvals/accounts.algo.ts:15 // totalAppsOptedIn: account.totalAppsOptedIn, frame_dig -2 acct_params_get AcctTotalAppsOptedIn + bury 1 assert // account funded // tests/approvals/accounts.algo.ts:16 // totalAssetsCreated: account.totalAssetsCreated, frame_dig -2 acct_params_get AcctTotalAssetsCreated + bury 1 assert // account funded // tests/approvals/accounts.algo.ts:17 // totalAssets: account.totalAssets, frame_dig -2 acct_params_get AcctTotalAssets + bury 1 assert // account funded // tests/approvals/accounts.algo.ts:18 // totalBoxes: account.totalBoxes, frame_dig -2 acct_params_get AcctTotalBoxes + bury 1 assert // account funded // tests/approvals/accounts.algo.ts:19 // totalBoxBytes: account.totalBoxBytes, frame_dig -2 acct_params_get AcctTotalBoxBytes + bury 1 assert // account funded - // tests/approvals/accounts.algo.ts:20 - // isOptInApp: account.isOptedIn(Global.currentApplicationId), + // tests/approvals/accounts.algo.ts:8 + // balance: account.balance, frame_dig -2 - global CurrentApplicationID - app_opted_in - // tests/approvals/accounts.algo.ts:21 - // isOptInAsset: account.isOptedIn(asset), + acct_params_get AcctBalance + assert // account funded + // tests/approvals/accounts.algo.ts:9 + // minBalance: account.minBalance, frame_dig -2 - frame_dig -1 - asset_holding_get AssetBalance + acct_params_get AcctMinBalance bury 1 - // tests/approvals/accounts.algo.ts:6-22 - // return { - // bytes: account.bytes, - // balance: account.balance, - // minBalance: account.minBalance, - // authAddress: account.authAddress.bytes, - // totalNumUint: account.totalNumUint, - // totalNumByteSlice: account.totalNumByteSlice, - // totalExtraAppPages: account.totalExtraAppPages, - // totalAppsCreated: account.totalAppsCreated, - // totalAppsOptedIn: account.totalAppsOptedIn, - // totalAssetsCreated: account.totalAssetsCreated, - // totalAssets: account.totalAssets, - // totalBoxes: account.totalBoxes, - // totalBoxBytes: account.totalBoxBytes, - // isOptInApp: account.isOptedIn(Global.currentApplicationId), - // isOptInAsset: account.isOptedIn(asset), - // } + assert // account funded + // tests/approvals/accounts.algo.ts:10 + // authAddress: account.authAddress.bytes, frame_dig -2 - cover 14 + acct_params_get AcctAuthAddr + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:11 + // totalNumUint: account.totalNumUint, + frame_dig -2 + acct_params_get AcctTotalNumUint + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:12 + // totalNumByteSlice: account.totalNumByteSlice, + frame_dig -2 + acct_params_get AcctTotalNumByteSlice + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:13 + // totalExtraAppPages: account.totalExtraAppPages, + frame_dig -2 + acct_params_get AcctTotalExtraAppPages + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:14 + // totalAppsCreated: account.totalAppsCreated, + frame_dig -2 + acct_params_get AcctTotalAppsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:15 + // totalAppsOptedIn: account.totalAppsOptedIn, + frame_dig -2 + acct_params_get AcctTotalAppsOptedIn + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:16 + // totalAssetsCreated: account.totalAssetsCreated, + frame_dig -2 + acct_params_get AcctTotalAssetsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:17 + // totalAssets: account.totalAssets, + frame_dig -2 + acct_params_get AcctTotalAssets + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:18 + // totalBoxes: account.totalBoxes, + frame_dig -2 + acct_params_get AcctTotalBoxes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:19 + // totalBoxBytes: account.totalBoxBytes, + frame_dig -2 + acct_params_get AcctTotalBoxBytes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:8 + // balance: account.balance, + frame_dig -2 + acct_params_get AcctBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:9 + // minBalance: account.minBalance, + frame_dig -2 + acct_params_get AcctMinBalance + assert // account funded + // tests/approvals/accounts.algo.ts:10 + // authAddress: account.authAddress.bytes, + frame_dig -2 + acct_params_get AcctAuthAddr + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:11 + // totalNumUint: account.totalNumUint, + frame_dig -2 + acct_params_get AcctTotalNumUint + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:12 + // totalNumByteSlice: account.totalNumByteSlice, + frame_dig -2 + acct_params_get AcctTotalNumByteSlice + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:13 + // totalExtraAppPages: account.totalExtraAppPages, + frame_dig -2 + acct_params_get AcctTotalExtraAppPages + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:14 + // totalAppsCreated: account.totalAppsCreated, + frame_dig -2 + acct_params_get AcctTotalAppsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:15 + // totalAppsOptedIn: account.totalAppsOptedIn, + frame_dig -2 + acct_params_get AcctTotalAppsOptedIn + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:16 + // totalAssetsCreated: account.totalAssetsCreated, + frame_dig -2 + acct_params_get AcctTotalAssetsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:17 + // totalAssets: account.totalAssets, + frame_dig -2 + acct_params_get AcctTotalAssets + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:18 + // totalBoxes: account.totalBoxes, + frame_dig -2 + acct_params_get AcctTotalBoxes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:19 + // totalBoxBytes: account.totalBoxBytes, + frame_dig -2 + acct_params_get AcctTotalBoxBytes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:8 + // balance: account.balance, + frame_dig -2 + acct_params_get AcctBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:9 + // minBalance: account.minBalance, + frame_dig -2 + acct_params_get AcctMinBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:10 + // authAddress: account.authAddress.bytes, + frame_dig -2 + acct_params_get AcctAuthAddr + assert // account funded + // tests/approvals/accounts.algo.ts:11 + // totalNumUint: account.totalNumUint, + frame_dig -2 + acct_params_get AcctTotalNumUint + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:12 + // totalNumByteSlice: account.totalNumByteSlice, + frame_dig -2 + acct_params_get AcctTotalNumByteSlice + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:13 + // totalExtraAppPages: account.totalExtraAppPages, + frame_dig -2 + acct_params_get AcctTotalExtraAppPages + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:14 + // totalAppsCreated: account.totalAppsCreated, + frame_dig -2 + acct_params_get AcctTotalAppsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:15 + // totalAppsOptedIn: account.totalAppsOptedIn, + frame_dig -2 + acct_params_get AcctTotalAppsOptedIn + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:16 + // totalAssetsCreated: account.totalAssetsCreated, + frame_dig -2 + acct_params_get AcctTotalAssetsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:17 + // totalAssets: account.totalAssets, + frame_dig -2 + acct_params_get AcctTotalAssets + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:18 + // totalBoxes: account.totalBoxes, + frame_dig -2 + acct_params_get AcctTotalBoxes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:19 + // totalBoxBytes: account.totalBoxBytes, + frame_dig -2 + acct_params_get AcctTotalBoxBytes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:8 + // balance: account.balance, + frame_dig -2 + acct_params_get AcctBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:9 + // minBalance: account.minBalance, + frame_dig -2 + acct_params_get AcctMinBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:10 + // authAddress: account.authAddress.bytes, + frame_dig -2 + acct_params_get AcctAuthAddr + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:11 + // totalNumUint: account.totalNumUint, + frame_dig -2 + acct_params_get AcctTotalNumUint + assert // account funded + // tests/approvals/accounts.algo.ts:12 + // totalNumByteSlice: account.totalNumByteSlice, + frame_dig -2 + acct_params_get AcctTotalNumByteSlice + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:13 + // totalExtraAppPages: account.totalExtraAppPages, + frame_dig -2 + acct_params_get AcctTotalExtraAppPages + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:14 + // totalAppsCreated: account.totalAppsCreated, + frame_dig -2 + acct_params_get AcctTotalAppsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:15 + // totalAppsOptedIn: account.totalAppsOptedIn, + frame_dig -2 + acct_params_get AcctTotalAppsOptedIn + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:16 + // totalAssetsCreated: account.totalAssetsCreated, + frame_dig -2 + acct_params_get AcctTotalAssetsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:17 + // totalAssets: account.totalAssets, + frame_dig -2 + acct_params_get AcctTotalAssets + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:18 + // totalBoxes: account.totalBoxes, + frame_dig -2 + acct_params_get AcctTotalBoxes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:19 + // totalBoxBytes: account.totalBoxBytes, + frame_dig -2 + acct_params_get AcctTotalBoxBytes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:8 + // balance: account.balance, + frame_dig -2 + acct_params_get AcctBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:9 + // minBalance: account.minBalance, + frame_dig -2 + acct_params_get AcctMinBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:10 + // authAddress: account.authAddress.bytes, + frame_dig -2 + acct_params_get AcctAuthAddr + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:11 + // totalNumUint: account.totalNumUint, + frame_dig -2 + acct_params_get AcctTotalNumUint + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:12 + // totalNumByteSlice: account.totalNumByteSlice, + frame_dig -2 + acct_params_get AcctTotalNumByteSlice + assert // account funded + // tests/approvals/accounts.algo.ts:13 + // totalExtraAppPages: account.totalExtraAppPages, + frame_dig -2 + acct_params_get AcctTotalExtraAppPages + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:14 + // totalAppsCreated: account.totalAppsCreated, + frame_dig -2 + acct_params_get AcctTotalAppsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:15 + // totalAppsOptedIn: account.totalAppsOptedIn, + frame_dig -2 + acct_params_get AcctTotalAppsOptedIn + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:16 + // totalAssetsCreated: account.totalAssetsCreated, + frame_dig -2 + acct_params_get AcctTotalAssetsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:17 + // totalAssets: account.totalAssets, + frame_dig -2 + acct_params_get AcctTotalAssets + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:18 + // totalBoxes: account.totalBoxes, + frame_dig -2 + acct_params_get AcctTotalBoxes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:19 + // totalBoxBytes: account.totalBoxBytes, + frame_dig -2 + acct_params_get AcctTotalBoxBytes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:8 + // balance: account.balance, + frame_dig -2 + acct_params_get AcctBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:9 + // minBalance: account.minBalance, + frame_dig -2 + acct_params_get AcctMinBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:10 + // authAddress: account.authAddress.bytes, + frame_dig -2 + acct_params_get AcctAuthAddr + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:11 + // totalNumUint: account.totalNumUint, + frame_dig -2 + acct_params_get AcctTotalNumUint + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:12 + // totalNumByteSlice: account.totalNumByteSlice, + frame_dig -2 + acct_params_get AcctTotalNumByteSlice + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:13 + // totalExtraAppPages: account.totalExtraAppPages, + frame_dig -2 + acct_params_get AcctTotalExtraAppPages + assert // account funded + // tests/approvals/accounts.algo.ts:14 + // totalAppsCreated: account.totalAppsCreated, + frame_dig -2 + acct_params_get AcctTotalAppsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:15 + // totalAppsOptedIn: account.totalAppsOptedIn, + frame_dig -2 + acct_params_get AcctTotalAppsOptedIn + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:16 + // totalAssetsCreated: account.totalAssetsCreated, + frame_dig -2 + acct_params_get AcctTotalAssetsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:17 + // totalAssets: account.totalAssets, + frame_dig -2 + acct_params_get AcctTotalAssets + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:18 + // totalBoxes: account.totalBoxes, + frame_dig -2 + acct_params_get AcctTotalBoxes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:19 + // totalBoxBytes: account.totalBoxBytes, + frame_dig -2 + acct_params_get AcctTotalBoxBytes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:8 + // balance: account.balance, + frame_dig -2 + acct_params_get AcctBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:9 + // minBalance: account.minBalance, + frame_dig -2 + acct_params_get AcctMinBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:10 + // authAddress: account.authAddress.bytes, + frame_dig -2 + acct_params_get AcctAuthAddr + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:11 + // totalNumUint: account.totalNumUint, + frame_dig -2 + acct_params_get AcctTotalNumUint + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:12 + // totalNumByteSlice: account.totalNumByteSlice, + frame_dig -2 + acct_params_get AcctTotalNumByteSlice + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:13 + // totalExtraAppPages: account.totalExtraAppPages, + frame_dig -2 + acct_params_get AcctTotalExtraAppPages + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:14 + // totalAppsCreated: account.totalAppsCreated, + frame_dig -2 + acct_params_get AcctTotalAppsCreated + assert // account funded + // tests/approvals/accounts.algo.ts:15 + // totalAppsOptedIn: account.totalAppsOptedIn, + frame_dig -2 + acct_params_get AcctTotalAppsOptedIn + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:16 + // totalAssetsCreated: account.totalAssetsCreated, + frame_dig -2 + acct_params_get AcctTotalAssetsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:17 + // totalAssets: account.totalAssets, + frame_dig -2 + acct_params_get AcctTotalAssets + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:18 + // totalBoxes: account.totalBoxes, + frame_dig -2 + acct_params_get AcctTotalBoxes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:19 + // totalBoxBytes: account.totalBoxBytes, + frame_dig -2 + acct_params_get AcctTotalBoxBytes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:8 + // balance: account.balance, + frame_dig -2 + acct_params_get AcctBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:9 + // minBalance: account.minBalance, + frame_dig -2 + acct_params_get AcctMinBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:10 + // authAddress: account.authAddress.bytes, + frame_dig -2 + acct_params_get AcctAuthAddr + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:11 + // totalNumUint: account.totalNumUint, + frame_dig -2 + acct_params_get AcctTotalNumUint + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:12 + // totalNumByteSlice: account.totalNumByteSlice, + frame_dig -2 + acct_params_get AcctTotalNumByteSlice + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:13 + // totalExtraAppPages: account.totalExtraAppPages, + frame_dig -2 + acct_params_get AcctTotalExtraAppPages + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:14 + // totalAppsCreated: account.totalAppsCreated, + frame_dig -2 + acct_params_get AcctTotalAppsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:15 + // totalAppsOptedIn: account.totalAppsOptedIn, + frame_dig -2 + acct_params_get AcctTotalAppsOptedIn + assert // account funded + // tests/approvals/accounts.algo.ts:16 + // totalAssetsCreated: account.totalAssetsCreated, + frame_dig -2 + acct_params_get AcctTotalAssetsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:17 + // totalAssets: account.totalAssets, + frame_dig -2 + acct_params_get AcctTotalAssets + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:18 + // totalBoxes: account.totalBoxes, + frame_dig -2 + acct_params_get AcctTotalBoxes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:19 + // totalBoxBytes: account.totalBoxBytes, + frame_dig -2 + acct_params_get AcctTotalBoxBytes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:8 + // balance: account.balance, + frame_dig -2 + acct_params_get AcctBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:9 + // minBalance: account.minBalance, + frame_dig -2 + acct_params_get AcctMinBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:10 + // authAddress: account.authAddress.bytes, + frame_dig -2 + acct_params_get AcctAuthAddr + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:11 + // totalNumUint: account.totalNumUint, + frame_dig -2 + acct_params_get AcctTotalNumUint + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:12 + // totalNumByteSlice: account.totalNumByteSlice, + frame_dig -2 + acct_params_get AcctTotalNumByteSlice + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:13 + // totalExtraAppPages: account.totalExtraAppPages, + frame_dig -2 + acct_params_get AcctTotalExtraAppPages + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:14 + // totalAppsCreated: account.totalAppsCreated, + frame_dig -2 + acct_params_get AcctTotalAppsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:15 + // totalAppsOptedIn: account.totalAppsOptedIn, + frame_dig -2 + acct_params_get AcctTotalAppsOptedIn + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:16 + // totalAssetsCreated: account.totalAssetsCreated, + frame_dig -2 + acct_params_get AcctTotalAssetsCreated + assert // account funded + // tests/approvals/accounts.algo.ts:17 + // totalAssets: account.totalAssets, + frame_dig -2 + acct_params_get AcctTotalAssets + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:18 + // totalBoxes: account.totalBoxes, + frame_dig -2 + acct_params_get AcctTotalBoxes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:19 + // totalBoxBytes: account.totalBoxBytes, + frame_dig -2 + acct_params_get AcctTotalBoxBytes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:8 + // balance: account.balance, + frame_dig -2 + acct_params_get AcctBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:9 + // minBalance: account.minBalance, + frame_dig -2 + acct_params_get AcctMinBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:10 + // authAddress: account.authAddress.bytes, + frame_dig -2 + acct_params_get AcctAuthAddr + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:11 + // totalNumUint: account.totalNumUint, + frame_dig -2 + acct_params_get AcctTotalNumUint + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:12 + // totalNumByteSlice: account.totalNumByteSlice, + frame_dig -2 + acct_params_get AcctTotalNumByteSlice + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:13 + // totalExtraAppPages: account.totalExtraAppPages, + frame_dig -2 + acct_params_get AcctTotalExtraAppPages + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:14 + // totalAppsCreated: account.totalAppsCreated, + frame_dig -2 + acct_params_get AcctTotalAppsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:15 + // totalAppsOptedIn: account.totalAppsOptedIn, + frame_dig -2 + acct_params_get AcctTotalAppsOptedIn + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:16 + // totalAssetsCreated: account.totalAssetsCreated, + frame_dig -2 + acct_params_get AcctTotalAssetsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:17 + // totalAssets: account.totalAssets, + frame_dig -2 + acct_params_get AcctTotalAssets + assert // account funded + // tests/approvals/accounts.algo.ts:18 + // totalBoxes: account.totalBoxes, + frame_dig -2 + acct_params_get AcctTotalBoxes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:19 + // totalBoxBytes: account.totalBoxBytes, + frame_dig -2 + acct_params_get AcctTotalBoxBytes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:8 + // balance: account.balance, + frame_dig -2 + acct_params_get AcctBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:9 + // minBalance: account.minBalance, + frame_dig -2 + acct_params_get AcctMinBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:10 + // authAddress: account.authAddress.bytes, + frame_dig -2 + acct_params_get AcctAuthAddr + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:11 + // totalNumUint: account.totalNumUint, + frame_dig -2 + acct_params_get AcctTotalNumUint + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:12 + // totalNumByteSlice: account.totalNumByteSlice, + frame_dig -2 + acct_params_get AcctTotalNumByteSlice + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:13 + // totalExtraAppPages: account.totalExtraAppPages, + frame_dig -2 + acct_params_get AcctTotalExtraAppPages + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:14 + // totalAppsCreated: account.totalAppsCreated, + frame_dig -2 + acct_params_get AcctTotalAppsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:15 + // totalAppsOptedIn: account.totalAppsOptedIn, + frame_dig -2 + acct_params_get AcctTotalAppsOptedIn + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:16 + // totalAssetsCreated: account.totalAssetsCreated, + frame_dig -2 + acct_params_get AcctTotalAssetsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:17 + // totalAssets: account.totalAssets, + frame_dig -2 + acct_params_get AcctTotalAssets + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:18 + // totalBoxes: account.totalBoxes, + frame_dig -2 + acct_params_get AcctTotalBoxes + assert // account funded + // tests/approvals/accounts.algo.ts:19 + // totalBoxBytes: account.totalBoxBytes, + frame_dig -2 + acct_params_get AcctTotalBoxBytes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:8 + // balance: account.balance, + frame_dig -2 + acct_params_get AcctBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:9 + // minBalance: account.minBalance, + frame_dig -2 + acct_params_get AcctMinBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:10 + // authAddress: account.authAddress.bytes, + frame_dig -2 + acct_params_get AcctAuthAddr + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:11 + // totalNumUint: account.totalNumUint, + frame_dig -2 + acct_params_get AcctTotalNumUint + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:12 + // totalNumByteSlice: account.totalNumByteSlice, + frame_dig -2 + acct_params_get AcctTotalNumByteSlice + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:13 + // totalExtraAppPages: account.totalExtraAppPages, + frame_dig -2 + acct_params_get AcctTotalExtraAppPages + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:14 + // totalAppsCreated: account.totalAppsCreated, + frame_dig -2 + acct_params_get AcctTotalAppsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:15 + // totalAppsOptedIn: account.totalAppsOptedIn, + frame_dig -2 + acct_params_get AcctTotalAppsOptedIn + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:16 + // totalAssetsCreated: account.totalAssetsCreated, + frame_dig -2 + acct_params_get AcctTotalAssetsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:17 + // totalAssets: account.totalAssets, + frame_dig -2 + acct_params_get AcctTotalAssets + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:18 + // totalBoxes: account.totalBoxes, + frame_dig -2 + acct_params_get AcctTotalBoxes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:19 + // totalBoxBytes: account.totalBoxBytes, + frame_dig -2 + acct_params_get AcctTotalBoxBytes + assert // account funded + // tests/approvals/accounts.algo.ts:8 + // balance: account.balance, + frame_dig -2 + acct_params_get AcctBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:9 + // minBalance: account.minBalance, + frame_dig -2 + acct_params_get AcctMinBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:10 + // authAddress: account.authAddress.bytes, + frame_dig -2 + acct_params_get AcctAuthAddr + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:11 + // totalNumUint: account.totalNumUint, + frame_dig -2 + acct_params_get AcctTotalNumUint + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:12 + // totalNumByteSlice: account.totalNumByteSlice, + frame_dig -2 + acct_params_get AcctTotalNumByteSlice + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:13 + // totalExtraAppPages: account.totalExtraAppPages, + frame_dig -2 + acct_params_get AcctTotalExtraAppPages + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:14 + // totalAppsCreated: account.totalAppsCreated, + frame_dig -2 + acct_params_get AcctTotalAppsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:15 + // totalAppsOptedIn: account.totalAppsOptedIn, + frame_dig -2 + acct_params_get AcctTotalAppsOptedIn + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:16 + // totalAssetsCreated: account.totalAssetsCreated, + frame_dig -2 + acct_params_get AcctTotalAssetsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:17 + // totalAssets: account.totalAssets, + frame_dig -2 + acct_params_get AcctTotalAssets + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:18 + // totalBoxes: account.totalBoxes, + frame_dig -2 + acct_params_get AcctTotalBoxes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:19 + // totalBoxBytes: account.totalBoxBytes, + frame_dig -2 + acct_params_get AcctTotalBoxBytes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:20 + // isOptInApp: account.isOptedIn(Global.currentApplicationId), + global CurrentApplicationID + frame_dig -2 + swap + app_opted_in + // tests/approvals/accounts.algo.ts:8 + // balance: account.balance, + frame_dig -2 + acct_params_get AcctBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:9 + // minBalance: account.minBalance, + frame_dig -2 + acct_params_get AcctMinBalance + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:10 + // authAddress: account.authAddress.bytes, + frame_dig -2 + acct_params_get AcctAuthAddr + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:11 + // totalNumUint: account.totalNumUint, + frame_dig -2 + acct_params_get AcctTotalNumUint + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:12 + // totalNumByteSlice: account.totalNumByteSlice, + frame_dig -2 + acct_params_get AcctTotalNumByteSlice + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:13 + // totalExtraAppPages: account.totalExtraAppPages, + frame_dig -2 + acct_params_get AcctTotalExtraAppPages + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:14 + // totalAppsCreated: account.totalAppsCreated, + frame_dig -2 + acct_params_get AcctTotalAppsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:15 + // totalAppsOptedIn: account.totalAppsOptedIn, + frame_dig -2 + acct_params_get AcctTotalAppsOptedIn + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:16 + // totalAssetsCreated: account.totalAssetsCreated, + frame_dig -2 + acct_params_get AcctTotalAssetsCreated + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:17 + // totalAssets: account.totalAssets, + frame_dig -2 + acct_params_get AcctTotalAssets + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:18 + // totalBoxes: account.totalBoxes, + frame_dig -2 + acct_params_get AcctTotalBoxes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:19 + // totalBoxBytes: account.totalBoxBytes, + frame_dig -2 + acct_params_get AcctTotalBoxBytes + bury 1 + assert // account funded + // tests/approvals/accounts.algo.ts:21 + // isOptInAsset: account.isOptedIn(asset), + frame_dig -2 + frame_dig -1 + asset_holding_get AssetBalance + bury 1 + // tests/approvals/accounts.algo.ts:6-22 + // return { + // bytes: account.bytes, + // balance: account.balance, + // minBalance: account.minBalance, + // authAddress: account.authAddress.bytes, + // totalNumUint: account.totalNumUint, + // totalNumByteSlice: account.totalNumByteSlice, + // totalExtraAppPages: account.totalExtraAppPages, + // totalAppsCreated: account.totalAppsCreated, + // totalAppsOptedIn: account.totalAppsOptedIn, + // totalAssetsCreated: account.totalAssetsCreated, + // totalAssets: account.totalAssets, + // totalBoxes: account.totalBoxes, + // totalBoxBytes: account.totalBoxBytes, + // isOptInApp: account.isOptedIn(Global.currentApplicationId), + // isOptInAsset: account.isOptedIn(asset), + // } + frame_dig -2 + uncover 14 + uncover 14 + uncover 14 + uncover 14 + uncover 14 + uncover 14 + uncover 14 + uncover 14 + uncover 14 + uncover 14 + uncover 14 + uncover 14 + uncover 14 + uncover 14 + retsub + + +// tests/approvals/accounts.algo.ts::AccountsContract.__algots__.defaultCreate() -> void: +__algots__.defaultCreate: + // tests/approvals/accounts.algo.ts:4 + // export class AccountsContract extends Contract { + proto 0 0 retsub diff --git a/tests/approvals/out/accounts/AccountsContract.arc32.json b/tests/approvals/out/accounts/AccountsContract.arc32.json index 4f4ed0fb..8985b083 100644 --- a/tests/approvals/out/accounts/AccountsContract.arc32.json +++ b/tests/approvals/out/accounts/AccountsContract.arc32.json @@ -6,7 +6,7 @@ }, "structs": { "output": { - "name": "Anonymous", + "name": "getAccountInfoResult", "elements": [ [ "bytes", @@ -74,7 +74,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgp0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo6QWNjb3VudHNDb250cmFjdC5hcHByb3ZhbFByb2dyYW06CiAgICBpbnRjYmxvY2sgMCAxCiAgICBjYWxsc3ViIF9fcHV5YV9hcmM0X3JvdXRlcl9fCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo6QWNjb3VudHNDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfXygpIC0+IHVpbnQ2NDoKX19wdXlhX2FyYzRfcm91dGVyX186CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHByb3RvIDAgMQogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IF9fcHV5YV9hcmM0X3JvdXRlcl9fX2JhcmVfcm91dGluZ0A1CiAgICBwdXNoYnl0ZXMgMHhkZmU5YTAzNSAvLyBtZXRob2QgImdldEFjY291bnRJbmZvKGFjY291bnQsYXNzZXQpKGJ5dGVbXSx1aW50NjQsdWludDY0LGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCxib29sLGJvb2wpIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggX19wdXlhX2FyYzRfcm91dGVyX19fZ2V0QWNjb3VudEluZm9fcm91dGVAMgogICAgaW50Y18wIC8vIDAKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fZ2V0QWNjb3VudEluZm9fcm91dGVAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyBnZXRBY2NvdW50SW5mbyhhY2NvdW50OiBBY2NvdW50LCBhc3NldDogQXNzZXQpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFjY291bnRzQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hcyBBY2NvdW50cwogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgYnRvaQogICAgdHhuYXMgQXNzZXRzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo1CiAgICAvLyBwdWJsaWMgZ2V0QWNjb3VudEluZm8oYWNjb3VudDogQWNjb3VudCwgYXNzZXQ6IEFzc2V0KSB7CiAgICBjYWxsc3ViIGdldEFjY291bnRJbmZvCiAgICBkaWcgMTQKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgMTUKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgdW5jb3ZlciAxNAogICAgaXRvYgogICAgZGlnIDE0CiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICB1bmNvdmVyIDE1CiAgICBjb25jYXQKICAgIHVuY292ZXIgMTQKICAgIGl0b2IKICAgIHVuY292ZXIgMTQKICAgIGl0b2IKICAgIHVuY292ZXIgMTQKICAgIGl0b2IKICAgIHVuY292ZXIgMTQKICAgIGl0b2IKICAgIHVuY292ZXIgMTQKICAgIGl0b2IKICAgIHVuY292ZXIgMTQKICAgIGl0b2IKICAgIHVuY292ZXIgMTQKICAgIGl0b2IKICAgIHVuY292ZXIgMTQKICAgIGl0b2IKICAgIHVuY292ZXIgMTQKICAgIGl0b2IKICAgIHB1c2hieXRlcyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAxNgogICAgc2V0Yml0CiAgICBwdXNoYnl0ZXMgMHgwMAogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgMTYKICAgIHNldGJpdAogICAgZGlnIDE0CiAgICBsZW4KICAgIHB1c2hpbnQgOTMgLy8gOTMKICAgICsKICAgIHB1c2hieXRlcyAweDAwNWQKICAgIHVuY292ZXIgMTUKICAgIGNvbmNhdAogICAgdW5jb3ZlciAxNAogICAgY29uY2F0CiAgICBzd2FwCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDExCiAgICBjb25jYXQKICAgIHVuY292ZXIgMTAKICAgIGNvbmNhdAogICAgdW5jb3ZlciA5CiAgICBjb25jYXQKICAgIHVuY292ZXIgOAogICAgY29uY2F0CiAgICB1bmNvdmVyIDcKICAgIGNvbmNhdAogICAgdW5jb3ZlciA2CiAgICBjb25jYXQKICAgIHVuY292ZXIgNQogICAgY29uY2F0CiAgICB1bmNvdmVyIDQKICAgIGNvbmNhdAogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBwdXNoaW50IDczNyAvLyA3MzcKICAgIHN3YXAKICAgIHNldGJpdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19iYXJlX3JvdXRpbmdANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgYm56IF9fcHV5YV9hcmM0X3JvdXRlcl9fX2FmdGVyX2lmX2Vsc2VAOQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGludGNfMSAvLyAxCiAgICByZXRzdWIKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX2FmdGVyX2lmX2Vsc2VAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjpBY2NvdW50c0NvbnRyYWN0LmdldEFjY291bnRJbmZvKGFjY291bnQ6IGJ5dGVzLCBhc3NldDogdWludDY0KSAtPiBieXRlcywgdWludDY0LCB1aW50NjQsIGJ5dGVzLCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NDoKZ2V0QWNjb3VudEluZm86CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo1CiAgICAvLyBwdWJsaWMgZ2V0QWNjb3VudEluZm8oYWNjb3VudDogQWNjb3VudCwgYXNzZXQ6IEFzc2V0KSB7CiAgICBwcm90byAyIDE1CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo4CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MjAKICAgIC8vIGlzT3B0SW5BcHA6IGFjY291bnQuaXNPcHRlZEluKEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZCksCiAgICBmcmFtZV9kaWcgLTIKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25JRAogICAgYXBwX29wdGVkX2luCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoyMQogICAgLy8gaXNPcHRJbkFzc2V0OiBhY2NvdW50LmlzT3B0ZWRJbihhc3NldCksCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCiAgICBidXJ5IDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjYtMjIKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIGJ5dGVzOiBhY2NvdW50LmJ5dGVzLAogICAgLy8gICBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICAvLyAgIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIC8vICAgYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICAvLyAgIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICAvLyAgIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgLy8gICB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgLy8gICB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICAvLyAgIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIC8vICAgdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIC8vICAgdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICAvLyAgIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIC8vICAgdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgLy8gICBpc09wdEluQXBwOiBhY2NvdW50LmlzT3B0ZWRJbihHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uSWQpLAogICAgLy8gICBpc09wdEluQXNzZXQ6IGFjY291bnQuaXNPcHRlZEluKGFzc2V0KSwKICAgIC8vIH0KICAgIGZyYW1lX2RpZyAtMgogICAgY292ZXIgMTQKICAgIHJldHN1Ygo=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgp0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo6QWNjb3VudHNDb250cmFjdC5hcHByb3ZhbFByb2dyYW06CiAgICBpbnRjYmxvY2sgMCA5MyAxCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKICAgIGNhbGxzdWIgX19wdXlhX2FyYzRfcm91dGVyX18KICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjpBY2NvdW50c0NvbnRyYWN0LmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHByb3RvIDAgMAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OkFjY291bnRzQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX18oKSAtPiB1aW50NjQ6Cl9fcHV5YV9hcmM0X3JvdXRlcl9fOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFjY291bnRzQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBwcm90byAwIDEKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IF9fcHV5YV9hcmM0X3JvdXRlcl9fX2JhcmVfcm91dGluZ0A1CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhkZmU5YTAzNSAvLyBtZXRob2QgImdldEFjY291bnRJbmZvKGFjY291bnQsYXNzZXQpKGJ5dGVbXSx1aW50NjQsdWludDY0LGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCxib29sLGJvb2wpIgogICAgc3dhcAogICAgbWF0Y2ggX19wdXlhX2FyYzRfcm91dGVyX19fZ2V0QWNjb3VudEluZm9fcm91dGVAMgogICAgYiBfX3B1eWFfYXJjNF9yb3V0ZXJfX19zd2l0Y2hfY2FzZV9kZWZhdWx0QDMKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX2dldEFjY291bnRJbmZvX3JvdXRlQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo1CiAgICAvLyBwdWJsaWMgZ2V0QWNjb3VudEluZm8oYWNjb3VudDogQWNjb3VudCwgYXNzZXQ6IEFzc2V0KSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmFzIEFjY291bnRzCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG5hcyBBc3NldHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjUKICAgIC8vIHB1YmxpYyBnZXRBY2NvdW50SW5mbyhhY2NvdW50OiBBY2NvdW50LCBhc3NldDogQXNzZXQpIHsKICAgIGNhbGxzdWIgZ2V0QWNjb3VudEluZm8KICAgIGNvdmVyIDE0CiAgICBjb3ZlciAxMwogICAgY292ZXIgMTIKICAgIGNvdmVyIDExCiAgICBjb3ZlciAxMAogICAgY292ZXIgOQogICAgY292ZXIgOAogICAgY292ZXIgNwogICAgY292ZXIgNgogICAgY292ZXIgNQogICAgY292ZXIgNAogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvdmVyIDExCiAgICBpdG9iCiAgICBjb3ZlciAxMgogICAgaXRvYgogICAgY292ZXIgMTIKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBjb3ZlciAxNAogICAgaXRvYgogICAgY292ZXIgOQogICAgaXRvYgogICAgY292ZXIgMTAKICAgIGl0b2IKICAgIGNvdmVyIDExCiAgICBpdG9iCiAgICBjb3ZlciAxMQogICAgaXRvYgogICAgY292ZXIgMTIKICAgIGl0b2IKICAgIGNvdmVyIDEyCiAgICBpdG9iCiAgICBjb3ZlciAxMgogICAgaXRvYgogICAgY292ZXIgMTIKICAgIHN3YXAKICAgIGl0b2IKICAgIGNvdmVyIDEyCiAgICBwdXNoYnl0ZXMgMHgwMAogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgOQogICAgc2V0Yml0CiAgICBjb3ZlciAxMQogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDE1CiAgICBzZXRiaXQKICAgIGNvdmVyIDkKICAgIGludGNfMSAvLyA5MwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHB1c2hieXRlcyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBkaWcgMQogICAgbGVuCiAgICBpbnRjXzEgLy8gOTMKICAgICsKICAgIHN3YXAKICAgIHVuY292ZXIgNAogICAgY29uY2F0CiAgICB1bmNvdmVyIDUKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICB1bmNvdmVyIDQKICAgIGNvbmNhdAogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgc3dhcAogICAgcHVzaGludCA3MzcgLy8gNzM3CiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fc3dpdGNoX2Nhc2VfZGVmYXVsdEAzOgogICAgYiBfX3B1eWFfYXJjNF9yb3V0ZXJfX19hZnRlcl9pZl9lbHNlQDkKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX2JhcmVfcm91dGluZ0A1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6NAogICAgLy8gZXhwb3J0IGNsYXNzIEFjY291bnRzQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggX19wdXlhX2FyYzRfcm91dGVyX19fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDYKICAgIGIgX19wdXlhX2FyYzRfcm91dGVyX19fc3dpdGNoX2Nhc2VfZGVmYXVsdEA3CgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMiAvLyAxCiAgICByZXRzdWIKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX3N3aXRjaF9jYXNlX2RlZmF1bHRANzoKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX2FmdGVyX2lmX2Vsc2VAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjQKICAgIC8vIGV4cG9ydCBjbGFzcyBBY2NvdW50c0NvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjpBY2NvdW50c0NvbnRyYWN0LmdldEFjY291bnRJbmZvKGFjY291bnQ6IGJ5dGVzLCBhc3NldDogdWludDY0KSAtPiBieXRlcywgdWludDY0LCB1aW50NjQsIGJ5dGVzLCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NDoKZ2V0QWNjb3VudEluZm86CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo1CiAgICAvLyBwdWJsaWMgZ2V0QWNjb3VudEluZm8oYWNjb3VudDogQWNjb3VudCwgYXNzZXQ6IEFzc2V0KSB7CiAgICBwcm90byAyIDE1CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo4CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OAogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo4CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjgKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OAogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo4CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjgKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OAogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo4CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjgKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTkKICAgIC8vIHRvdGFsQm94Qnl0ZXM6IGFjY291bnQudG90YWxCb3hCeXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveEJ5dGVzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OAogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo4CiAgICAvLyBiYWxhbmNlOiBhY2NvdW50LmJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjkKICAgIC8vIG1pbkJhbGFuY2U6IGFjY291bnQubWluQmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTAKICAgIC8vIGF1dGhBZGRyZXNzOiBhY2NvdW50LmF1dGhBZGRyZXNzLmJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTEKICAgIC8vIHRvdGFsTnVtVWludDogYWNjb3VudC50b3RhbE51bVVpbnQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1VaW50CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTIKICAgIC8vIHRvdGFsTnVtQnl0ZVNsaWNlOiBhY2NvdW50LnRvdGFsTnVtQnl0ZVNsaWNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtQnl0ZVNsaWNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTMKICAgIC8vIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxFeHRyYUFwcFBhZ2VzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTQKICAgIC8vIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTUKICAgIC8vIHRvdGFsQXBwc09wdGVkSW46IGFjY291bnQudG90YWxBcHBzT3B0ZWRJbiwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFwcHNPcHRlZEluCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsQXNzZXRzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFzc2V0c0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHNDcmVhdGVkCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTcKICAgIC8vIHRvdGFsQXNzZXRzOiBhY2NvdW50LnRvdGFsQXNzZXRzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6MTgKICAgIC8vIHRvdGFsQm94ZXM6IGFjY291bnQudG90YWxCb3hlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEJveGVzCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjgKICAgIC8vIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RCYWxhbmNlCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OQogICAgLy8gbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdE1pbkJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMAogICAgLy8gYXV0aEFkZHJlc3M6IGFjY291bnQuYXV0aEFkZHJlc3MuYnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMQogICAgLy8gdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bVVpbnQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMgogICAgLy8gdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxOdW1CeXRlU2xpY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxMwogICAgLy8gdG90YWxFeHRyYUFwcFBhZ2VzOiBhY2NvdW50LnRvdGFsRXh0cmFBcHBQYWdlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEV4dHJhQXBwUGFnZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNAogICAgLy8gdG90YWxBcHBzQ3JlYXRlZDogYWNjb3VudC50b3RhbEFwcHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNQogICAgLy8gdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXBwc09wdGVkSW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNgogICAgLy8gdG90YWxBc3NldHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXNzZXRzQ3JlYXRlZCwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0c0NyZWF0ZWQKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxNwogICAgLy8gdG90YWxBc3NldHM6IGFjY291bnQudG90YWxBc3NldHMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBc3NldHMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOAogICAgLy8gdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94ZXMKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czoxOQogICAgLy8gdG90YWxCb3hCeXRlczogYWNjb3VudC50b3RhbEJveEJ5dGVzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQm94Qnl0ZXMKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OAogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIwCiAgICAvLyBpc09wdEluQXBwOiBhY2NvdW50LmlzT3B0ZWRJbihHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uSWQpLAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbklECiAgICBmcmFtZV9kaWcgLTIKICAgIHN3YXAKICAgIGFwcF9vcHRlZF9pbgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6OAogICAgLy8gYmFsYW5jZTogYWNjb3VudC5iYWxhbmNlLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFjY291bnQgZnVuZGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo5CiAgICAvLyBtaW5CYWxhbmNlOiBhY2NvdW50Lm1pbkJhbGFuY2UsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEwCiAgICAvLyBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RBdXRoQWRkcgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjExCiAgICAvLyB0b3RhbE51bVVpbnQ6IGFjY291bnQudG90YWxOdW1VaW50LAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsTnVtVWludAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEyCiAgICAvLyB0b3RhbE51bUJ5dGVTbGljZTogYWNjb3VudC50b3RhbE51bUJ5dGVTbGljZSwKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbE51bUJ5dGVTbGljZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjEzCiAgICAvLyB0b3RhbEV4dHJhQXBwUGFnZXM6IGFjY291bnQudG90YWxFeHRyYUFwcFBhZ2VzLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsRXh0cmFBcHBQYWdlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE0CiAgICAvLyB0b3RhbEFwcHNDcmVhdGVkOiBhY2NvdW50LnRvdGFsQXBwc0NyZWF0ZWQsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE1CiAgICAvLyB0b3RhbEFwcHNPcHRlZEluOiBhY2NvdW50LnRvdGFsQXBwc09wdGVkSW4sCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxBcHBzT3B0ZWRJbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE2CiAgICAvLyB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgZnJhbWVfZGlnIC0yCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdFRvdGFsQXNzZXRzQ3JlYXRlZAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE3CiAgICAvLyB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIGZyYW1lX2RpZyAtMgogICAgYWNjdF9wYXJhbXNfZ2V0IEFjY3RUb3RhbEFzc2V0cwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE4CiAgICAvLyB0b3RhbEJveGVzOiBhY2NvdW50LnRvdGFsQm94ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjE5CiAgICAvLyB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICBmcmFtZV9kaWcgLTIKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0VG90YWxCb3hCeXRlcwogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hY2NvdW50cy5hbGdvLnRzOjIxCiAgICAvLyBpc09wdEluQXNzZXQ6IGFjY291bnQuaXNPcHRlZEluKGFzc2V0KSwKICAgIGZyYW1lX2RpZyAtMgogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKICAgIGJ1cnkgMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FjY291bnRzLmFsZ28udHM6Ni0yMgogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgYnl0ZXM6IGFjY291bnQuYnl0ZXMsCiAgICAvLyAgIGJhbGFuY2U6IGFjY291bnQuYmFsYW5jZSwKICAgIC8vICAgbWluQmFsYW5jZTogYWNjb3VudC5taW5CYWxhbmNlLAogICAgLy8gICBhdXRoQWRkcmVzczogYWNjb3VudC5hdXRoQWRkcmVzcy5ieXRlcywKICAgIC8vICAgdG90YWxOdW1VaW50OiBhY2NvdW50LnRvdGFsTnVtVWludCwKICAgIC8vICAgdG90YWxOdW1CeXRlU2xpY2U6IGFjY291bnQudG90YWxOdW1CeXRlU2xpY2UsCiAgICAvLyAgIHRvdGFsRXh0cmFBcHBQYWdlczogYWNjb3VudC50b3RhbEV4dHJhQXBwUGFnZXMsCiAgICAvLyAgIHRvdGFsQXBwc0NyZWF0ZWQ6IGFjY291bnQudG90YWxBcHBzQ3JlYXRlZCwKICAgIC8vICAgdG90YWxBcHBzT3B0ZWRJbjogYWNjb3VudC50b3RhbEFwcHNPcHRlZEluLAogICAgLy8gICB0b3RhbEFzc2V0c0NyZWF0ZWQ6IGFjY291bnQudG90YWxBc3NldHNDcmVhdGVkLAogICAgLy8gICB0b3RhbEFzc2V0czogYWNjb3VudC50b3RhbEFzc2V0cywKICAgIC8vICAgdG90YWxCb3hlczogYWNjb3VudC50b3RhbEJveGVzLAogICAgLy8gICB0b3RhbEJveEJ5dGVzOiBhY2NvdW50LnRvdGFsQm94Qnl0ZXMsCiAgICAvLyAgIGlzT3B0SW5BcHA6IGFjY291bnQuaXNPcHRlZEluKEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZCksCiAgICAvLyAgIGlzT3B0SW5Bc3NldDogYWNjb3VudC5pc09wdGVkSW4oYXNzZXQpLAogICAgLy8gfQogICAgZnJhbWVfZGlnIC0yCiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICB1bmNvdmVyIDE0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo6QWNjb3VudHNDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo0CiAgICAvLyBleHBvcnQgY2xhc3MgQWNjb3VudHNDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHByb3RvIDAgMAogICAgcmV0c3ViCg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCgp0ZXN0cy9hcHByb3ZhbHMvYWNjb3VudHMuYWxnby50czo6QWNjb3VudHNDb250cmFjdC5jbGVhclN0YXRlUHJvZ3JhbToKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K" }, "state": { diff --git a/tests/approvals/out/accounts/AccountsContract.ssa.ir b/tests/approvals/out/accounts/AccountsContract.ssa.ir index b94d4956..ae35695f 100644 --- a/tests/approvals/out/accounts/AccountsContract.ssa.ir +++ b/tests/approvals/out/accounts/AccountsContract.ssa.ir @@ -138,7 +138,385 @@ contract tests/approvals/accounts.algo.ts::AccountsContract: let tmp%0#0: uint64 = (global CurrentApplicationID) let tmp%1#0: bool = (app_opted_in account#0 tmp%0#0) let (tmp%2#0: uint64, tmp%3#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) - return account#0 value%0#0 value%1#0 value%2#0 value%3#0 value%4#0 value%5#0 value%6#0 value%7#0 value%8#0 value%9#0 value%10#0 value%11#0 tmp%1#0 tmp%3#0 + let (value%12#0: uint64, check%12#0: bool) = ((acct_params_get AcctBalance) account#0) + (assert check%12#0) // account funded + let (value%13#0: uint64, check%13#0: bool) = ((acct_params_get AcctMinBalance) account#0) + (assert check%13#0) // account funded + let (value%14#0: bytes, check%14#0: bool) = ((acct_params_get AcctAuthAddr) account#0) + (assert check%14#0) // account funded + let (value%15#0: uint64, check%15#0: bool) = ((acct_params_get AcctTotalNumUint) account#0) + (assert check%15#0) // account funded + let (value%16#0: uint64, check%16#0: bool) = ((acct_params_get AcctTotalNumByteSlice) account#0) + (assert check%16#0) // account funded + let (value%17#0: uint64, check%17#0: bool) = ((acct_params_get AcctTotalExtraAppPages) account#0) + (assert check%17#0) // account funded + let (value%18#0: uint64, check%18#0: bool) = ((acct_params_get AcctTotalAppsCreated) account#0) + (assert check%18#0) // account funded + let (value%19#0: uint64, check%19#0: bool) = ((acct_params_get AcctTotalAppsOptedIn) account#0) + (assert check%19#0) // account funded + let (value%20#0: uint64, check%20#0: bool) = ((acct_params_get AcctTotalAssetsCreated) account#0) + (assert check%20#0) // account funded + let (value%21#0: uint64, check%21#0: bool) = ((acct_params_get AcctTotalAssets) account#0) + (assert check%21#0) // account funded + let (value%22#0: uint64, check%22#0: bool) = ((acct_params_get AcctTotalBoxes) account#0) + (assert check%22#0) // account funded + let (value%23#0: uint64, check%23#0: bool) = ((acct_params_get AcctTotalBoxBytes) account#0) + (assert check%23#0) // account funded + let tmp%4#0: uint64 = (global CurrentApplicationID) + let tmp%5#0: bool = (app_opted_in account#0 tmp%4#0) + let (tmp%6#0: uint64, tmp%7#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) + let (value%24#0: uint64, check%24#0: bool) = ((acct_params_get AcctBalance) account#0) + (assert check%24#0) // account funded + let (value%25#0: uint64, check%25#0: bool) = ((acct_params_get AcctMinBalance) account#0) + (assert check%25#0) // account funded + let (value%26#0: bytes, check%26#0: bool) = ((acct_params_get AcctAuthAddr) account#0) + (assert check%26#0) // account funded + let (value%27#0: uint64, check%27#0: bool) = ((acct_params_get AcctTotalNumUint) account#0) + (assert check%27#0) // account funded + let (value%28#0: uint64, check%28#0: bool) = ((acct_params_get AcctTotalNumByteSlice) account#0) + (assert check%28#0) // account funded + let (value%29#0: uint64, check%29#0: bool) = ((acct_params_get AcctTotalExtraAppPages) account#0) + (assert check%29#0) // account funded + let (value%30#0: uint64, check%30#0: bool) = ((acct_params_get AcctTotalAppsCreated) account#0) + (assert check%30#0) // account funded + let (value%31#0: uint64, check%31#0: bool) = ((acct_params_get AcctTotalAppsOptedIn) account#0) + (assert check%31#0) // account funded + let (value%32#0: uint64, check%32#0: bool) = ((acct_params_get AcctTotalAssetsCreated) account#0) + (assert check%32#0) // account funded + let (value%33#0: uint64, check%33#0: bool) = ((acct_params_get AcctTotalAssets) account#0) + (assert check%33#0) // account funded + let (value%34#0: uint64, check%34#0: bool) = ((acct_params_get AcctTotalBoxes) account#0) + (assert check%34#0) // account funded + let (value%35#0: uint64, check%35#0: bool) = ((acct_params_get AcctTotalBoxBytes) account#0) + (assert check%35#0) // account funded + let tmp%8#0: uint64 = (global CurrentApplicationID) + let tmp%9#0: bool = (app_opted_in account#0 tmp%8#0) + let (tmp%10#0: uint64, tmp%11#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) + let (value%36#0: uint64, check%36#0: bool) = ((acct_params_get AcctBalance) account#0) + (assert check%36#0) // account funded + let (value%37#0: uint64, check%37#0: bool) = ((acct_params_get AcctMinBalance) account#0) + (assert check%37#0) // account funded + let (value%38#0: bytes, check%38#0: bool) = ((acct_params_get AcctAuthAddr) account#0) + (assert check%38#0) // account funded + let (value%39#0: uint64, check%39#0: bool) = ((acct_params_get AcctTotalNumUint) account#0) + (assert check%39#0) // account funded + let (value%40#0: uint64, check%40#0: bool) = ((acct_params_get AcctTotalNumByteSlice) account#0) + (assert check%40#0) // account funded + let (value%41#0: uint64, check%41#0: bool) = ((acct_params_get AcctTotalExtraAppPages) account#0) + (assert check%41#0) // account funded + let (value%42#0: uint64, check%42#0: bool) = ((acct_params_get AcctTotalAppsCreated) account#0) + (assert check%42#0) // account funded + let (value%43#0: uint64, check%43#0: bool) = ((acct_params_get AcctTotalAppsOptedIn) account#0) + (assert check%43#0) // account funded + let (value%44#0: uint64, check%44#0: bool) = ((acct_params_get AcctTotalAssetsCreated) account#0) + (assert check%44#0) // account funded + let (value%45#0: uint64, check%45#0: bool) = ((acct_params_get AcctTotalAssets) account#0) + (assert check%45#0) // account funded + let (value%46#0: uint64, check%46#0: bool) = ((acct_params_get AcctTotalBoxes) account#0) + (assert check%46#0) // account funded + let (value%47#0: uint64, check%47#0: bool) = ((acct_params_get AcctTotalBoxBytes) account#0) + (assert check%47#0) // account funded + let tmp%12#0: uint64 = (global CurrentApplicationID) + let tmp%13#0: bool = (app_opted_in account#0 tmp%12#0) + let (tmp%14#0: uint64, tmp%15#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) + let (value%48#0: uint64, check%48#0: bool) = ((acct_params_get AcctBalance) account#0) + (assert check%48#0) // account funded + let (value%49#0: uint64, check%49#0: bool) = ((acct_params_get AcctMinBalance) account#0) + (assert check%49#0) // account funded + let (value%50#0: bytes, check%50#0: bool) = ((acct_params_get AcctAuthAddr) account#0) + (assert check%50#0) // account funded + let (value%51#0: uint64, check%51#0: bool) = ((acct_params_get AcctTotalNumUint) account#0) + (assert check%51#0) // account funded + let (value%52#0: uint64, check%52#0: bool) = ((acct_params_get AcctTotalNumByteSlice) account#0) + (assert check%52#0) // account funded + let (value%53#0: uint64, check%53#0: bool) = ((acct_params_get AcctTotalExtraAppPages) account#0) + (assert check%53#0) // account funded + let (value%54#0: uint64, check%54#0: bool) = ((acct_params_get AcctTotalAppsCreated) account#0) + (assert check%54#0) // account funded + let (value%55#0: uint64, check%55#0: bool) = ((acct_params_get AcctTotalAppsOptedIn) account#0) + (assert check%55#0) // account funded + let (value%56#0: uint64, check%56#0: bool) = ((acct_params_get AcctTotalAssetsCreated) account#0) + (assert check%56#0) // account funded + let (value%57#0: uint64, check%57#0: bool) = ((acct_params_get AcctTotalAssets) account#0) + (assert check%57#0) // account funded + let (value%58#0: uint64, check%58#0: bool) = ((acct_params_get AcctTotalBoxes) account#0) + (assert check%58#0) // account funded + let (value%59#0: uint64, check%59#0: bool) = ((acct_params_get AcctTotalBoxBytes) account#0) + (assert check%59#0) // account funded + let tmp%16#0: uint64 = (global CurrentApplicationID) + let tmp%17#0: bool = (app_opted_in account#0 tmp%16#0) + let (tmp%18#0: uint64, tmp%19#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) + let (value%60#0: uint64, check%60#0: bool) = ((acct_params_get AcctBalance) account#0) + (assert check%60#0) // account funded + let (value%61#0: uint64, check%61#0: bool) = ((acct_params_get AcctMinBalance) account#0) + (assert check%61#0) // account funded + let (value%62#0: bytes, check%62#0: bool) = ((acct_params_get AcctAuthAddr) account#0) + (assert check%62#0) // account funded + let (value%63#0: uint64, check%63#0: bool) = ((acct_params_get AcctTotalNumUint) account#0) + (assert check%63#0) // account funded + let (value%64#0: uint64, check%64#0: bool) = ((acct_params_get AcctTotalNumByteSlice) account#0) + (assert check%64#0) // account funded + let (value%65#0: uint64, check%65#0: bool) = ((acct_params_get AcctTotalExtraAppPages) account#0) + (assert check%65#0) // account funded + let (value%66#0: uint64, check%66#0: bool) = ((acct_params_get AcctTotalAppsCreated) account#0) + (assert check%66#0) // account funded + let (value%67#0: uint64, check%67#0: bool) = ((acct_params_get AcctTotalAppsOptedIn) account#0) + (assert check%67#0) // account funded + let (value%68#0: uint64, check%68#0: bool) = ((acct_params_get AcctTotalAssetsCreated) account#0) + (assert check%68#0) // account funded + let (value%69#0: uint64, check%69#0: bool) = ((acct_params_get AcctTotalAssets) account#0) + (assert check%69#0) // account funded + let (value%70#0: uint64, check%70#0: bool) = ((acct_params_get AcctTotalBoxes) account#0) + (assert check%70#0) // account funded + let (value%71#0: uint64, check%71#0: bool) = ((acct_params_get AcctTotalBoxBytes) account#0) + (assert check%71#0) // account funded + let tmp%20#0: uint64 = (global CurrentApplicationID) + let tmp%21#0: bool = (app_opted_in account#0 tmp%20#0) + let (tmp%22#0: uint64, tmp%23#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) + let (value%72#0: uint64, check%72#0: bool) = ((acct_params_get AcctBalance) account#0) + (assert check%72#0) // account funded + let (value%73#0: uint64, check%73#0: bool) = ((acct_params_get AcctMinBalance) account#0) + (assert check%73#0) // account funded + let (value%74#0: bytes, check%74#0: bool) = ((acct_params_get AcctAuthAddr) account#0) + (assert check%74#0) // account funded + let (value%75#0: uint64, check%75#0: bool) = ((acct_params_get AcctTotalNumUint) account#0) + (assert check%75#0) // account funded + let (value%76#0: uint64, check%76#0: bool) = ((acct_params_get AcctTotalNumByteSlice) account#0) + (assert check%76#0) // account funded + let (value%77#0: uint64, check%77#0: bool) = ((acct_params_get AcctTotalExtraAppPages) account#0) + (assert check%77#0) // account funded + let (value%78#0: uint64, check%78#0: bool) = ((acct_params_get AcctTotalAppsCreated) account#0) + (assert check%78#0) // account funded + let (value%79#0: uint64, check%79#0: bool) = ((acct_params_get AcctTotalAppsOptedIn) account#0) + (assert check%79#0) // account funded + let (value%80#0: uint64, check%80#0: bool) = ((acct_params_get AcctTotalAssetsCreated) account#0) + (assert check%80#0) // account funded + let (value%81#0: uint64, check%81#0: bool) = ((acct_params_get AcctTotalAssets) account#0) + (assert check%81#0) // account funded + let (value%82#0: uint64, check%82#0: bool) = ((acct_params_get AcctTotalBoxes) account#0) + (assert check%82#0) // account funded + let (value%83#0: uint64, check%83#0: bool) = ((acct_params_get AcctTotalBoxBytes) account#0) + (assert check%83#0) // account funded + let tmp%24#0: uint64 = (global CurrentApplicationID) + let tmp%25#0: bool = (app_opted_in account#0 tmp%24#0) + let (tmp%26#0: uint64, tmp%27#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) + let (value%84#0: uint64, check%84#0: bool) = ((acct_params_get AcctBalance) account#0) + (assert check%84#0) // account funded + let (value%85#0: uint64, check%85#0: bool) = ((acct_params_get AcctMinBalance) account#0) + (assert check%85#0) // account funded + let (value%86#0: bytes, check%86#0: bool) = ((acct_params_get AcctAuthAddr) account#0) + (assert check%86#0) // account funded + let (value%87#0: uint64, check%87#0: bool) = ((acct_params_get AcctTotalNumUint) account#0) + (assert check%87#0) // account funded + let (value%88#0: uint64, check%88#0: bool) = ((acct_params_get AcctTotalNumByteSlice) account#0) + (assert check%88#0) // account funded + let (value%89#0: uint64, check%89#0: bool) = ((acct_params_get AcctTotalExtraAppPages) account#0) + (assert check%89#0) // account funded + let (value%90#0: uint64, check%90#0: bool) = ((acct_params_get AcctTotalAppsCreated) account#0) + (assert check%90#0) // account funded + let (value%91#0: uint64, check%91#0: bool) = ((acct_params_get AcctTotalAppsOptedIn) account#0) + (assert check%91#0) // account funded + let (value%92#0: uint64, check%92#0: bool) = ((acct_params_get AcctTotalAssetsCreated) account#0) + (assert check%92#0) // account funded + let (value%93#0: uint64, check%93#0: bool) = ((acct_params_get AcctTotalAssets) account#0) + (assert check%93#0) // account funded + let (value%94#0: uint64, check%94#0: bool) = ((acct_params_get AcctTotalBoxes) account#0) + (assert check%94#0) // account funded + let (value%95#0: uint64, check%95#0: bool) = ((acct_params_get AcctTotalBoxBytes) account#0) + (assert check%95#0) // account funded + let tmp%28#0: uint64 = (global CurrentApplicationID) + let tmp%29#0: bool = (app_opted_in account#0 tmp%28#0) + let (tmp%30#0: uint64, tmp%31#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) + let (value%96#0: uint64, check%96#0: bool) = ((acct_params_get AcctBalance) account#0) + (assert check%96#0) // account funded + let (value%97#0: uint64, check%97#0: bool) = ((acct_params_get AcctMinBalance) account#0) + (assert check%97#0) // account funded + let (value%98#0: bytes, check%98#0: bool) = ((acct_params_get AcctAuthAddr) account#0) + (assert check%98#0) // account funded + let (value%99#0: uint64, check%99#0: bool) = ((acct_params_get AcctTotalNumUint) account#0) + (assert check%99#0) // account funded + let (value%100#0: uint64, check%100#0: bool) = ((acct_params_get AcctTotalNumByteSlice) account#0) + (assert check%100#0) // account funded + let (value%101#0: uint64, check%101#0: bool) = ((acct_params_get AcctTotalExtraAppPages) account#0) + (assert check%101#0) // account funded + let (value%102#0: uint64, check%102#0: bool) = ((acct_params_get AcctTotalAppsCreated) account#0) + (assert check%102#0) // account funded + let (value%103#0: uint64, check%103#0: bool) = ((acct_params_get AcctTotalAppsOptedIn) account#0) + (assert check%103#0) // account funded + let (value%104#0: uint64, check%104#0: bool) = ((acct_params_get AcctTotalAssetsCreated) account#0) + (assert check%104#0) // account funded + let (value%105#0: uint64, check%105#0: bool) = ((acct_params_get AcctTotalAssets) account#0) + (assert check%105#0) // account funded + let (value%106#0: uint64, check%106#0: bool) = ((acct_params_get AcctTotalBoxes) account#0) + (assert check%106#0) // account funded + let (value%107#0: uint64, check%107#0: bool) = ((acct_params_get AcctTotalBoxBytes) account#0) + (assert check%107#0) // account funded + let tmp%32#0: uint64 = (global CurrentApplicationID) + let tmp%33#0: bool = (app_opted_in account#0 tmp%32#0) + let (tmp%34#0: uint64, tmp%35#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) + let (value%108#0: uint64, check%108#0: bool) = ((acct_params_get AcctBalance) account#0) + (assert check%108#0) // account funded + let (value%109#0: uint64, check%109#0: bool) = ((acct_params_get AcctMinBalance) account#0) + (assert check%109#0) // account funded + let (value%110#0: bytes, check%110#0: bool) = ((acct_params_get AcctAuthAddr) account#0) + (assert check%110#0) // account funded + let (value%111#0: uint64, check%111#0: bool) = ((acct_params_get AcctTotalNumUint) account#0) + (assert check%111#0) // account funded + let (value%112#0: uint64, check%112#0: bool) = ((acct_params_get AcctTotalNumByteSlice) account#0) + (assert check%112#0) // account funded + let (value%113#0: uint64, check%113#0: bool) = ((acct_params_get AcctTotalExtraAppPages) account#0) + (assert check%113#0) // account funded + let (value%114#0: uint64, check%114#0: bool) = ((acct_params_get AcctTotalAppsCreated) account#0) + (assert check%114#0) // account funded + let (value%115#0: uint64, check%115#0: bool) = ((acct_params_get AcctTotalAppsOptedIn) account#0) + (assert check%115#0) // account funded + let (value%116#0: uint64, check%116#0: bool) = ((acct_params_get AcctTotalAssetsCreated) account#0) + (assert check%116#0) // account funded + let (value%117#0: uint64, check%117#0: bool) = ((acct_params_get AcctTotalAssets) account#0) + (assert check%117#0) // account funded + let (value%118#0: uint64, check%118#0: bool) = ((acct_params_get AcctTotalBoxes) account#0) + (assert check%118#0) // account funded + let (value%119#0: uint64, check%119#0: bool) = ((acct_params_get AcctTotalBoxBytes) account#0) + (assert check%119#0) // account funded + let tmp%36#0: uint64 = (global CurrentApplicationID) + let tmp%37#0: bool = (app_opted_in account#0 tmp%36#0) + let (tmp%38#0: uint64, tmp%39#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) + let (value%120#0: uint64, check%120#0: bool) = ((acct_params_get AcctBalance) account#0) + (assert check%120#0) // account funded + let (value%121#0: uint64, check%121#0: bool) = ((acct_params_get AcctMinBalance) account#0) + (assert check%121#0) // account funded + let (value%122#0: bytes, check%122#0: bool) = ((acct_params_get AcctAuthAddr) account#0) + (assert check%122#0) // account funded + let (value%123#0: uint64, check%123#0: bool) = ((acct_params_get AcctTotalNumUint) account#0) + (assert check%123#0) // account funded + let (value%124#0: uint64, check%124#0: bool) = ((acct_params_get AcctTotalNumByteSlice) account#0) + (assert check%124#0) // account funded + let (value%125#0: uint64, check%125#0: bool) = ((acct_params_get AcctTotalExtraAppPages) account#0) + (assert check%125#0) // account funded + let (value%126#0: uint64, check%126#0: bool) = ((acct_params_get AcctTotalAppsCreated) account#0) + (assert check%126#0) // account funded + let (value%127#0: uint64, check%127#0: bool) = ((acct_params_get AcctTotalAppsOptedIn) account#0) + (assert check%127#0) // account funded + let (value%128#0: uint64, check%128#0: bool) = ((acct_params_get AcctTotalAssetsCreated) account#0) + (assert check%128#0) // account funded + let (value%129#0: uint64, check%129#0: bool) = ((acct_params_get AcctTotalAssets) account#0) + (assert check%129#0) // account funded + let (value%130#0: uint64, check%130#0: bool) = ((acct_params_get AcctTotalBoxes) account#0) + (assert check%130#0) // account funded + let (value%131#0: uint64, check%131#0: bool) = ((acct_params_get AcctTotalBoxBytes) account#0) + (assert check%131#0) // account funded + let tmp%40#0: uint64 = (global CurrentApplicationID) + let tmp%41#0: bool = (app_opted_in account#0 tmp%40#0) + let (tmp%42#0: uint64, tmp%43#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) + let (value%132#0: uint64, check%132#0: bool) = ((acct_params_get AcctBalance) account#0) + (assert check%132#0) // account funded + let (value%133#0: uint64, check%133#0: bool) = ((acct_params_get AcctMinBalance) account#0) + (assert check%133#0) // account funded + let (value%134#0: bytes, check%134#0: bool) = ((acct_params_get AcctAuthAddr) account#0) + (assert check%134#0) // account funded + let (value%135#0: uint64, check%135#0: bool) = ((acct_params_get AcctTotalNumUint) account#0) + (assert check%135#0) // account funded + let (value%136#0: uint64, check%136#0: bool) = ((acct_params_get AcctTotalNumByteSlice) account#0) + (assert check%136#0) // account funded + let (value%137#0: uint64, check%137#0: bool) = ((acct_params_get AcctTotalExtraAppPages) account#0) + (assert check%137#0) // account funded + let (value%138#0: uint64, check%138#0: bool) = ((acct_params_get AcctTotalAppsCreated) account#0) + (assert check%138#0) // account funded + let (value%139#0: uint64, check%139#0: bool) = ((acct_params_get AcctTotalAppsOptedIn) account#0) + (assert check%139#0) // account funded + let (value%140#0: uint64, check%140#0: bool) = ((acct_params_get AcctTotalAssetsCreated) account#0) + (assert check%140#0) // account funded + let (value%141#0: uint64, check%141#0: bool) = ((acct_params_get AcctTotalAssets) account#0) + (assert check%141#0) // account funded + let (value%142#0: uint64, check%142#0: bool) = ((acct_params_get AcctTotalBoxes) account#0) + (assert check%142#0) // account funded + let (value%143#0: uint64, check%143#0: bool) = ((acct_params_get AcctTotalBoxBytes) account#0) + (assert check%143#0) // account funded + let tmp%44#0: uint64 = (global CurrentApplicationID) + let tmp%45#0: bool = (app_opted_in account#0 tmp%44#0) + let (tmp%46#0: uint64, tmp%47#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) + let (value%144#0: uint64, check%144#0: bool) = ((acct_params_get AcctBalance) account#0) + (assert check%144#0) // account funded + let (value%145#0: uint64, check%145#0: bool) = ((acct_params_get AcctMinBalance) account#0) + (assert check%145#0) // account funded + let (value%146#0: bytes, check%146#0: bool) = ((acct_params_get AcctAuthAddr) account#0) + (assert check%146#0) // account funded + let (value%147#0: uint64, check%147#0: bool) = ((acct_params_get AcctTotalNumUint) account#0) + (assert check%147#0) // account funded + let (value%148#0: uint64, check%148#0: bool) = ((acct_params_get AcctTotalNumByteSlice) account#0) + (assert check%148#0) // account funded + let (value%149#0: uint64, check%149#0: bool) = ((acct_params_get AcctTotalExtraAppPages) account#0) + (assert check%149#0) // account funded + let (value%150#0: uint64, check%150#0: bool) = ((acct_params_get AcctTotalAppsCreated) account#0) + (assert check%150#0) // account funded + let (value%151#0: uint64, check%151#0: bool) = ((acct_params_get AcctTotalAppsOptedIn) account#0) + (assert check%151#0) // account funded + let (value%152#0: uint64, check%152#0: bool) = ((acct_params_get AcctTotalAssetsCreated) account#0) + (assert check%152#0) // account funded + let (value%153#0: uint64, check%153#0: bool) = ((acct_params_get AcctTotalAssets) account#0) + (assert check%153#0) // account funded + let (value%154#0: uint64, check%154#0: bool) = ((acct_params_get AcctTotalBoxes) account#0) + (assert check%154#0) // account funded + let (value%155#0: uint64, check%155#0: bool) = ((acct_params_get AcctTotalBoxBytes) account#0) + (assert check%155#0) // account funded + let tmp%48#0: uint64 = (global CurrentApplicationID) + let tmp%49#0: bool = (app_opted_in account#0 tmp%48#0) + let (tmp%50#0: uint64, tmp%51#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) + let (value%156#0: uint64, check%156#0: bool) = ((acct_params_get AcctBalance) account#0) + (assert check%156#0) // account funded + let (value%157#0: uint64, check%157#0: bool) = ((acct_params_get AcctMinBalance) account#0) + (assert check%157#0) // account funded + let (value%158#0: bytes, check%158#0: bool) = ((acct_params_get AcctAuthAddr) account#0) + (assert check%158#0) // account funded + let (value%159#0: uint64, check%159#0: bool) = ((acct_params_get AcctTotalNumUint) account#0) + (assert check%159#0) // account funded + let (value%160#0: uint64, check%160#0: bool) = ((acct_params_get AcctTotalNumByteSlice) account#0) + (assert check%160#0) // account funded + let (value%161#0: uint64, check%161#0: bool) = ((acct_params_get AcctTotalExtraAppPages) account#0) + (assert check%161#0) // account funded + let (value%162#0: uint64, check%162#0: bool) = ((acct_params_get AcctTotalAppsCreated) account#0) + (assert check%162#0) // account funded + let (value%163#0: uint64, check%163#0: bool) = ((acct_params_get AcctTotalAppsOptedIn) account#0) + (assert check%163#0) // account funded + let (value%164#0: uint64, check%164#0: bool) = ((acct_params_get AcctTotalAssetsCreated) account#0) + (assert check%164#0) // account funded + let (value%165#0: uint64, check%165#0: bool) = ((acct_params_get AcctTotalAssets) account#0) + (assert check%165#0) // account funded + let (value%166#0: uint64, check%166#0: bool) = ((acct_params_get AcctTotalBoxes) account#0) + (assert check%166#0) // account funded + let (value%167#0: uint64, check%167#0: bool) = ((acct_params_get AcctTotalBoxBytes) account#0) + (assert check%167#0) // account funded + let tmp%52#0: uint64 = (global CurrentApplicationID) + let tmp%53#0: bool = (app_opted_in account#0 tmp%52#0) + let (tmp%54#0: uint64, tmp%55#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) + let (value%168#0: uint64, check%168#0: bool) = ((acct_params_get AcctBalance) account#0) + (assert check%168#0) // account funded + let (value%169#0: uint64, check%169#0: bool) = ((acct_params_get AcctMinBalance) account#0) + (assert check%169#0) // account funded + let (value%170#0: bytes, check%170#0: bool) = ((acct_params_get AcctAuthAddr) account#0) + (assert check%170#0) // account funded + let (value%171#0: uint64, check%171#0: bool) = ((acct_params_get AcctTotalNumUint) account#0) + (assert check%171#0) // account funded + let (value%172#0: uint64, check%172#0: bool) = ((acct_params_get AcctTotalNumByteSlice) account#0) + (assert check%172#0) // account funded + let (value%173#0: uint64, check%173#0: bool) = ((acct_params_get AcctTotalExtraAppPages) account#0) + (assert check%173#0) // account funded + let (value%174#0: uint64, check%174#0: bool) = ((acct_params_get AcctTotalAppsCreated) account#0) + (assert check%174#0) // account funded + let (value%175#0: uint64, check%175#0: bool) = ((acct_params_get AcctTotalAppsOptedIn) account#0) + (assert check%175#0) // account funded + let (value%176#0: uint64, check%176#0: bool) = ((acct_params_get AcctTotalAssetsCreated) account#0) + (assert check%176#0) // account funded + let (value%177#0: uint64, check%177#0: bool) = ((acct_params_get AcctTotalAssets) account#0) + (assert check%177#0) // account funded + let (value%178#0: uint64, check%178#0: bool) = ((acct_params_get AcctTotalBoxes) account#0) + (assert check%178#0) // account funded + let (value%179#0: uint64, check%179#0: bool) = ((acct_params_get AcctTotalBoxBytes) account#0) + (assert check%179#0) // account funded + let tmp%56#0: uint64 = (global CurrentApplicationID) + let tmp%57#0: bool = (app_opted_in account#0 tmp%56#0) + let (tmp%58#0: uint64, tmp%59#0: bool) = ((asset_holding_get AssetBalance) account#0 asset#0) + return account#0 value%12#0 value%25#0 value%38#0 value%51#0 value%64#0 value%77#0 value%90#0 value%103#0 value%116#0 value%129#0 value%142#0 value%155#0 tmp%53#0 tmp%59#0 subroutine tests/approvals/accounts.algo.ts::AccountsContract.__algots__.defaultCreate() -> void: block@0: // L4 diff --git a/tests/approvals/out/accounts/accounts.awst b/tests/approvals/out/accounts/accounts.awst index 0d7eac48..2cb08341 100644 --- a/tests/approvals/out/accounts/accounts.awst +++ b/tests/approvals/out/accounts/accounts.awst @@ -13,9 +13,9 @@ contract AccountsContract return True } - getAccountInfo(): { bytes: bytes, balance: uint64, minBalance: uint64, authAddress: bytes, totalNumUint: uint64, totalNumByteSlice: uint64, totalExtraAppPages: uint64, totalAppsCreated: uint64, totalAppsOptedIn: uint64, totalAssetsCreated: uint64, totalAssets: uint64, totalBoxes: uint64, totalBoxBytes: uint64, isOptInApp: bool, isOptInAsset: bool } + getAccountInfo(): getAccountInfoResult{ bytes: bytes, balance: uint64, minBalance: uint64, authAddress: bytes, totalNumUint: uint64, totalNumByteSlice: uint64, totalExtraAppPages: uint64, totalAppsCreated: uint64, totalAppsOptedIn: uint64, totalAssetsCreated: uint64, totalAssets: uint64, totalBoxes: uint64, totalBoxBytes: uint64, isOptInApp: bool, isOptInAsset: bool } { - return { bytes: reinterpret_cast(account), balance: checked_maybe(acct_params_get(account), comment=account funded), minBalance: checked_maybe(acct_params_get(account), comment=account funded), authAddress: reinterpret_cast(checked_maybe(acct_params_get(account), comment=account funded)), totalNumUint: checked_maybe(acct_params_get(account), comment=account funded), totalNumByteSlice: checked_maybe(acct_params_get(account), comment=account funded), totalExtraAppPages: checked_maybe(acct_params_get(account), comment=account funded), totalAppsCreated: checked_maybe(acct_params_get(account), comment=account funded), totalAppsOptedIn: checked_maybe(acct_params_get(account), comment=account funded), totalAssetsCreated: checked_maybe(acct_params_get(account), comment=account funded), totalAssets: checked_maybe(acct_params_get(account), comment=account funded), totalBoxes: checked_maybe(acct_params_get(account), comment=account funded), totalBoxBytes: checked_maybe(acct_params_get(account), comment=account funded), isOptInApp: app_opted_in(account, global()), isOptInAsset: asset_holding_get(account, asset).1 } + return { bytes: (#0 = { bytes: reinterpret_cast(account), balance: checked_maybe(acct_params_get(account), comment=account funded), minBalance: checked_maybe(acct_params_get(account), comment=account funded), authAddress: reinterpret_cast(checked_maybe(acct_params_get(account), comment=account funded)), totalNumUint: checked_maybe(acct_params_get(account), comment=account funded), totalNumByteSlice: checked_maybe(acct_params_get(account), comment=account funded), totalExtraAppPages: checked_maybe(acct_params_get(account), comment=account funded), totalAppsCreated: checked_maybe(acct_params_get(account), comment=account funded), totalAppsOptedIn: checked_maybe(acct_params_get(account), comment=account funded), totalAssetsCreated: checked_maybe(acct_params_get(account), comment=account funded), totalAssets: checked_maybe(acct_params_get(account), comment=account funded), totalBoxes: checked_maybe(acct_params_get(account), comment=account funded), totalBoxBytes: checked_maybe(acct_params_get(account), comment=account funded), isOptInApp: app_opted_in(account, global()), isOptInAsset: asset_holding_get(account, asset).1 }).bytes, balance: #0.balance, minBalance: #0.minBalance, authAddress: #0.authAddress, totalNumUint: #0.totalNumUint, totalNumByteSlice: #0.totalNumByteSlice, totalExtraAppPages: #0.totalExtraAppPages, totalAppsCreated: #0.totalAppsCreated, totalAppsOptedIn: #0.totalAppsOptedIn, totalAssetsCreated: #0.totalAssetsCreated, totalAssets: #0.totalAssets, totalBoxes: #0.totalBoxes, totalBoxBytes: #0.totalBoxBytes, isOptInApp: #0.isOptInApp, isOptInAsset: #0.isOptInAsset } } constructor(): void diff --git a/tests/approvals/out/accounts/accounts.awst.json b/tests/approvals/out/accounts/accounts.awst.json index bbf83e2a..b6d34727 100644 --- a/tests/approvals/out/accounts/accounts.awst.json +++ b/tests/approvals/out/accounts/accounts.awst.json @@ -346,7 +346,7 @@ ], "return_type": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/accounts.algo.ts::getAccountInfoResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -505,7 +505,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/accounts.algo.ts::getAccountInfoResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -636,13 +636,13 @@ }, "items": [ { - "_type": "ReinterpretCast", + "_type": "FieldExpression", "source_location": { "file": "tests/approvals/accounts.algo.ts", - "line": 7, - "end_line": 7, - "column": 13, - "end_column": 26 + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 }, "wtype": { "_type": "WType", @@ -651,133 +651,29 @@ "ephemeral": false, "scalar_type": 1 }, - "expr": { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 7, - "end_line": 7, - "column": 13, - "end_column": 20 - }, - "wtype": { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 - }, - "name": "account" - } - }, - { - "_type": "CheckedMaybe", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 8, - "end_line": 8, - "column": 15, - "end_column": 30 - }, - "wtype": { - "_type": "WType", - "name": "uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - "expr": { - "_type": "IntrinsicCall", + "base": { + "_type": "SingleEvaluation", "source_location": { "file": "tests/approvals/accounts.algo.ts", - "line": 8, - "end_line": 8, - "column": 15, - "end_column": 30 + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 }, "wtype": { "_type": "WTuple", - "name": "tuple", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, "types": [ { "_type": "WType", - "name": "uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - { - "_type": "WType", - "name": "bool", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - } - ] - }, - "op_code": "acct_params_get", - "immediates": [ - "AcctBalance" - ], - "stack_args": [ - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 8, - "end_line": 8, - "column": 15, - "end_column": 22 - }, - "wtype": { - "_type": "WType", - "name": "account", + "name": "bytes", "immutable": true, "ephemeral": false, "scalar_type": 1 }, - "name": "account" - } - ], - "comment": null - }, - "comment": "account funded" - }, - { - "_type": "CheckedMaybe", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 9, - "end_line": 9, - "column": 18, - "end_column": 36 - }, - "wtype": { - "_type": "WType", - "name": "uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - "expr": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 9, - "end_line": 9, - "column": 18, - "end_column": 36 - }, - "wtype": { - "_type": "WTuple", - "name": "tuple", - "immutable": true, - "ephemeral": false, - "scalar_type": null, - "types": [ { "_type": "WType", "name": "uint64", @@ -787,166 +683,18 @@ }, { "_type": "WType", - "name": "bool", + "name": "uint64", "immutable": true, "ephemeral": false, "scalar_type": 2 - } - ] - }, - "op_code": "acct_params_get", - "immediates": [ - "AcctMinBalance" - ], - "stack_args": [ - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 9, - "end_line": 9, - "column": 18, - "end_column": 25 }, - "wtype": { + { "_type": "WType", - "name": "account", + "name": "bytes", "immutable": true, "ephemeral": false, "scalar_type": 1 }, - "name": "account" - } - ], - "comment": null - }, - "comment": "account funded" - }, - { - "_type": "ReinterpretCast", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 10, - "end_line": 10, - "column": 19, - "end_column": 44 - }, - "wtype": { - "_type": "WType", - "name": "bytes", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 - }, - "expr": { - "_type": "CheckedMaybe", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 10, - "end_line": 10, - "column": 19, - "end_column": 38 - }, - "wtype": { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 - }, - "expr": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 10, - "end_line": 10, - "column": 19, - "end_column": 38 - }, - "wtype": { - "_type": "WTuple", - "name": "tuple", - "immutable": true, - "ephemeral": false, - "scalar_type": null, - "types": [ - { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 - }, - { - "_type": "WType", - "name": "bool", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - } - ] - }, - "op_code": "acct_params_get", - "immediates": [ - "AcctAuthAddr" - ], - "stack_args": [ - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 10, - "end_line": 10, - "column": 19, - "end_column": 26 - }, - "wtype": { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 - }, - "name": "account" - } - ], - "comment": null - }, - "comment": "account funded" - } - }, - { - "_type": "CheckedMaybe", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 11, - "end_line": 11, - "column": 20, - "end_column": 40 - }, - "wtype": { - "_type": "WType", - "name": "uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - "expr": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 11, - "end_line": 11, - "column": 20, - "end_column": 40 - }, - "wtype": { - "_type": "WTuple", - "name": "tuple", - "immutable": true, - "ephemeral": false, - "scalar_type": null, - "types": [ { "_type": "WType", "name": "uint64", @@ -956,73 +704,18 @@ }, { "_type": "WType", - "name": "bool", + "name": "uint64", "immutable": true, "ephemeral": false, "scalar_type": 2 - } - ] - }, - "op_code": "acct_params_get", - "immediates": [ - "AcctTotalNumUint" - ], - "stack_args": [ - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 11, - "end_line": 11, - "column": 20, - "end_column": 27 }, - "wtype": { + { "_type": "WType", - "name": "account", + "name": "uint64", "immutable": true, "ephemeral": false, - "scalar_type": 1 + "scalar_type": 2 }, - "name": "account" - } - ], - "comment": null - }, - "comment": "account funded" - }, - { - "_type": "CheckedMaybe", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 12, - "end_line": 12, - "column": 25, - "end_column": 50 - }, - "wtype": { - "_type": "WType", - "name": "uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - "expr": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 12, - "end_line": 12, - "column": 25, - "end_column": 50 - }, - "wtype": { - "_type": "WTuple", - "name": "tuple", - "immutable": true, - "ephemeral": false, - "scalar_type": null, - "types": [ { "_type": "WType", "name": "uint64", @@ -1032,73 +725,18 @@ }, { "_type": "WType", - "name": "bool", + "name": "uint64", "immutable": true, "ephemeral": false, "scalar_type": 2 - } - ] - }, - "op_code": "acct_params_get", - "immediates": [ - "AcctTotalNumByteSlice" - ], - "stack_args": [ - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 12, - "end_line": 12, - "column": 25, - "end_column": 32 }, - "wtype": { + { "_type": "WType", - "name": "account", + "name": "uint64", "immutable": true, "ephemeral": false, - "scalar_type": 1 + "scalar_type": 2 }, - "name": "account" - } - ], - "comment": null - }, - "comment": "account funded" - }, - { - "_type": "CheckedMaybe", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 13, - "end_line": 13, - "column": 26, - "end_column": 52 - }, - "wtype": { - "_type": "WType", - "name": "uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - "expr": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 13, - "end_line": 13, - "column": 26, - "end_column": 52 - }, - "wtype": { - "_type": "WTuple", - "name": "tuple", - "immutable": true, - "ephemeral": false, - "scalar_type": null, - "types": [ { "_type": "WType", "name": "uint64", @@ -1108,76 +746,21 @@ }, { "_type": "WType", - "name": "bool", + "name": "uint64", "immutable": true, "ephemeral": false, "scalar_type": 2 - } - ] - }, - "op_code": "acct_params_get", - "immediates": [ - "AcctTotalExtraAppPages" - ], - "stack_args": [ - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 13, - "end_line": 13, - "column": 26, - "end_column": 33 }, - "wtype": { + { "_type": "WType", - "name": "account", + "name": "uint64", "immutable": true, "ephemeral": false, - "scalar_type": 1 + "scalar_type": 2 }, - "name": "account" - } - ], - "comment": null - }, - "comment": "account funded" - }, - { - "_type": "CheckedMaybe", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 14, - "end_line": 14, - "column": 24, - "end_column": 48 - }, - "wtype": { - "_type": "WType", - "name": "uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - "expr": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 14, - "end_line": 14, - "column": 24, - "end_column": 48 - }, - "wtype": { - "_type": "WTuple", - "name": "tuple", - "immutable": true, - "ephemeral": false, - "scalar_type": null, - "types": [ { "_type": "WType", - "name": "uint64", + "name": "bool", "immutable": true, "ephemeral": false, "scalar_type": 2 @@ -1189,68 +772,19872 @@ "ephemeral": false, "scalar_type": 2 } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" ] }, - "op_code": "acct_params_get", - "immediates": [ - "AcctTotalAppsCreated" - ], - "stack_args": [ - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 14, - "end_line": 14, - "column": 24, - "end_column": 31 - }, - "wtype": { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 - }, - "name": "account" - } - ], - "comment": null - }, - "comment": "account funded" - }, - { - "_type": "CheckedMaybe", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 15, - "end_line": 15, - "column": 24, - "end_column": 48 + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null + }, + { + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" + } + ] + }, + "id": "0" + }, + "name": "bytes" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null + }, + { + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" + } + ] + }, + "id": "0" + }, + "name": "balance" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null + }, + { + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" + } + ] + }, + "id": "0" + }, + "name": "minBalance" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null + }, + { + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" + } + ] + }, + "id": "0" + }, + "name": "authAddress" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null + }, + { + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" + } + ] + }, + "id": "0" + }, + "name": "totalNumUint" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null + }, + { + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" + } + ] + }, + "id": "0" + }, + "name": "totalNumByteSlice" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null + }, + { + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" + } + ] + }, + "id": "0" + }, + "name": "totalExtraAppPages" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null + }, + { + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" + } + ] + }, + "id": "0" + }, + "name": "totalAppsCreated" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null + }, + { + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" + } + ] + }, + "id": "0" + }, + "name": "totalAppsOptedIn" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null + }, + { + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" + } + ] + }, + "id": "0" + }, + "name": "totalAssetsCreated" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null + }, + { + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" + } + ] + }, + "id": "0" + }, + "name": "totalAssets" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null + }, + { + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" + } + ] + }, + "id": "0" + }, + "name": "totalBoxes" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null + }, + { + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" + } + ] + }, + "id": "0" + }, + "name": "totalBoxBytes" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null + }, + { + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" + } + ] + }, + "id": "0" + }, + "name": "isOptInApp" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 }, "wtype": { "_type": "WType", - "name": "uint64", + "name": "bool", "immutable": true, "ephemeral": false, "scalar_type": 2 }, - "expr": { - "_type": "IntrinsicCall", + "base": { + "_type": "SingleEvaluation", "source_location": { "file": "tests/approvals/accounts.algo.ts", - "line": 15, - "end_line": 15, - "column": 24, - "end_column": 48 + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 }, "wtype": { "_type": "WTuple", - "name": "tuple", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, { "_type": "WType", "name": "uint64", @@ -1260,73 +20647,18 @@ }, { "_type": "WType", - "name": "bool", + "name": "uint64", "immutable": true, "ephemeral": false, "scalar_type": 2 - } - ] - }, - "op_code": "acct_params_get", - "immediates": [ - "AcctTotalAppsOptedIn" - ], - "stack_args": [ - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 15, - "end_line": 15, - "column": 24, - "end_column": 31 }, - "wtype": { + { "_type": "WType", - "name": "account", + "name": "uint64", "immutable": true, "ephemeral": false, - "scalar_type": 1 + "scalar_type": 2 }, - "name": "account" - } - ], - "comment": null - }, - "comment": "account funded" - }, - { - "_type": "CheckedMaybe", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 16, - "end_line": 16, - "column": 26, - "end_column": 52 - }, - "wtype": { - "_type": "WType", - "name": "uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - "expr": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 16, - "end_line": 16, - "column": 26, - "end_column": 52 - }, - "wtype": { - "_type": "WTuple", - "name": "tuple", - "immutable": true, - "ephemeral": false, - "scalar_type": null, - "types": [ { "_type": "WType", "name": "uint64", @@ -1336,73 +20668,25 @@ }, { "_type": "WType", - "name": "bool", + "name": "uint64", "immutable": true, "ephemeral": false, "scalar_type": 2 - } - ] - }, - "op_code": "acct_params_get", - "immediates": [ - "AcctTotalAssetsCreated" - ], - "stack_args": [ - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 16, - "end_line": 16, - "column": 26, - "end_column": 33 }, - "wtype": { + { "_type": "WType", - "name": "account", + "name": "uint64", "immutable": true, "ephemeral": false, - "scalar_type": 1 + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 }, - "name": "account" - } - ], - "comment": null - }, - "comment": "account funded" - }, - { - "_type": "CheckedMaybe", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 17, - "end_line": 17, - "column": 19, - "end_column": 38 - }, - "wtype": { - "_type": "WType", - "name": "uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - "expr": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 17, - "end_line": 17, - "column": 19, - "end_column": 38 - }, - "wtype": { - "_type": "WTuple", - "name": "tuple", - "immutable": true, - "ephemeral": false, - "scalar_type": null, - "types": [ { "_type": "WType", "name": "uint64", @@ -1410,6 +20694,13 @@ "ephemeral": false, "scalar_type": 2 }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, { "_type": "WType", "name": "bool", @@ -1417,344 +20708,1292 @@ "ephemeral": false, "scalar_type": 2 } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" ] }, - "op_code": "acct_params_get", - "immediates": [ - "AcctTotalAssets" - ], - "stack_args": [ - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 17, - "end_line": 17, - "column": 19, - "end_column": 26 + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 6, + "end_line": 22, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "bytes", + "balance", + "minBalance", + "authAddress", + "totalNumUint", + "totalNumByteSlice", + "totalExtraAppPages", + "totalAppsCreated", + "totalAppsOptedIn", + "totalAssetsCreated", + "totalAssets", + "totalBoxes", + "totalBoxBytes", + "isOptInApp", + "isOptInAsset" + ] + }, + "items": [ + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 7, + "end_line": 7, + "column": 13, + "end_column": 20 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 30 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 8, + "end_line": 8, + "column": 15, + "end_column": 22 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctMinBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 9, + "end_line": 9, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "ReinterpretCast", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctAuthAddr" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 10, + "end_line": 10, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + } + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 40 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumUint" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 11, + "end_line": 11, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" + }, + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 50 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalNumByteSlice" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 32 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" }, - "wtype": { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalExtraAppPages" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 13, + "end_line": 13, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" }, - "name": "account" - } - ], - "comment": null - }, - "comment": "account funded" - }, - { - "_type": "CheckedMaybe", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 18, - "end_line": 18, - "column": 18, - "end_column": 36 - }, - "wtype": { - "_type": "WType", - "name": "uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - "expr": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 18, - "end_line": 18, - "column": 18, - "end_column": 36 - }, - "wtype": { - "_type": "WTuple", - "name": "tuple", - "immutable": true, - "ephemeral": false, - "scalar_type": null, - "types": [ { - "_type": "WType", - "name": "uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 14, + "end_line": 14, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" }, { - "_type": "WType", - "name": "bool", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - } - ] - }, - "op_code": "acct_params_get", - "immediates": [ - "AcctTotalBoxes" - ], - "stack_args": [ - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 18, - "end_line": 18, - "column": 18, - "end_column": 25 + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 48 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAppsOptedIn" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 15, + "end_line": 15, + "column": 24, + "end_column": 31 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" }, - "wtype": { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 52 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssetsCreated" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 16, + "end_line": 16, + "column": 26, + "end_column": 33 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" }, - "name": "account" - } - ], - "comment": null - }, - "comment": "account funded" - }, - { - "_type": "CheckedMaybe", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 19, - "end_line": 19, - "column": 21, - "end_column": 42 - }, - "wtype": { - "_type": "WType", - "name": "uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - "expr": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 19, - "end_line": 19, - "column": 21, - "end_column": 42 - }, - "wtype": { - "_type": "WTuple", - "name": "tuple", - "immutable": true, - "ephemeral": false, - "scalar_type": null, - "types": [ { - "_type": "WType", - "name": "uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 38 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalAssets" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 17, + "end_line": 17, + "column": 19, + "end_column": 26 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" }, { - "_type": "WType", - "name": "bool", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - } - ] - }, - "op_code": "acct_params_get", - "immediates": [ - "AcctTotalBoxBytes" - ], - "stack_args": [ - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 19, - "end_line": 19, - "column": 21, - "end_column": 28 + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 36 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 18, + "end_line": 18, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" }, - "wtype": { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 + { + "_type": "CheckedMaybe", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 42 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "acct_params_get", + "immediates": [ + "AcctTotalBoxBytes" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 19, + "end_line": 19, + "column": 21, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + } + ], + "comment": null + }, + "comment": "account funded" }, - "name": "account" - } - ], - "comment": null - }, - "comment": "account funded" - }, - { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 20, - "end_line": 20, - "column": 18, - "end_column": 64 - }, - "wtype": { - "_type": "WType", - "name": "bool", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - "op_code": "app_opted_in", - "immediates": [], - "stack_args": [ - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 20, - "end_line": 20, - "column": 18, - "end_column": 25 - }, - "wtype": { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 - }, - "name": "account" - }, - { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 20, - "end_line": 20, - "column": 36, - "end_column": 63 - }, - "wtype": { - "_type": "WType", - "name": "application", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - "op_code": "global", - "immediates": [ - "CurrentApplicationID" - ], - "stack_args": [], - "comment": null - } - ], - "comment": null - }, - { - "_type": "TupleItemExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 21, - "end_line": 21, - "column": 20, - "end_column": 44 - }, - "wtype": { - "_type": "WType", - "name": "bool", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - "base": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 21, - "end_line": 21, - "column": 20, - "end_column": 44 - }, - "wtype": { - "_type": "WTuple", - "name": "tuple", - "immutable": true, - "ephemeral": false, - "scalar_type": null, - "types": [ { - "_type": "WType", - "name": "uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 64 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "app_opted_in", + "immediates": [], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 18, + "end_column": 25 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 20, + "end_line": 20, + "column": 36, + "end_column": 63 + }, + "wtype": { + "_type": "WType", + "name": "application", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "op_code": "global", + "immediates": [ + "CurrentApplicationID" + ], + "stack_args": [], + "comment": null + } + ], + "comment": null }, { - "_type": "WType", - "name": "bool", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 + "_type": "TupleItemExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 44 + }, + "wtype": { + "_type": "WTuple", + "name": "tuple", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ] + }, + "op_code": "asset_holding_get", + "immediates": [ + "AssetBalance" + ], + "stack_args": [ + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 20, + "end_column": 27 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "account" + }, + { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/accounts.algo.ts", + "line": 21, + "end_line": 21, + "column": 38, + "end_column": 43 + }, + "wtype": { + "_type": "WType", + "name": "asset", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "name": "asset" + } + ], + "comment": null + }, + "index": "1" } ] }, - "op_code": "asset_holding_get", - "immediates": [ - "AssetBalance" - ], - "stack_args": [ - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 21, - "end_line": 21, - "column": 20, - "end_column": 27 - }, - "wtype": { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 - }, - "name": "account" - }, - { - "_type": "VarExpression", - "source_location": { - "file": "tests/approvals/accounts.algo.ts", - "line": 21, - "end_line": 21, - "column": 38, - "end_column": 43 - }, - "wtype": { - "_type": "WType", - "name": "asset", - "immutable": true, - "ephemeral": false, - "scalar_type": 2 - }, - "name": "asset" - } - ], - "comment": null + "id": "0" }, - "index": "1" + "name": "isOptInAsset" } ] } @@ -1790,7 +22029,7 @@ "default_args": {}, "structs": { "output": { - "name": "Anonymous", + "name": "getAccountInfoResult", "elements": [ [ "bytes", diff --git a/tests/approvals/out/arc4-struct/StructDemo.approval.teal b/tests/approvals/out/arc4-struct/StructDemo.approval.teal index ddb6eb49..ce5ed86e 100644 --- a/tests/approvals/out/arc4-struct/StructDemo.approval.teal +++ b/tests/approvals/out/arc4-struct/StructDemo.approval.teal @@ -1,44 +1,67 @@ #pragma version 10 tests/approvals/arc4-struct.algo.ts::StructDemo.approvalProgram: - intcblock 1 0 - bytecblock 0x0000000000000000 + intcblock 0 8 1 + bytecblock 0x 0x0000000000000000 + txn ApplicationID + bnz main_after_if_else@2 + callsub constructor + +main_after_if_else@2: callsub __puya_arc4_router__ return +// tests/approvals/arc4-struct.algo.ts::StructDemo.constructor() -> void: +constructor: + // tests/approvals/arc4-struct.algo.ts:9 + // class StructDemo extends Contract { + proto 0 0 + retsub + + // tests/approvals/arc4-struct.algo.ts::StructDemo.__puya_arc4_router__() -> uint64: __puya_arc4_router__: // tests/approvals/arc4-struct.algo.ts:9 // class StructDemo extends Contract { proto 0 1 txn NumAppArgs + intc_0 // 0 + != bz __puya_arc4_router___bare_routing@7 - pushbytess 0x89388ddd 0xef322d6d 0xcb81deb8 // method "testVectorCreationAndEquality()void", method "addVectors((uint64,uint64),(uint64,uint64))(uint64,uint64)", method "implicitCastingAndSpreading((uint64,uint64))void" txna ApplicationArgs 0 + pushbytes 0x89388ddd // method "testVectorCreationAndEquality()void" + pushbytes 0xef322d6d // method "addVectors((uint64,uint64),(uint64,uint64))(uint64,uint64)" + pushbytes 0xcb81deb8 // method "implicitCastingAndSpreading((uint64,uint64))void" + uncover 3 match __puya_arc4_router___testVectorCreationAndEquality_route@2 __puya_arc4_router___addVectors_route@3 __puya_arc4_router___implicitCastingAndSpreading_route@4 - intc_1 // 0 - retsub + b __puya_arc4_router___switch_case_default@5 __puya_arc4_router___testVectorCreationAndEquality_route@2: // tests/approvals/arc4-struct.algo.ts:10 // public testVectorCreationAndEquality() { txn OnCompletion - ! + intc_0 // NoOp + == assert // OnCompletion is not NoOp txn ApplicationID + intc_0 // 0 + != assert // can only call when not creating callsub testVectorCreationAndEquality - intc_0 // 1 + intc_2 // 1 retsub __puya_arc4_router___addVectors_route@3: // tests/approvals/arc4-struct.algo.ts:18 // public addVectors(v1: Vector, v2: Vector) { txn OnCompletion - ! + intc_0 // NoOp + == assert // OnCompletion is not NoOp txn ApplicationID + intc_0 // 0 + != assert // can only call when not creating // tests/approvals/arc4-struct.algo.ts:9 // class StructDemo extends Contract { @@ -51,16 +74,19 @@ __puya_arc4_router___addVectors_route@3: swap concat log - intc_0 // 1 + intc_2 // 1 retsub __puya_arc4_router___implicitCastingAndSpreading_route@4: // tests/approvals/arc4-struct.algo.ts:25 // public implicitCastingAndSpreading(v1: Vector) { txn OnCompletion - ! + intc_0 // NoOp + == assert // OnCompletion is not NoOp txn ApplicationID + intc_0 // 0 + != assert // can only call when not creating // tests/approvals/arc4-struct.algo.ts:9 // class StructDemo extends Contract { @@ -68,24 +94,38 @@ __puya_arc4_router___implicitCastingAndSpreading_route@4: // tests/approvals/arc4-struct.algo.ts:25 // public implicitCastingAndSpreading(v1: Vector) { callsub implicitCastingAndSpreading - intc_0 // 1 + intc_2 // 1 retsub +__puya_arc4_router___switch_case_default@5: + b __puya_arc4_router___after_if_else@11 + __puya_arc4_router___bare_routing@7: // tests/approvals/arc4-struct.algo.ts:9 // class StructDemo extends Contract { txn OnCompletion - bnz __puya_arc4_router___after_if_else@11 + intc_0 // 0 + swap + match __puya_arc4_router_____algots__.defaultCreate@8 + b __puya_arc4_router___switch_case_default@9 + +__puya_arc4_router_____algots__.defaultCreate@8: + // tests/approvals/arc4-struct.algo.ts:9 + // class StructDemo extends Contract { txn ApplicationID - ! + intc_0 // 0 + == assert // can only call when creating - intc_0 // 1 + callsub __algots__.defaultCreate + intc_2 // 1 retsub +__puya_arc4_router___switch_case_default@9: + __puya_arc4_router___after_if_else@11: // tests/approvals/arc4-struct.algo.ts:9 // class StructDemo extends Contract { - intc_1 // 0 + intc_0 // 0 retsub @@ -94,14 +134,38 @@ testVectorCreationAndEquality: // tests/approvals/arc4-struct.algo.ts:10 // public testVectorCreationAndEquality() { proto 0 0 + // tests/approvals/arc4-struct.algo.ts:11 + // const v1 = new Vector({ x: new ARC4Uint64(0), y: new ARC4Uint64(0) }) + bytec_0 // 0x + bytec_1 // 0x0000000000000000 + concat + bytec_1 // 0x0000000000000000 + concat // tests/approvals/arc4-struct.algo.ts:12 // log(v1.x) - bytec_0 // 0x0000000000000000 + dup + intc_0 // 0 + intc_1 // 8 + extract3 // on error: Index access is out of bounds log // tests/approvals/arc4-struct.algo.ts:13 // log(v1.y) - bytec_0 // 0x0000000000000000 + dup + intc_1 // 8 + dup + extract3 // on error: Index access is out of bounds log + // tests/approvals/arc4-struct.algo.ts:14 + // const v2 = new Vector({ y: new ARC4Uint64(0), x: new ARC4Uint64(0) }) + bytec_0 // 0x + bytec_1 // 0x0000000000000000 + concat + bytec_1 // 0x0000000000000000 + concat + // tests/approvals/arc4-struct.algo.ts:15 + // assert(v1.equals(v2)) + == + assert retsub @@ -113,20 +177,28 @@ addVectors: // tests/approvals/arc4-struct.algo.ts:20 // x: new ARC4Uint64(v1.x.native + v2.x.native), frame_dig -2 - extract 0 8 // on error: Index access is out of bounds + intc_0 // 0 + intc_1 // 8 + extract3 // on error: Index access is out of bounds btoi frame_dig -1 - extract 0 8 // on error: Index access is out of bounds + intc_0 // 0 + intc_1 // 8 + extract3 // on error: Index access is out of bounds btoi + itob // tests/approvals/arc4-struct.algo.ts:21 // y: new ARC4Uint64(v1.y.native + v2.y.native), frame_dig -2 - extract 8 8 // on error: Index access is out of bounds + intc_1 // 8 + dup + extract3 // on error: Index access is out of bounds btoi frame_dig -1 - extract 8 8 // on error: Index access is out of bounds + intc_1 // 8 + dup + extract3 // on error: Index access is out of bounds btoi + itob @@ -135,6 +207,10 @@ addVectors: // x: new ARC4Uint64(v1.x.native + v2.x.native), // y: new ARC4Uint64(v1.y.native + v2.y.native), // }) + bytec_0 // 0x + uncover 2 + concat + swap concat retsub @@ -147,16 +223,33 @@ implicitCastingAndSpreading: // tests/approvals/arc4-struct.algo.ts:26 // const v2 = new Vector(v1) frame_dig -1 - extract 0 8 // on error: Index access is out of bounds + intc_0 // 0 + intc_1 // 8 + extract3 // on error: Index access is out of bounds frame_dig -1 - extract 8 8 // on error: Index access is out of bounds + intc_1 // 8 + dup + extract3 // on error: Index access is out of bounds + bytec_0 // 0x + uncover 2 + concat + swap concat // tests/approvals/arc4-struct.algo.ts:27 // const v3 = new Vector({ ...v2 }) dup - extract 0 8 // on error: Index access is out of bounds - dig 1 - extract 8 8 // on error: Index access is out of bounds + intc_0 // 0 + intc_1 // 8 + extract3 // on error: Index access is out of bounds + swap + dup + intc_1 // 8 + dup + extract3 // on error: Index access is out of bounds + bytec_0 // 0x + uncover 3 + concat + swap concat // tests/approvals/arc4-struct.algo.ts:28 // assert(v1.bytes === v2.bytes) @@ -170,3 +263,11 @@ implicitCastingAndSpreading: == assert retsub + + +// tests/approvals/arc4-struct.algo.ts::StructDemo.__algots__.defaultCreate() -> void: +__algots__.defaultCreate: + // tests/approvals/arc4-struct.algo.ts:9 + // class StructDemo extends Contract { + proto 0 0 + retsub diff --git a/tests/approvals/out/arc4-struct/StructDemo.arc32.json b/tests/approvals/out/arc4-struct/StructDemo.arc32.json index d1c78bc5..b8db11e9 100644 --- a/tests/approvals/out/arc4-struct/StructDemo.arc32.json +++ b/tests/approvals/out/arc4-struct/StructDemo.arc32.json @@ -73,7 +73,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgp0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5hcHByb3ZhbFByb2dyYW06CiAgICBpbnRjYmxvY2sgMSAwCiAgICBieXRlY2Jsb2NrIDB4MDAwMDAwMDAwMDAwMDAwMAogICAgY2FsbHN1YiBfX3B1eWFfYXJjNF9yb3V0ZXJfXwogICAgcmV0dXJuCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8uX19wdXlhX2FyYzRfcm91dGVyX18oKSAtPiB1aW50NjQ6Cl9fcHV5YV9hcmM0X3JvdXRlcl9fOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OQogICAgLy8gY2xhc3MgU3RydWN0RGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHByb3RvIDAgMQogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IF9fcHV5YV9hcmM0X3JvdXRlcl9fX2JhcmVfcm91dGluZ0A3CiAgICBwdXNoYnl0ZXNzIDB4ODkzODhkZGQgMHhlZjMyMmQ2ZCAweGNiODFkZWI4IC8vIG1ldGhvZCAidGVzdFZlY3RvckNyZWF0aW9uQW5kRXF1YWxpdHkoKXZvaWQiLCBtZXRob2QgImFkZFZlY3RvcnMoKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkodWludDY0LHVpbnQ2NCkiLCBtZXRob2QgImltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZygodWludDY0LHVpbnQ2NCkpdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIF9fcHV5YV9hcmM0X3JvdXRlcl9fX3Rlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5X3JvdXRlQDIgX19wdXlhX2FyYzRfcm91dGVyX19fYWRkVmVjdG9yc19yb3V0ZUAzIF9fcHV5YV9hcmM0X3JvdXRlcl9fX2ltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZ19yb3V0ZUA0CiAgICBpbnRjXzEgLy8gMAogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX190ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eV9yb3V0ZUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTAKICAgIC8vIHB1YmxpYyB0ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eSgpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eQogICAgaW50Y18wIC8vIDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fYWRkVmVjdG9yc19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTgKICAgIC8vIHB1YmxpYyBhZGRWZWN0b3JzKHYxOiBWZWN0b3IsIHYyOiBWZWN0b3IpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OQogICAgLy8gY2xhc3MgU3RydWN0RGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjE4CiAgICAvLyBwdWJsaWMgYWRkVmVjdG9ycyh2MTogVmVjdG9yLCB2MjogVmVjdG9yKSB7CiAgICBjYWxsc3ViIGFkZFZlY3RvcnMKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19faW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nX3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyNQogICAgLy8gcHVibGljIGltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZyh2MTogVmVjdG9yKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyNQogICAgLy8gcHVibGljIGltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZyh2MTogVmVjdG9yKSB7CiAgICBjYWxsc3ViIGltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZwogICAgaW50Y18wIC8vIDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo5CiAgICAvLyBjbGFzcyBTdHJ1Y3REZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgYm56IF9fcHV5YV9hcmM0X3JvdXRlcl9fX2FmdGVyX2lmX2Vsc2VAMTEKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICAhCiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OQogICAgLy8gY2xhc3MgU3RydWN0RGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMSAvLyAwCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby50ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eSgpIC0+IHZvaWQ6CnRlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTAKICAgIC8vIHB1YmxpYyB0ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eSgpIHsKICAgIHByb3RvIDAgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTIKICAgIC8vIGxvZyh2MS54KQogICAgYnl0ZWNfMCAvLyAweDAwMDAwMDAwMDAwMDAwMDAKICAgIGxvZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTMKICAgIC8vIGxvZyh2MS55KQogICAgYnl0ZWNfMCAvLyAweDAwMDAwMDAwMDAwMDAwMDAKICAgIGxvZwogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8uYWRkVmVjdG9ycyh2MTogYnl0ZXMsIHYyOiBieXRlcykgLT4gYnl0ZXM6CmFkZFZlY3RvcnM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxOAogICAgLy8gcHVibGljIGFkZFZlY3RvcnModjE6IFZlY3RvciwgdjI6IFZlY3RvcikgewogICAgcHJvdG8gMiAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyMAogICAgLy8geDogbmV3IEFSQzRVaW50NjQodjEueC5uYXRpdmUgKyB2Mi54Lm5hdGl2ZSksCiAgICBmcmFtZV9kaWcgLTIKICAgIGV4dHJhY3QgMCA4IC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgZnJhbWVfZGlnIC0xCiAgICBleHRyYWN0IDAgOCAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgICsKICAgIGl0b2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjIxCiAgICAvLyB5OiBuZXcgQVJDNFVpbnQ2NCh2MS55Lm5hdGl2ZSArIHYyLnkubmF0aXZlKSwKICAgIGZyYW1lX2RpZyAtMgogICAgZXh0cmFjdCA4IDggLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBmcmFtZV9kaWcgLTEKICAgIGV4dHJhY3QgOCA4IC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgKwogICAgaXRvYgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTktMjIKICAgIC8vIHJldHVybiBuZXcgVmVjdG9yKHsKICAgIC8vICAgeDogbmV3IEFSQzRVaW50NjQodjEueC5uYXRpdmUgKyB2Mi54Lm5hdGl2ZSksCiAgICAvLyAgIHk6IG5ldyBBUkM0VWludDY0KHYxLnkubmF0aXZlICsgdjIueS5uYXRpdmUpLAogICAgLy8gfSkKICAgIGNvbmNhdAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8uaW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nKHYxOiBieXRlcykgLT4gdm9pZDoKaW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MjUKICAgIC8vIHB1YmxpYyBpbXBsaWNpdENhc3RpbmdBbmRTcHJlYWRpbmcodjE6IFZlY3RvcikgewogICAgcHJvdG8gMSAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyNgogICAgLy8gY29uc3QgdjIgPSBuZXcgVmVjdG9yKHYxKQogICAgZnJhbWVfZGlnIC0xCiAgICBleHRyYWN0IDAgOCAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGZyYW1lX2RpZyAtMQogICAgZXh0cmFjdCA4IDggLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjI3CiAgICAvLyBjb25zdCB2MyA9IG5ldyBWZWN0b3IoeyAuLi52MiB9KQogICAgZHVwCiAgICBleHRyYWN0IDAgOCAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGRpZyAxCiAgICBleHRyYWN0IDggOCAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MjgKICAgIC8vIGFzc2VydCh2MS5ieXRlcyA9PT0gdjIuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTEKICAgIHVuY292ZXIgMgogICAgPT0KICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MjkKICAgIC8vIGFzc2VydCh2My5ieXRlcyA9PT0gdjEuYnl0ZXMpCiAgICBmcmFtZV9kaWcgLTEKICAgID09CiAgICBhc3NlcnQKICAgIHJldHN1Ygo=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgp0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5hcHByb3ZhbFByb2dyYW06CiAgICBpbnRjYmxvY2sgMCA4IDEKICAgIGJ5dGVjYmxvY2sgMHggMHgwMDAwMDAwMDAwMDAwMDAwCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCiAgICBjYWxsc3ViIGNvbnN0cnVjdG9yCgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKICAgIGNhbGxzdWIgX19wdXlhX2FyYzRfcm91dGVyX18KICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo5CiAgICAvLyBjbGFzcyBTdHJ1Y3REZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgcHJvdG8gMCAwCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfXygpIC0+IHVpbnQ2NDoKX19wdXlhX2FyYzRfcm91dGVyX186CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo5CiAgICAvLyBjbGFzcyBTdHJ1Y3REZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgcHJvdG8gMCAxCiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBfX3B1eWFfYXJjNF9yb3V0ZXJfX19iYXJlX3JvdXRpbmdANwogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgcHVzaGJ5dGVzIDB4ODkzODhkZGQgLy8gbWV0aG9kICJ0ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eSgpdm9pZCIKICAgIHB1c2hieXRlcyAweGVmMzIyZDZkIC8vIG1ldGhvZCAiYWRkVmVjdG9ycygodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweGNiODFkZWI4IC8vIG1ldGhvZCAiaW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nKCh1aW50NjQsdWludDY0KSl2b2lkIgogICAgdW5jb3ZlciAzCiAgICBtYXRjaCBfX3B1eWFfYXJjNF9yb3V0ZXJfX190ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eV9yb3V0ZUAyIF9fcHV5YV9hcmM0X3JvdXRlcl9fX2FkZFZlY3RvcnNfcm91dGVAMyBfX3B1eWFfYXJjNF9yb3V0ZXJfX19pbXBsaWNpdENhc3RpbmdBbmRTcHJlYWRpbmdfcm91dGVANAogICAgYiBfX3B1eWFfYXJjNF9yb3V0ZXJfX19zd2l0Y2hfY2FzZV9kZWZhdWx0QDUKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX3Rlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5X3JvdXRlQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxMAogICAgLy8gcHVibGljIHRlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5KCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB0ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eQogICAgaW50Y18yIC8vIDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fYWRkVmVjdG9yc19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTgKICAgIC8vIHB1YmxpYyBhZGRWZWN0b3JzKHYxOiBWZWN0b3IsIHYyOiBWZWN0b3IpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjkKICAgIC8vIGNsYXNzIFN0cnVjdERlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxOAogICAgLy8gcHVibGljIGFkZFZlY3RvcnModjE6IFZlY3RvciwgdjI6IFZlY3RvcikgewogICAgY2FsbHN1YiBhZGRWZWN0b3JzCiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICByZXRzdWIKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX2ltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZ19yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MjUKICAgIC8vIHB1YmxpYyBpbXBsaWNpdENhc3RpbmdBbmRTcHJlYWRpbmcodjE6IFZlY3RvcikgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OQogICAgLy8gY2xhc3MgU3RydWN0RGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjI1CiAgICAvLyBwdWJsaWMgaW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nKHYxOiBWZWN0b3IpIHsKICAgIGNhbGxzdWIgaW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nCiAgICBpbnRjXzIgLy8gMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19zd2l0Y2hfY2FzZV9kZWZhdWx0QDU6CiAgICBiIF9fcHV5YV9hcmM0X3JvdXRlcl9fX2FmdGVyX2lmX2Vsc2VAMTEKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX2JhcmVfcm91dGluZ0A3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OQogICAgLy8gY2xhc3MgU3RydWN0RGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBfX3B1eWFfYXJjNF9yb3V0ZXJfX19fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAOAogICAgYiBfX3B1eWFfYXJjNF9yb3V0ZXJfX19zd2l0Y2hfY2FzZV9kZWZhdWx0QDkKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OQogICAgLy8gY2xhc3MgU3RydWN0RGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzIgLy8gMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6CgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OQogICAgLy8gY2xhc3MgU3RydWN0RGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby50ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eSgpIC0+IHZvaWQ6CnRlc3RWZWN0b3JDcmVhdGlvbkFuZEVxdWFsaXR5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTAKICAgIC8vIHB1YmxpYyB0ZXN0VmVjdG9yQ3JlYXRpb25BbmRFcXVhbGl0eSgpIHsKICAgIHByb3RvIDAgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTEKICAgIC8vIGNvbnN0IHYxID0gbmV3IFZlY3Rvcih7IHg6IG5ldyBBUkM0VWludDY0KDApLCB5OiBuZXcgQVJDNFVpbnQ2NCgwKSB9KQogICAgYnl0ZWNfMCAvLyAweAogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDAwMDAwMDAwMDAKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyAweDAwMDAwMDAwMDAwMDAwMDAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTIKICAgIC8vIGxvZyh2MS54KQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxMwogICAgLy8gbG9nKHYxLnkpCiAgICBkdXAKICAgIGludGNfMSAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgbG9nCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxNAogICAgLy8gY29uc3QgdjIgPSBuZXcgVmVjdG9yKHsgeTogbmV3IEFSQzRVaW50NjQoMCksIHg6IG5ldyBBUkM0VWludDY0KDApIH0pCiAgICBieXRlY18wIC8vIDB4CiAgICBieXRlY18xIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAogICAgY29uY2F0CiAgICBieXRlY18xIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoxNQogICAgLy8gYXNzZXJ0KHYxLmVxdWFscyh2MikpCiAgICA9PQogICAgYXNzZXJ0CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5hZGRWZWN0b3JzKHYxOiBieXRlcywgdjI6IGJ5dGVzKSAtPiBieXRlczoKYWRkVmVjdG9yczoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjE4CiAgICAvLyBwdWJsaWMgYWRkVmVjdG9ycyh2MTogVmVjdG9yLCB2MjogVmVjdG9yKSB7CiAgICBwcm90byAyIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjIwCiAgICAvLyB4OiBuZXcgQVJDNFVpbnQ2NCh2MS54Lm5hdGl2ZSArIHYyLngubmF0aXZlKSwKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgICsKICAgIGl0b2IKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjIxCiAgICAvLyB5OiBuZXcgQVJDNFVpbnQ2NCh2MS55Lm5hdGl2ZSArIHYyLnkubmF0aXZlKSwKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMSAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgKwogICAgaXRvYgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MTktMjIKICAgIC8vIHJldHVybiBuZXcgVmVjdG9yKHsKICAgIC8vICAgeDogbmV3IEFSQzRVaW50NjQodjEueC5uYXRpdmUgKyB2Mi54Lm5hdGl2ZSksCiAgICAvLyAgIHk6IG5ldyBBUkM0VWludDY0KHYxLnkubmF0aXZlICsgdjIueS5uYXRpdmUpLAogICAgLy8gfSkKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjpTdHJ1Y3REZW1vLmltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZyh2MTogYnl0ZXMpIC0+IHZvaWQ6CmltcGxpY2l0Q2FzdGluZ0FuZFNwcmVhZGluZzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hcmM0LXN0cnVjdC5hbGdvLnRzOjI1CiAgICAvLyBwdWJsaWMgaW1wbGljaXRDYXN0aW5nQW5kU3ByZWFkaW5nKHYxOiBWZWN0b3IpIHsKICAgIHByb3RvIDEgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6MjYKICAgIC8vIGNvbnN0IHYyID0gbmV3IFZlY3Rvcih2MSkKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyNwogICAgLy8gY29uc3QgdjMgPSBuZXcgVmVjdG9yKHsgLi4udjIgfSkKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHN3YXAKICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyOAogICAgLy8gYXNzZXJ0KHYxLmJ5dGVzID09PSB2Mi5ieXRlcykKICAgIGZyYW1lX2RpZyAtMQogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czoyOQogICAgLy8gYXNzZXJ0KHYzLmJ5dGVzID09PSB2MS5ieXRlcykKICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OlN0cnVjdERlbW8uX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2FyYzQtc3RydWN0LmFsZ28udHM6OQogICAgLy8gY2xhc3MgU3RydWN0RGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHByb3RvIDAgMAogICAgcmV0c3ViCg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCgp0ZXN0cy9hcHByb3ZhbHMvYXJjNC1zdHJ1Y3QuYWxnby50czo6U3RydWN0RGVtby5jbGVhclN0YXRlUHJvZ3JhbToKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K" }, "state": { diff --git a/tests/approvals/out/arc4-struct/arc4-struct.awst b/tests/approvals/out/arc4-struct/arc4-struct.awst index 63ea7ff7..95d68715 100644 --- a/tests/approvals/out/arc4-struct/arc4-struct.awst +++ b/tests/approvals/out/arc4-struct/arc4-struct.awst @@ -15,22 +15,22 @@ contract StructDemo testVectorCreationAndEquality(): void { - v1: Vector = new Vector(x=(#14 = { x: 0, y: 0 }).x, y=#14.y) + v1: Vector = new Vector(x=(#0 = { x: 0, y: 0 }).x, y=#0.y) log(reinterpret_cast(v1.x)) log(reinterpret_cast(v1.y)) - v2: Vector = new Vector(x=(#16 = { x: (#15 = { y: 0, x: 0 }).x, y: #15.y }).x, y=#16.y) + v2: Vector = new Vector(x=(#1 = { x: (#2 = { y: 0, x: 0 }).x, y: #2.y }).x, y=#1.y) assert(reinterpret_cast(v1) == reinterpret_cast(v2)) } addVectors(): Vector { - return new Vector(x=(#17 = { x: ARC4_ENCODE(ARC4_DECODE(v1.x) + ARC4_DECODE(v2.x), wtype=arc4.uint64), y: ARC4_ENCODE(ARC4_DECODE(v1.y) + ARC4_DECODE(v2.y), wtype=arc4.uint64) }).x, y=#17.y) + return new Vector(x=(#3 = { x: ARC4_ENCODE(ARC4_DECODE(v1.x) + ARC4_DECODE(v2.x), wtype=arc4.uint64), y: ARC4_ENCODE(ARC4_DECODE(v1.y) + ARC4_DECODE(v2.y), wtype=arc4.uint64) }).x, y=#3.y) } implicitCastingAndSpreading(): void { - v2: Vector = new Vector(x=(#18 = ARC4_DECODE(v1)).x, y=#18.y) - v3: Vector = new Vector(x=(#19 = { x: v2.x, y: v2.y }).x, y=#19.y) + v2: Vector = new Vector(x=(#4 = ARC4_DECODE(v1)).x, y=#4.y) + v3: Vector = new Vector(x=(#5 = { x: v2.x, y: v2.y }).x, y=#5.y) assert(reinterpret_cast(v1) == reinterpret_cast(v2)) assert(reinterpret_cast(v3) == reinterpret_cast(v1)) } diff --git a/tests/approvals/out/arc4-struct/arc4-struct.awst.json b/tests/approvals/out/arc4-struct/arc4-struct.awst.json index 5521c5d7..a794c1c9 100644 --- a/tests/approvals/out/arc4-struct/arc4-struct.awst.json +++ b/tests/approvals/out/arc4-struct/arc4-struct.awst.json @@ -492,7 +492,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -546,7 +546,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -648,7 +648,7 @@ } ] }, - "id": "14" + "id": "0" }, "name": "x" }, @@ -688,7 +688,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -742,7 +742,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -844,7 +844,7 @@ } ] }, - "id": "14" + "id": "0" }, "name": "y" } @@ -1295,7 +1295,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1349,7 +1349,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1429,7 +1429,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1483,7 +1483,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1585,7 +1585,7 @@ } ] }, - "id": "15" + "id": "2" }, "name": "x" }, @@ -1625,7 +1625,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1679,7 +1679,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1781,13 +1781,13 @@ } ] }, - "id": "15" + "id": "2" }, "name": "y" } ] }, - "id": "16" + "id": "1" }, "name": "x" }, @@ -1827,7 +1827,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1881,7 +1881,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1961,7 +1961,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2015,7 +2015,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2117,7 +2117,7 @@ } ] }, - "id": "15" + "id": "2" }, "name": "x" }, @@ -2157,7 +2157,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2211,7 +2211,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2313,13 +2313,13 @@ } ] }, - "id": "15" + "id": "2" }, "name": "y" } ] }, - "id": "16" + "id": "1" }, "name": "y" } @@ -2868,7 +2868,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2922,7 +2922,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3480,7 +3480,7 @@ } ] }, - "id": "17" + "id": "3" }, "name": "x" }, @@ -3520,7 +3520,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3574,7 +3574,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4132,7 +4132,7 @@ } ] }, - "id": "17" + "id": "3" }, "name": "y" } @@ -4469,7 +4469,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4523,7 +4523,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4629,7 +4629,7 @@ "name": "v1" } }, - "id": "18" + "id": "4" }, "name": "x" }, @@ -4669,7 +4669,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4723,7 +4723,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4829,7 +4829,7 @@ "name": "v1" } }, - "id": "18" + "id": "4" }, "name": "y" } @@ -5004,7 +5004,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5058,7 +5058,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5282,7 +5282,7 @@ } ] }, - "id": "19" + "id": "5" }, "name": "x" }, @@ -5322,7 +5322,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5376,7 +5376,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5600,7 +5600,7 @@ } ] }, - "id": "19" + "id": "5" }, "name": "y" } diff --git a/tests/approvals/out/biguint-expressions/DemoContract.approval.teal b/tests/approvals/out/biguint-expressions/DemoContract.approval.teal index 7a1d095b..3d1b5b87 100644 --- a/tests/approvals/out/biguint-expressions/DemoContract.approval.teal +++ b/tests/approvals/out/biguint-expressions/DemoContract.approval.teal @@ -1,16 +1,47 @@ #pragma version 10 tests/approvals/biguint-expressions.algo.ts::DemoContract.approvalProgram: + intcblock 4 1 + txn ApplicationID + bnz main_after_if_else@2 + callsub constructor + +main_after_if_else@2: + // tests/approvals/biguint-expressions.algo.ts:32 + // testConstructor(1, false, itob(4)) + intc_0 // 4 + itob + intc_1 // 1 + pushint 0 // 0 + uncover 2 + callsub testConstructor // tests/approvals/biguint-expressions.algo.ts:33 // testOps(500n, 1000n) - pushbytess 0x01f4 0x03e8 // 0x01f4, 0x03e8 + pushbytes 0x01f4 + pushbytes 0x03e8 callsub testOps // tests/approvals/biguint-expressions.algo.ts:34 // return true - pushint 1 // 1 + intc_1 // 1 return +// tests/approvals/biguint-expressions.algo.ts::DemoContract.constructor() -> void: +constructor: + // tests/approvals/biguint-expressions.algo.ts:30 + // class DemoContract extends BaseContract { + proto 0 0 + retsub + + +// tests/approvals/biguint-expressions.algo.ts::testConstructor(a: uint64, b: uint64, c: bytes) -> void: +testConstructor: + // tests/approvals/biguint-expressions.algo.ts:5 + // function testConstructor(a: uint64, b: boolean, c: bytes) { + proto 3 0 + retsub + + // tests/approvals/biguint-expressions.algo.ts::testOps(smaller: bytes, larger: bytes) -> void: testOps: // tests/approvals/biguint-expressions.algo.ts:21 @@ -22,15 +53,33 @@ testOps: frame_dig -1 b< assert - // tests/approvals/biguint-expressions.algo.ts:24 - // assert(smaller > larger) + // tests/approvals/biguint-expressions.algo.ts:23 + // assert(smaller <= smaller) frame_dig -2 + dup + b<= + assert + // tests/approvals/biguint-expressions.algo.ts:24 + // assert(larger > smaller) frame_dig -1 + frame_dig -2 b> assert + // tests/approvals/biguint-expressions.algo.ts:25 + // assert(larger >= larger) + frame_dig -1 + dup + b>= + assert + // tests/approvals/biguint-expressions.algo.ts:26 + // assert(smaller === BigUint(smaller)) + frame_dig -2 + dup + b== + assert // tests/approvals/biguint-expressions.algo.ts:27 // assert(smaller === BigUint(op.bzero(4).concat(Bytes(smaller))), 'Leading zeros should be ignored in equality') - pushint 4 // 4 + intc_0 // 4 bzero frame_dig -2 concat diff --git a/tests/approvals/out/biguint-expressions/DemoContract.ssa.ir b/tests/approvals/out/biguint-expressions/DemoContract.ssa.ir index 858f2d14..cf95a8ad 100644 --- a/tests/approvals/out/biguint-expressions/DemoContract.ssa.ir +++ b/tests/approvals/out/biguint-expressions/DemoContract.ssa.ir @@ -34,7 +34,7 @@ contract tests/approvals/biguint-expressions.algo.ts::DemoContract: (assert tmp%0#0) let tmp%1#0: bool = (b<= smaller#0 smaller#0) (assert tmp%1#0) - let tmp%2#0: bool = (b> smaller#0 larger#0) + let tmp%2#0: bool = (b> larger#0 smaller#0) (assert tmp%2#0) let tmp%3#0: bool = (b>= larger#0 larger#0) (assert tmp%3#0) diff --git a/tests/approvals/out/boolean-expressions/boolean-expressions.awst b/tests/approvals/out/boolean-expressions/boolean-expressions.awst index a13ee8b3..2a6bdf6b 100644 --- a/tests/approvals/out/boolean-expressions/boolean-expressions.awst +++ b/tests/approvals/out/boolean-expressions/boolean-expressions.awst @@ -1,7 +1,7 @@ subroutine test(a: uint64, b: uint64, c: string, d: bytes, e: uint64): bool { - x: uint64 = (Boolean((#12 = (Boolean(a) ? a : b))) ? #12 : e) - assert(Boolean((Boolean((#13 = (Boolean(a) ? b : a))) ? e : #13))) + x: uint64 = (Boolean((#0 = (Boolean(a) ? a : b))) ? #0 : e) + assert(Boolean((Boolean((#1 = (Boolean(a) ? b : a))) ? e : #1))) y: uint64 = (Boolean(a) ? b : a) z: uint64 = (Boolean(a) and Boolean(len(d)) or Boolean(y) ? (Boolean(x) ? x : y) : (Boolean(x) ? y : x)) if (Boolean(a) or Boolean(len(c)) and Boolean(len(d))) { diff --git a/tests/approvals/out/boolean-expressions/boolean-expressions.awst.json b/tests/approvals/out/boolean-expressions/boolean-expressions.awst.json index 4d8248d6..9e477e73 100644 --- a/tests/approvals/out/boolean-expressions/boolean-expressions.awst.json +++ b/tests/approvals/out/boolean-expressions/boolean-expressions.awst.json @@ -280,7 +280,7 @@ "name": "b" } }, - "id": "12" + "id": "0" } }, "true_expr": { @@ -387,7 +387,7 @@ "name": "b" } }, - "id": "12" + "id": "0" }, "false_expr": { "_type": "VarExpression", @@ -589,7 +589,7 @@ "name": "a" } }, - "id": "13" + "id": "1" } }, "true_expr": { @@ -714,7 +714,7 @@ "name": "a" } }, - "id": "13" + "id": "1" } } } diff --git a/tests/approvals/out/byte-expressions/DemoContract.approval.teal b/tests/approvals/out/byte-expressions/DemoContract.approval.teal index 48ee7e0c..108392ce 100644 --- a/tests/approvals/out/byte-expressions/DemoContract.approval.teal +++ b/tests/approvals/out/byte-expressions/DemoContract.approval.teal @@ -1,7 +1,85 @@ #pragma version 10 tests/approvals/byte-expressions.algo.ts::DemoContract.approvalProgram: + txn ApplicationID + bnz main_after_if_else@2 + callsub constructor + +main_after_if_else@2: + // tests/approvals/byte-expressions.algo.ts:17 + // test(1, 50n, 'things') + pushint 1 // 1 + pushbytes 0x32 + pushbytes "things" + callsub test // tests/approvals/byte-expressions.algo.ts:18 // return true pushint 1 // 1 return + + +// tests/approvals/byte-expressions.algo.ts::DemoContract.constructor() -> void: +constructor: + // tests/approvals/byte-expressions.algo.ts:15 + // class DemoContract extends BaseContract { + proto 0 0 + retsub + + +// tests/approvals/byte-expressions.algo.ts::test(a: uint64, b: bytes, c: bytes) -> void: +test: + // tests/approvals/byte-expressions.algo.ts:4 + // function test(a: uint64, b: biguint, c: string) { + proto 3 0 + // tests/approvals/byte-expressions.algo.ts:5 + // assert(Bytes().length === 0, 'Empty bytes has length of 0') + pushbytes 0x + len + pushint 0 // 0 + == + assert // Empty bytes has length of 0 + // tests/approvals/byte-expressions.algo.ts:6 + // assert(Bytes(a) === op.itob(a), 'Bytes(uint64) is equivalent to itob') + frame_dig -3 + itob + frame_dig -3 + itob + == + assert // Bytes(uint64) is equivalent to itob + // tests/approvals/byte-expressions.algo.ts:7 + // assert(Bytes(Uint64(1)) === Bytes.fromHex('0000000000000001'), 'Bytes(uint64) returns an 8 byte encoding') + pushbytes 0x0000000000000001 + dup + == + assert // Bytes(uint64) returns an 8 byte encoding + // tests/approvals/byte-expressions.algo.ts:8 + // assert(Bytes(BigUint(256)) === Bytes.fromHex('0100')) + pushbytes 0x0100 + dup + == + assert + // tests/approvals/byte-expressions.algo.ts:9 + // assert(BigUint(Bytes(b)) === b, 'Round trip of biguint to bytes and back results in the same value') + frame_dig -2 + dup + b== + assert // Round trip of biguint to bytes and back results in the same value + // tests/approvals/byte-expressions.algo.ts:10 + // assert(String(Bytes(c)) === c) + frame_dig -1 + dup + == + assert + // tests/approvals/byte-expressions.algo.ts:11 + // assert(Bytes(Bytes('123')) === Bytes('123')) + pushbytes "123" + dup + == + assert + // tests/approvals/byte-expressions.algo.ts:12 + // assert(Bytes([1, 2, 3, 4]) === Bytes.fromHex('01020304')) + pushbytes 0x01020304 + dup + == + assert + retsub diff --git a/tests/approvals/out/destructured-params/destructured-params.awst b/tests/approvals/out/destructured-params/destructured-params.awst index a3786741..74e85c82 100644 --- a/tests/approvals/out/destructured-params/destructured-params.awst +++ b/tests/approvals/out/destructured-params/destructured-params.awst @@ -5,7 +5,7 @@ subroutine test(p: { a: uint64, b: bytes, c: bool }): void } subroutine init(): void { - tests/approvals/destructured-params.algo.ts::test({ a: (#11 = { a: 1, b: "", c: False }).a, b: #11.b, c: #11.c }) + tests/approvals/destructured-params.algo.ts::test({ a: (#0 = { a: 1, b: "", c: False }).a, b: #0.b, c: #0.c }) temp: { a: uint64, b: bytes, c: bool } = { a: 2, b: "Hello", c: True } tests/approvals/destructured-params.algo.ts::test(temp) } \ No newline at end of file diff --git a/tests/approvals/out/destructured-params/destructured-params.awst.json b/tests/approvals/out/destructured-params/destructured-params.awst.json index 154c7716..38b53c40 100644 --- a/tests/approvals/out/destructured-params/destructured-params.awst.json +++ b/tests/approvals/out/destructured-params/destructured-params.awst.json @@ -14,7 +14,7 @@ "name": "p", "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -103,7 +103,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -204,7 +204,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -516,7 +516,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -577,7 +577,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -621,7 +621,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -713,7 +713,7 @@ } ] }, - "id": "11" + "id": "0" }, "name": "a" }, @@ -744,7 +744,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -788,7 +788,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -880,7 +880,7 @@ } ] }, - "id": "11" + "id": "0" }, "name": "b" }, @@ -911,7 +911,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -955,7 +955,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1047,7 +1047,7 @@ } ] }, - "id": "11" + "id": "0" }, "name": "c" } @@ -1077,7 +1077,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1123,7 +1123,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1260,7 +1260,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, diff --git a/tests/approvals/out/destructuring-iterators/destructuring-iterators.awst.json b/tests/approvals/out/destructuring-iterators/destructuring-iterators.awst.json index b7b6bae6..f00ad79f 100644 --- a/tests/approvals/out/destructuring-iterators/destructuring-iterators.awst.json +++ b/tests/approvals/out/destructuring-iterators/destructuring-iterators.awst.json @@ -53,7 +53,7 @@ "types": [ { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -80,7 +80,7 @@ }, { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -107,7 +107,7 @@ }, { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -154,7 +154,7 @@ "types": [ { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -181,7 +181,7 @@ }, { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -208,7 +208,7 @@ }, { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -247,7 +247,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -324,7 +324,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -401,7 +401,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -554,7 +554,7 @@ "types": [ { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -581,7 +581,7 @@ }, { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -608,7 +608,7 @@ }, { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -648,7 +648,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, diff --git a/tests/approvals/out/local-state/LocalStateDemo.approval.teal b/tests/approvals/out/local-state/LocalStateDemo.approval.teal index e792143f..12252a79 100644 --- a/tests/approvals/out/local-state/LocalStateDemo.approval.teal +++ b/tests/approvals/out/local-state/LocalStateDemo.approval.teal @@ -276,6 +276,7 @@ getState: // tests/approvals/local-state.algo.ts:25 // localUint2: this.localUint2(Txn.sender).value, app_local_get_ex + bury 1 assert // check LocalState exists // tests/approvals/local-state.algo.ts:26 // localBytes: this.localBytes(Txn.sender).value, @@ -287,6 +288,7 @@ getState: // tests/approvals/local-state.algo.ts:26 // localBytes: this.localBytes(Txn.sender).value, app_local_get_ex + bury 1 assert // check LocalState exists // tests/approvals/local-state.algo.ts:27 // localBytes2: this.localBytes2(Txn.sender).value, @@ -298,6 +300,244 @@ getState: // tests/approvals/local-state.algo.ts:27 // localBytes2: this.localBytes2(Txn.sender).value, app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:28 + // localEncoded: this.localEncoded(Txn.sender).value.copy(), + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:12 + // localEncoded = LocalState() + bytec 4 // "localEncoded" + // tests/approvals/local-state.algo.ts:28 + // localEncoded: this.localEncoded(Txn.sender).value.copy(), + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:24 + // localUint: this.localUint(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:8 + // localUint = LocalState({ key: 'l1' }) + bytec_0 // "l1" + // tests/approvals/local-state.algo.ts:24 + // localUint: this.localUint(Txn.sender).value, + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:25 + // localUint2: this.localUint2(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:9 + // localUint2 = LocalState() + bytec_1 // "localUint2" + // tests/approvals/local-state.algo.ts:25 + // localUint2: this.localUint2(Txn.sender).value, + app_local_get_ex + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:26 + // localBytes: this.localBytes(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:10 + // localBytes = LocalState({ key: 'b1' }) + bytec_2 // "b1" + // tests/approvals/local-state.algo.ts:26 + // localBytes: this.localBytes(Txn.sender).value, + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:27 + // localBytes2: this.localBytes2(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:11 + // localBytes2 = LocalState() + bytec_3 // "localBytes2" + // tests/approvals/local-state.algo.ts:27 + // localBytes2: this.localBytes2(Txn.sender).value, + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:28 + // localEncoded: this.localEncoded(Txn.sender).value.copy(), + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:12 + // localEncoded = LocalState() + bytec 4 // "localEncoded" + // tests/approvals/local-state.algo.ts:28 + // localEncoded: this.localEncoded(Txn.sender).value.copy(), + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:24 + // localUint: this.localUint(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:8 + // localUint = LocalState({ key: 'l1' }) + bytec_0 // "l1" + // tests/approvals/local-state.algo.ts:24 + // localUint: this.localUint(Txn.sender).value, + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:25 + // localUint2: this.localUint2(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:9 + // localUint2 = LocalState() + bytec_1 // "localUint2" + // tests/approvals/local-state.algo.ts:25 + // localUint2: this.localUint2(Txn.sender).value, + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:26 + // localBytes: this.localBytes(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:10 + // localBytes = LocalState({ key: 'b1' }) + bytec_2 // "b1" + // tests/approvals/local-state.algo.ts:26 + // localBytes: this.localBytes(Txn.sender).value, + app_local_get_ex + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:27 + // localBytes2: this.localBytes2(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:11 + // localBytes2 = LocalState() + bytec_3 // "localBytes2" + // tests/approvals/local-state.algo.ts:27 + // localBytes2: this.localBytes2(Txn.sender).value, + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:28 + // localEncoded: this.localEncoded(Txn.sender).value.copy(), + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:12 + // localEncoded = LocalState() + bytec 4 // "localEncoded" + // tests/approvals/local-state.algo.ts:28 + // localEncoded: this.localEncoded(Txn.sender).value.copy(), + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:24 + // localUint: this.localUint(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:8 + // localUint = LocalState({ key: 'l1' }) + bytec_0 // "l1" + // tests/approvals/local-state.algo.ts:24 + // localUint: this.localUint(Txn.sender).value, + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:25 + // localUint2: this.localUint2(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:9 + // localUint2 = LocalState() + bytec_1 // "localUint2" + // tests/approvals/local-state.algo.ts:25 + // localUint2: this.localUint2(Txn.sender).value, + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:26 + // localBytes: this.localBytes(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:10 + // localBytes = LocalState({ key: 'b1' }) + bytec_2 // "b1" + // tests/approvals/local-state.algo.ts:26 + // localBytes: this.localBytes(Txn.sender).value, + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:27 + // localBytes2: this.localBytes2(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:11 + // localBytes2 = LocalState() + bytec_3 // "localBytes2" + // tests/approvals/local-state.algo.ts:27 + // localBytes2: this.localBytes2(Txn.sender).value, + app_local_get_ex + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:28 + // localEncoded: this.localEncoded(Txn.sender).value.copy(), + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:12 + // localEncoded = LocalState() + bytec 4 // "localEncoded" + // tests/approvals/local-state.algo.ts:28 + // localEncoded: this.localEncoded(Txn.sender).value.copy(), + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:24 + // localUint: this.localUint(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:8 + // localUint = LocalState({ key: 'l1' }) + bytec_0 // "l1" + // tests/approvals/local-state.algo.ts:24 + // localUint: this.localUint(Txn.sender).value, + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:25 + // localUint2: this.localUint2(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:9 + // localUint2 = LocalState() + bytec_1 // "localUint2" + // tests/approvals/local-state.algo.ts:25 + // localUint2: this.localUint2(Txn.sender).value, + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:26 + // localBytes: this.localBytes(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:10 + // localBytes = LocalState({ key: 'b1' }) + bytec_2 // "b1" + // tests/approvals/local-state.algo.ts:26 + // localBytes: this.localBytes(Txn.sender).value, + app_local_get_ex + bury 1 + assert // check LocalState exists + // tests/approvals/local-state.algo.ts:27 + // localBytes2: this.localBytes2(Txn.sender).value, + txn Sender + intc_0 // 0 + // tests/approvals/local-state.algo.ts:11 + // localBytes2 = LocalState() + bytec_3 // "localBytes2" + // tests/approvals/local-state.algo.ts:27 + // localBytes2: this.localBytes2(Txn.sender).value, + app_local_get_ex + bury 1 assert // check LocalState exists // tests/approvals/local-state.algo.ts:28 // localEncoded: this.localEncoded(Txn.sender).value.copy(), diff --git a/tests/approvals/out/local-state/LocalStateDemo.arc32.json b/tests/approvals/out/local-state/LocalStateDemo.arc32.json index 493006f6..587a5a02 100644 --- a/tests/approvals/out/local-state/LocalStateDemo.arc32.json +++ b/tests/approvals/out/local-state/LocalStateDemo.arc32.json @@ -3,11 +3,53 @@ "setState((uint64,byte[]),uint64[10])void": { "call_config": { "no_op": "CALL" + }, + "structs": { + "p": { + "name": "", + "elements": [ + [ + "a", + "uint64" + ], + [ + "b", + "byte[]" + ] + ] + } } }, "getState()(uint64,uint64,byte[],byte[],uint64[10])": { "call_config": { "no_op": "CALL" + }, + "structs": { + "output": { + "name": "getStateResult", + "elements": [ + [ + "localUint", + "uint64" + ], + [ + "localUint2", + "uint64" + ], + [ + "localBytes", + "byte[]" + ], + [ + "localBytes2", + "byte[]" + ], + [ + "localEncoded", + "uint64[10]" + ] + ] + } } }, "clearState()void": { @@ -17,7 +59,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgp0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo6TG9jYWxTdGF0ZURlbW8uYXBwcm92YWxQcm9ncmFtOgogICAgaW50Y2Jsb2NrIDAgMSA4IDEwMAogICAgYnl0ZWNibG9jayAibDEiICJsb2NhbFVpbnQyIiAiYjEiICJsb2NhbEJ5dGVzMiIgImxvY2FsRW5jb2RlZCIKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgogICAgY2FsbHN1YiBfX3B1eWFfYXJjNF9yb3V0ZXJfXwogICAgcmV0dXJuCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTG9jYWxTdGF0ZURlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBwcm90byAwIDAKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfXygpIC0+IHVpbnQ2NDoKX19wdXlhX2FyYzRfcm91dGVyX186CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTG9jYWxTdGF0ZURlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBwcm90byAwIDEKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IF9fcHV5YV9hcmM0X3JvdXRlcl9fX2JhcmVfcm91dGluZ0A3CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhhYWVmY2I0MyAvLyBtZXRob2QgInNldFN0YXRlKCh1aW50NjQsYnl0ZVtdKSx1aW50NjRbMTBdKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHg2NzgxNmNjNSAvLyBtZXRob2QgImdldFN0YXRlKCkodWludDY0LHVpbnQ2NCxieXRlW10sYnl0ZVtdLHVpbnQ2NFsxMF0pIgogICAgcHVzaGJ5dGVzIDB4MTExNzA1MzQgLy8gbWV0aG9kICJjbGVhclN0YXRlKCl2b2lkIgogICAgdW5jb3ZlciAzCiAgICBtYXRjaCBfX3B1eWFfYXJjNF9yb3V0ZXJfX19zZXRTdGF0ZV9yb3V0ZUAyIF9fcHV5YV9hcmM0X3JvdXRlcl9fX2dldFN0YXRlX3JvdXRlQDMgX19wdXlhX2FyYzRfcm91dGVyX19fY2xlYXJTdGF0ZV9yb3V0ZUA0CiAgICBiIF9fcHV5YV9hcmM0X3JvdXRlcl9fX3N3aXRjaF9jYXNlX2RlZmF1bHRANQoKX19wdXlhX2FyYzRfcm91dGVyX19fc2V0U3RhdGVfcm91dGVAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE0CiAgICAvLyBwdWJsaWMgc2V0U3RhdGUoeyBhLCBiIH06IHsgYTogdWludDY0OyBiOiBieXRlcyB9LCBjOiBTYW1wbGVBcnJheSkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgc3dhcAogICAgZHVwCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdF91aW50MTYKICAgIHN3YXAKICAgIGR1cAogICAgbGVuCiAgICBzd2FwCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE0CiAgICAvLyBwdWJsaWMgc2V0U3RhdGUoeyBhLCBiIH06IHsgYTogdWludDY0OyBiOiBieXRlcyB9LCBjOiBTYW1wbGVBcnJheSkgewogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgY2FsbHN1YiBzZXRTdGF0ZQogICAgaW50Y18xIC8vIDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fZ2V0U3RhdGVfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjIyCiAgICAvLyBwdWJsaWMgZ2V0U3RhdGUoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldFN0YXRlCiAgICBjb3ZlciA0CiAgICBjb3ZlciAzCiAgICBjb3ZlciAyCiAgICBzd2FwCiAgICBpdG9iCiAgICBjb3ZlciAzCiAgICBpdG9iCiAgICBjb3ZlciAzCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY292ZXIgMwogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvdmVyIDMKICAgIHB1c2hieXRlcyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGludGNfMyAvLyAxMDAKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBjb25jYXQKICAgIGRpZyAxCiAgICBsZW4KICAgIGludGNfMyAvLyAxMDAKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19jbGVhclN0YXRlX3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMgogICAgLy8gcHVibGljIGNsZWFyU3RhdGUoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGNsZWFyU3RhdGUKICAgIGludGNfMSAvLyAxCiAgICByZXRzdWIKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKICAgIGIgX19wdXlhX2FyYzRfcm91dGVyX19fYWZ0ZXJfaWZfZWxzZUAxMQoKX19wdXlhX2FyYzRfcm91dGVyX19fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTG9jYWxTdGF0ZURlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggX19wdXlhX2FyYzRfcm91dGVyX19fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKICAgIGIgX19wdXlhX2FyYzRfcm91dGVyX19fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5CgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBMb2NhbFN0YXRlRGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6CgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5zZXRTdGF0ZShwLmE6IHVpbnQ2NCwgcC5iOiBieXRlcywgYzogYnl0ZXMpIC0+IHZvaWQ6CnNldFN0YXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTQKICAgIC8vIHB1YmxpYyBzZXRTdGF0ZSh7IGEsIGIgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzIH0sIGM6IFNhbXBsZUFycmF5KSB7CiAgICBwcm90byAzIDAKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNQogICAgLy8gdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUgPSBhCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo4CiAgICAvLyBsb2NhbFVpbnQgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6ICdsMScgfSkKICAgIGJ5dGVjXzAgLy8gImwxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTUKICAgIC8vIHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlID0gYQogICAgZGlnIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE2CiAgICAvLyB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUgPSBhCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo5CiAgICAvLyBsb2NhbFVpbnQyID0gTG9jYWxTdGF0ZTx1aW50NjQ+KCkKICAgIGJ5dGVjXzEgLy8gImxvY2FsVWludDIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNgogICAgLy8gdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlID0gYQogICAgdW5jb3ZlciAyCiAgICBhcHBfbG9jYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNwogICAgLy8gdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlID0gYgogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTAKICAgIC8vIGxvY2FsQnl0ZXMgPSBMb2NhbFN0YXRlPGJ5dGVzPih7IGtleTogJ2IxJyB9KQogICAgYnl0ZWNfMiAvLyAiYjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNwogICAgLy8gdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlID0gYgogICAgZGlnIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE4CiAgICAvLyB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlID0gYgogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxOAogICAgLy8gdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSA9IGIKICAgIHVuY292ZXIgMgogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTkKICAgIC8vIHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlID0gYy5jb3B5KCkKICAgIGZyYW1lX2RpZyAtMQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE5CiAgICAvLyB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZSA9IGMuY29weSgpCiAgICB1bmNvdmVyIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5nZXRTdGF0ZSgpIC0+IHVpbnQ2NCwgdWludDY0LCBieXRlcywgYnl0ZXMsIGJ5dGVzOgpnZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjIyCiAgICAvLyBwdWJsaWMgZ2V0U3RhdGUoKSB7CiAgICBwcm90byAwIDUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI0CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNAogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjUKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo5CiAgICAvLyBsb2NhbFVpbnQyID0gTG9jYWxTdGF0ZTx1aW50NjQ+KCkKICAgIGJ5dGVjXzEgLy8gImxvY2FsVWludDIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNQogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNgogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEwCiAgICAvLyBsb2NhbEJ5dGVzID0gTG9jYWxTdGF0ZTxieXRlcz4oeyBrZXk6ICdiMScgfSkKICAgIGJ5dGVjXzIgLy8gImIxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjYKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjExCiAgICAvLyBsb2NhbEJ5dGVzMiA9IExvY2FsU3RhdGU8Ynl0ZXM+KCkKICAgIGJ5dGVjXzMgLy8gImxvY2FsQnl0ZXMyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjMtMjkKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICAvLyAgIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIC8vICAgbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgLy8gICBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIC8vICAgbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICAvLyB9CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLmNsZWFyU3RhdGUoKSAtPiB2b2lkOgpjbGVhclN0YXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzIKICAgIC8vIHB1YmxpYyBjbGVhclN0YXRlKCkgewogICAgcHJvdG8gMCAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMwogICAgLy8gdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMwogICAgLy8gdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIGFwcF9sb2NhbF9kZWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM0CiAgICAvLyB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM0CiAgICAvLyB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIGFwcF9sb2NhbF9kZWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM1CiAgICAvLyB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEwCiAgICAvLyBsb2NhbEJ5dGVzID0gTG9jYWxTdGF0ZTxieXRlcz4oeyBrZXk6ICdiMScgfSkKICAgIGJ5dGVjXzIgLy8gImIxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgYXBwX2xvY2FsX2RlbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzYKICAgIC8vIHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjExCiAgICAvLyBsb2NhbEJ5dGVzMiA9IExvY2FsU3RhdGU8Ynl0ZXM+KCkKICAgIGJ5dGVjXzMgLy8gImxvY2FsQnl0ZXMyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzYKICAgIC8vIHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIGFwcF9sb2NhbF9kZWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM3CiAgICAvLyB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM3CiAgICAvLyB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgYXBwX2xvY2FsX2RlbAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBMb2NhbFN0YXRlRGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHByb3RvIDAgMAogICAgcmV0c3ViCg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgp0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo6TG9jYWxTdGF0ZURlbW8uYXBwcm92YWxQcm9ncmFtOgogICAgaW50Y2Jsb2NrIDAgMSA4IDEwMAogICAgYnl0ZWNibG9jayAibDEiICJsb2NhbFVpbnQyIiAiYjEiICJsb2NhbEJ5dGVzMiIgImxvY2FsRW5jb2RlZCIKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKICAgIGNhbGxzdWIgY29uc3RydWN0b3IKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgogICAgY2FsbHN1YiBfX3B1eWFfYXJjNF9yb3V0ZXJfXwogICAgcmV0dXJuCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLmNvbnN0cnVjdG9yKCkgLT4gdm9pZDoKY29uc3RydWN0b3I6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTG9jYWxTdGF0ZURlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBwcm90byAwIDAKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5fX3B1eWFfYXJjNF9yb3V0ZXJfXygpIC0+IHVpbnQ2NDoKX19wdXlhX2FyYzRfcm91dGVyX186CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTG9jYWxTdGF0ZURlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICBwcm90byAwIDEKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IF9fcHV5YV9hcmM0X3JvdXRlcl9fX2JhcmVfcm91dGluZ0A3CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhhYWVmY2I0MyAvLyBtZXRob2QgInNldFN0YXRlKCh1aW50NjQsYnl0ZVtdKSx1aW50NjRbMTBdKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHg2NzgxNmNjNSAvLyBtZXRob2QgImdldFN0YXRlKCkodWludDY0LHVpbnQ2NCxieXRlW10sYnl0ZVtdLHVpbnQ2NFsxMF0pIgogICAgcHVzaGJ5dGVzIDB4MTExNzA1MzQgLy8gbWV0aG9kICJjbGVhclN0YXRlKCl2b2lkIgogICAgdW5jb3ZlciAzCiAgICBtYXRjaCBfX3B1eWFfYXJjNF9yb3V0ZXJfX19zZXRTdGF0ZV9yb3V0ZUAyIF9fcHV5YV9hcmM0X3JvdXRlcl9fX2dldFN0YXRlX3JvdXRlQDMgX19wdXlhX2FyYzRfcm91dGVyX19fY2xlYXJTdGF0ZV9yb3V0ZUA0CiAgICBiIF9fcHV5YV9hcmM0X3JvdXRlcl9fX3N3aXRjaF9jYXNlX2RlZmF1bHRANQoKX19wdXlhX2FyYzRfcm91dGVyX19fc2V0U3RhdGVfcm91dGVAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE0CiAgICAvLyBwdWJsaWMgc2V0U3RhdGUoeyBhLCBiIH06IHsgYTogdWludDY0OyBiOiBieXRlcyB9LCBjOiBTYW1wbGVBcnJheSkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgc3dhcAogICAgZHVwCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdF91aW50MTYKICAgIHN3YXAKICAgIGR1cAogICAgbGVuCiAgICBzd2FwCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE0CiAgICAvLyBwdWJsaWMgc2V0U3RhdGUoeyBhLCBiIH06IHsgYTogdWludDY0OyBiOiBieXRlcyB9LCBjOiBTYW1wbGVBcnJheSkgewogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgY2FsbHN1YiBzZXRTdGF0ZQogICAgaW50Y18xIC8vIDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fZ2V0U3RhdGVfcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjIyCiAgICAvLyBwdWJsaWMgZ2V0U3RhdGUoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldFN0YXRlCiAgICBjb3ZlciA0CiAgICBjb3ZlciAzCiAgICBjb3ZlciAyCiAgICBzd2FwCiAgICBpdG9iCiAgICBjb3ZlciAzCiAgICBpdG9iCiAgICBjb3ZlciAzCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgY292ZXIgMwogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvdmVyIDMKICAgIHB1c2hieXRlcyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGludGNfMyAvLyAxMDAKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBjb25jYXQKICAgIGRpZyAxCiAgICBsZW4KICAgIGludGNfMyAvLyAxMDAKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19jbGVhclN0YXRlX3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMgogICAgLy8gcHVibGljIGNsZWFyU3RhdGUoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGNsZWFyU3RhdGUKICAgIGludGNfMSAvLyAxCiAgICByZXRzdWIKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX3N3aXRjaF9jYXNlX2RlZmF1bHRANToKICAgIGIgX19wdXlhX2FyYzRfcm91dGVyX19fYWZ0ZXJfaWZfZWxzZUAxMQoKX19wdXlhX2FyYzRfcm91dGVyX19fYmFyZV9yb3V0aW5nQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo3CiAgICAvLyBleHBvcnQgY2xhc3MgTG9jYWxTdGF0ZURlbW8gZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gMAogICAgc3dhcAogICAgbWF0Y2ggX19wdXlhX2FyYzRfcm91dGVyX19fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDgKICAgIGIgX19wdXlhX2FyYzRfcm91dGVyX19fc3dpdGNoX2Nhc2VfZGVmYXVsdEA5CgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAODoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBMb2NhbFN0YXRlRGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgPT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGNhbGxzdWIgX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19zd2l0Y2hfY2FzZV9kZWZhdWx0QDk6CgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19hZnRlcl9pZl9lbHNlQDExOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6NwogICAgLy8gZXhwb3J0IGNsYXNzIExvY2FsU3RhdGVEZW1vIGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5zZXRTdGF0ZShwLmE6IHVpbnQ2NCwgcC5iOiBieXRlcywgYzogYnl0ZXMpIC0+IHZvaWQ6CnNldFN0YXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTQKICAgIC8vIHB1YmxpYyBzZXRTdGF0ZSh7IGEsIGIgfTogeyBhOiB1aW50NjQ7IGI6IGJ5dGVzIH0sIGM6IFNhbXBsZUFycmF5KSB7CiAgICBwcm90byAzIDAKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNQogICAgLy8gdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUgPSBhCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo4CiAgICAvLyBsb2NhbFVpbnQgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6ICdsMScgfSkKICAgIGJ5dGVjXzAgLy8gImwxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTUKICAgIC8vIHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlID0gYQogICAgZGlnIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE2CiAgICAvLyB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUgPSBhCiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo5CiAgICAvLyBsb2NhbFVpbnQyID0gTG9jYWxTdGF0ZTx1aW50NjQ+KCkKICAgIGJ5dGVjXzEgLy8gImxvY2FsVWludDIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNgogICAgLy8gdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlID0gYQogICAgdW5jb3ZlciAyCiAgICBhcHBfbG9jYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNwogICAgLy8gdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlID0gYgogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTAKICAgIC8vIGxvY2FsQnl0ZXMgPSBMb2NhbFN0YXRlPGJ5dGVzPih7IGtleTogJ2IxJyB9KQogICAgYnl0ZWNfMiAvLyAiYjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxNwogICAgLy8gdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlID0gYgogICAgZGlnIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE4CiAgICAvLyB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlID0gYgogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxOAogICAgLy8gdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSA9IGIKICAgIHVuY292ZXIgMgogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTkKICAgIC8vIHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlID0gYy5jb3B5KCkKICAgIGZyYW1lX2RpZyAtMQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjE5CiAgICAvLyB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZSA9IGMuY29weSgpCiAgICB1bmNvdmVyIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjpMb2NhbFN0YXRlRGVtby5nZXRTdGF0ZSgpIC0+IHVpbnQ2NCwgdWludDY0LCBieXRlcywgYnl0ZXMsIGJ5dGVzOgpnZXRTdGF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjIyCiAgICAvLyBwdWJsaWMgZ2V0U3RhdGUoKSB7CiAgICBwcm90byAwIDUKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI0CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNAogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjUKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo5CiAgICAvLyBsb2NhbFVpbnQyID0gTG9jYWxTdGF0ZTx1aW50NjQ+KCkKICAgIGJ5dGVjXzEgLy8gImxvY2FsVWludDIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNQogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI2CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTAKICAgIC8vIGxvY2FsQnl0ZXMgPSBMb2NhbFN0YXRlPGJ5dGVzPih7IGtleTogJ2IxJyB9KQogICAgYnl0ZWNfMiAvLyAiYjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNgogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMQogICAgLy8gbG9jYWxCeXRlczIgPSBMb2NhbFN0YXRlPGJ5dGVzPigpCiAgICBieXRlY18zIC8vICJsb2NhbEJ5dGVzMiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNAogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo4CiAgICAvLyBsb2NhbFVpbnQgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6ICdsMScgfSkKICAgIGJ5dGVjXzAgLy8gImwxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjQKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjUKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo5CiAgICAvLyBsb2NhbFVpbnQyID0gTG9jYWxTdGF0ZTx1aW50NjQ+KCkKICAgIGJ5dGVjXzEgLy8gImxvY2FsVWludDIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNQogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNgogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEwCiAgICAvLyBsb2NhbEJ5dGVzID0gTG9jYWxTdGF0ZTxieXRlcz4oeyBrZXk6ICdiMScgfSkKICAgIGJ5dGVjXzIgLy8gImIxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjYKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNwogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTEKICAgIC8vIGxvY2FsQnl0ZXMyID0gTG9jYWxTdGF0ZTxieXRlcz4oKQogICAgYnl0ZWNfMyAvLyAibG9jYWxCeXRlczIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNwogICAgLy8gbG9jYWxCeXRlczI6IHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjgKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEyCiAgICAvLyBsb2NhbEVuY29kZWQgPSBMb2NhbFN0YXRlPFNhbXBsZUFycmF5PigpCiAgICBieXRlYyA0IC8vICJsb2NhbEVuY29kZWQiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjQKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OAogICAgLy8gbG9jYWxVaW50ID0gTG9jYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiAnbDEnIH0pCiAgICBieXRlY18wIC8vICJsMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI0CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI1CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OQogICAgLy8gbG9jYWxVaW50MiA9IExvY2FsU3RhdGU8dWludDY0PigpCiAgICBieXRlY18xIC8vICJsb2NhbFVpbnQyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjUKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNgogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEwCiAgICAvLyBsb2NhbEJ5dGVzID0gTG9jYWxTdGF0ZTxieXRlcz4oeyBrZXk6ICdiMScgfSkKICAgIGJ5dGVjXzIgLy8gImIxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjYKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjExCiAgICAvLyBsb2NhbEJ5dGVzMiA9IExvY2FsU3RhdGU8Ynl0ZXM+KCkKICAgIGJ5dGVjXzMgLy8gImxvY2FsQnl0ZXMyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMgogICAgLy8gbG9jYWxFbmNvZGVkID0gTG9jYWxTdGF0ZTxTYW1wbGVBcnJheT4oKQogICAgYnl0ZWMgNCAvLyAibG9jYWxFbmNvZGVkIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjgKICAgIC8vIGxvY2FsRW5jb2RlZDogdGhpcy5sb2NhbEVuY29kZWQoVHhuLnNlbmRlcikudmFsdWUuY29weSgpLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI0CiAgICAvLyBsb2NhbFVpbnQ6IHRoaXMubG9jYWxVaW50KFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNAogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNQogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI1CiAgICAvLyBsb2NhbFVpbnQyOiB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjYKICAgIC8vIGxvY2FsQnl0ZXM6IHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMAogICAgLy8gbG9jYWxCeXRlcyA9IExvY2FsU3RhdGU8Ynl0ZXM+KHsga2V5OiAnYjEnIH0pCiAgICBieXRlY18yIC8vICJiMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI2CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjExCiAgICAvLyBsb2NhbEJ5dGVzMiA9IExvY2FsU3RhdGU8Ynl0ZXM+KCkKICAgIGJ5dGVjXzMgLy8gImxvY2FsQnl0ZXMyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjcKICAgIC8vIGxvY2FsQnl0ZXMyOiB0aGlzLmxvY2FsQnl0ZXMyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNAogICAgLy8gbG9jYWxVaW50OiB0aGlzLmxvY2FsVWludChUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo4CiAgICAvLyBsb2NhbFVpbnQgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6ICdsMScgfSkKICAgIGJ5dGVjXzAgLy8gImwxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjQKICAgIC8vIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjUKICAgIC8vIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo5CiAgICAvLyBsb2NhbFVpbnQyID0gTG9jYWxTdGF0ZTx1aW50NjQ+KCkKICAgIGJ5dGVjXzEgLy8gImxvY2FsVWludDIiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNQogICAgLy8gbG9jYWxVaW50MjogdGhpcy5sb2NhbFVpbnQyKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI2CiAgICAvLyBsb2NhbEJ5dGVzOiB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikudmFsdWUsCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTAKICAgIC8vIGxvY2FsQnl0ZXMgPSBMb2NhbFN0YXRlPGJ5dGVzPih7IGtleTogJ2IxJyB9KQogICAgYnl0ZWNfMiAvLyAiYjEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyNgogICAgLy8gbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoxMQogICAgLy8gbG9jYWxCeXRlczIgPSBMb2NhbFN0YXRlPGJ5dGVzPigpCiAgICBieXRlY18zIC8vICJsb2NhbEJ5dGVzMiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI3CiAgICAvLyBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czoyOAogICAgLy8gbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjI4CiAgICAvLyBsb2NhbEVuY29kZWQ6IHRoaXMubG9jYWxFbmNvZGVkKFR4bi5zZW5kZXIpLnZhbHVlLmNvcHkoKSwKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MjMtMjkKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIGxvY2FsVWludDogdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikudmFsdWUsCiAgICAvLyAgIGxvY2FsVWludDI6IHRoaXMubG9jYWxVaW50MihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIC8vICAgbG9jYWxCeXRlczogdGhpcy5sb2NhbEJ5dGVzKFR4bi5zZW5kZXIpLnZhbHVlLAogICAgLy8gICBsb2NhbEJ5dGVzMjogdGhpcy5sb2NhbEJ5dGVzMihUeG4uc2VuZGVyKS52YWx1ZSwKICAgIC8vICAgbG9jYWxFbmNvZGVkOiB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS52YWx1ZS5jb3B5KCksCiAgICAvLyB9CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgdW5jb3ZlciA0CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLmNsZWFyU3RhdGUoKSAtPiB2b2lkOgpjbGVhclN0YXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzIKICAgIC8vIHB1YmxpYyBjbGVhclN0YXRlKCkgewogICAgcHJvdG8gMCAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMwogICAgLy8gdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjgKICAgIC8vIGxvY2FsVWludCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogJ2wxJyB9KQogICAgYnl0ZWNfMCAvLyAibDEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czozMwogICAgLy8gdGhpcy5sb2NhbFVpbnQoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIGFwcF9sb2NhbF9kZWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM0CiAgICAvLyB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjkKICAgIC8vIGxvY2FsVWludDIgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oKQogICAgYnl0ZWNfMSAvLyAibG9jYWxVaW50MiIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM0CiAgICAvLyB0aGlzLmxvY2FsVWludDIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIGFwcF9sb2NhbF9kZWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM1CiAgICAvLyB0aGlzLmxvY2FsQnl0ZXMoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjEwCiAgICAvLyBsb2NhbEJ5dGVzID0gTG9jYWxTdGF0ZTxieXRlcz4oeyBrZXk6ICdiMScgfSkKICAgIGJ5dGVjXzIgLy8gImIxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzUKICAgIC8vIHRoaXMubG9jYWxCeXRlcyhUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgYXBwX2xvY2FsX2RlbAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzYKICAgIC8vIHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjExCiAgICAvLyBsb2NhbEJ5dGVzMiA9IExvY2FsU3RhdGU8Ynl0ZXM+KCkKICAgIGJ5dGVjXzMgLy8gImxvY2FsQnl0ZXMyIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MzYKICAgIC8vIHRoaXMubG9jYWxCeXRlczIoVHhuLnNlbmRlcikuZGVsZXRlKCkKICAgIGFwcF9sb2NhbF9kZWwKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM3CiAgICAvLyB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgdHhuIFNlbmRlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6MTIKICAgIC8vIGxvY2FsRW5jb2RlZCA9IExvY2FsU3RhdGU8U2FtcGxlQXJyYXk+KCkKICAgIGJ5dGVjIDQgLy8gImxvY2FsRW5jb2RlZCIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjM3CiAgICAvLyB0aGlzLmxvY2FsRW5jb2RlZChUeG4uc2VuZGVyKS5kZWxldGUoKQogICAgYXBwX2xvY2FsX2RlbAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLXN0YXRlLmFsZ28udHM6OkxvY2FsU3RhdGVEZW1vLl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1zdGF0ZS5hbGdvLnRzOjcKICAgIC8vIGV4cG9ydCBjbGFzcyBMb2NhbFN0YXRlRGVtbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHByb3RvIDAgMAogICAgcmV0c3ViCg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCgp0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtc3RhdGUuYWxnby50czo6TG9jYWxTdGF0ZURlbW8uY2xlYXJTdGF0ZVByb2dyYW06CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { diff --git a/tests/approvals/out/local-state/LocalStateDemo.ssa.ir b/tests/approvals/out/local-state/LocalStateDemo.ssa.ir index 059996dd..53941150 100644 --- a/tests/approvals/out/local-state/LocalStateDemo.ssa.ir +++ b/tests/approvals/out/local-state/LocalStateDemo.ssa.ir @@ -142,7 +142,71 @@ contract tests/approvals/local-state.algo.ts::LocalStateDemo: let (maybe_value%4#0: bytes, maybe_exists%4#0: bool) = (app_local_get_ex tmp%4#0 0u "localEncoded") (assert maybe_exists%4#0) // check LocalState exists let copy%0#0: bytes = maybe_value%4#0 - return maybe_value%0#0 maybe_value%1#0 maybe_value%2#0 maybe_value%3#0 copy%0#0 + let tmp%5#0: bytes = (txn Sender) + let (maybe_value%5#0: uint64, maybe_exists%5#0: bool) = (app_local_get_ex tmp%5#0 0u "l1") + (assert maybe_exists%5#0) // check LocalState exists + let tmp%6#0: bytes = (txn Sender) + let (maybe_value%6#0: uint64, maybe_exists%6#0: bool) = (app_local_get_ex tmp%6#0 0u "localUint2") + (assert maybe_exists%6#0) // check LocalState exists + let tmp%7#0: bytes = (txn Sender) + let (maybe_value%7#0: bytes, maybe_exists%7#0: bool) = (app_local_get_ex tmp%7#0 0u "b1") + (assert maybe_exists%7#0) // check LocalState exists + let tmp%8#0: bytes = (txn Sender) + let (maybe_value%8#0: bytes, maybe_exists%8#0: bool) = (app_local_get_ex tmp%8#0 0u "localBytes2") + (assert maybe_exists%8#0) // check LocalState exists + let tmp%9#0: bytes = (txn Sender) + let (maybe_value%9#0: bytes, maybe_exists%9#0: bool) = (app_local_get_ex tmp%9#0 0u "localEncoded") + (assert maybe_exists%9#0) // check LocalState exists + let copy%1#0: bytes = maybe_value%9#0 + let tmp%10#0: bytes = (txn Sender) + let (maybe_value%10#0: uint64, maybe_exists%10#0: bool) = (app_local_get_ex tmp%10#0 0u "l1") + (assert maybe_exists%10#0) // check LocalState exists + let tmp%11#0: bytes = (txn Sender) + let (maybe_value%11#0: uint64, maybe_exists%11#0: bool) = (app_local_get_ex tmp%11#0 0u "localUint2") + (assert maybe_exists%11#0) // check LocalState exists + let tmp%12#0: bytes = (txn Sender) + let (maybe_value%12#0: bytes, maybe_exists%12#0: bool) = (app_local_get_ex tmp%12#0 0u "b1") + (assert maybe_exists%12#0) // check LocalState exists + let tmp%13#0: bytes = (txn Sender) + let (maybe_value%13#0: bytes, maybe_exists%13#0: bool) = (app_local_get_ex tmp%13#0 0u "localBytes2") + (assert maybe_exists%13#0) // check LocalState exists + let tmp%14#0: bytes = (txn Sender) + let (maybe_value%14#0: bytes, maybe_exists%14#0: bool) = (app_local_get_ex tmp%14#0 0u "localEncoded") + (assert maybe_exists%14#0) // check LocalState exists + let copy%2#0: bytes = maybe_value%14#0 + let tmp%15#0: bytes = (txn Sender) + let (maybe_value%15#0: uint64, maybe_exists%15#0: bool) = (app_local_get_ex tmp%15#0 0u "l1") + (assert maybe_exists%15#0) // check LocalState exists + let tmp%16#0: bytes = (txn Sender) + let (maybe_value%16#0: uint64, maybe_exists%16#0: bool) = (app_local_get_ex tmp%16#0 0u "localUint2") + (assert maybe_exists%16#0) // check LocalState exists + let tmp%17#0: bytes = (txn Sender) + let (maybe_value%17#0: bytes, maybe_exists%17#0: bool) = (app_local_get_ex tmp%17#0 0u "b1") + (assert maybe_exists%17#0) // check LocalState exists + let tmp%18#0: bytes = (txn Sender) + let (maybe_value%18#0: bytes, maybe_exists%18#0: bool) = (app_local_get_ex tmp%18#0 0u "localBytes2") + (assert maybe_exists%18#0) // check LocalState exists + let tmp%19#0: bytes = (txn Sender) + let (maybe_value%19#0: bytes, maybe_exists%19#0: bool) = (app_local_get_ex tmp%19#0 0u "localEncoded") + (assert maybe_exists%19#0) // check LocalState exists + let copy%3#0: bytes = maybe_value%19#0 + let tmp%20#0: bytes = (txn Sender) + let (maybe_value%20#0: uint64, maybe_exists%20#0: bool) = (app_local_get_ex tmp%20#0 0u "l1") + (assert maybe_exists%20#0) // check LocalState exists + let tmp%21#0: bytes = (txn Sender) + let (maybe_value%21#0: uint64, maybe_exists%21#0: bool) = (app_local_get_ex tmp%21#0 0u "localUint2") + (assert maybe_exists%21#0) // check LocalState exists + let tmp%22#0: bytes = (txn Sender) + let (maybe_value%22#0: bytes, maybe_exists%22#0: bool) = (app_local_get_ex tmp%22#0 0u "b1") + (assert maybe_exists%22#0) // check LocalState exists + let tmp%23#0: bytes = (txn Sender) + let (maybe_value%23#0: bytes, maybe_exists%23#0: bool) = (app_local_get_ex tmp%23#0 0u "localBytes2") + (assert maybe_exists%23#0) // check LocalState exists + let tmp%24#0: bytes = (txn Sender) + let (maybe_value%24#0: bytes, maybe_exists%24#0: bool) = (app_local_get_ex tmp%24#0 0u "localEncoded") + (assert maybe_exists%24#0) // check LocalState exists + let copy%4#0: bytes = maybe_value%24#0 + return maybe_value%0#0 maybe_value%6#0 maybe_value%12#0 maybe_value%18#0 copy%4#0 subroutine tests/approvals/local-state.algo.ts::LocalStateDemo.clearState() -> void: block@0: // L32 diff --git a/tests/approvals/out/local-state/local-state.awst b/tests/approvals/out/local-state/local-state.awst index 99a8f94b..972b5ffd 100644 --- a/tests/approvals/out/local-state/local-state.awst +++ b/tests/approvals/out/local-state/local-state.awst @@ -30,9 +30,9 @@ contract LocalStateDemo LocalState[txn()]["localEncoded"]: arc4.static_array = copy(c) } - getState(): { localUint: uint64, localUint2: uint64, localBytes: bytes, localBytes2: bytes, localEncoded: arc4.static_array } + getState(): getStateResult{ localUint: uint64, localUint2: uint64, localBytes: bytes, localBytes2: bytes, localEncoded: arc4.static_array } { - return { localUint: LocalState[txn()]["l1"], localUint2: LocalState[txn()]["localUint2"], localBytes: LocalState[txn()]["b1"], localBytes2: LocalState[txn()]["localBytes2"], localEncoded: copy(LocalState[txn()]["localEncoded"]) } + return { localUint: (#0 = { localUint: LocalState[txn()]["l1"], localUint2: LocalState[txn()]["localUint2"], localBytes: LocalState[txn()]["b1"], localBytes2: LocalState[txn()]["localBytes2"], localEncoded: copy(LocalState[txn()]["localEncoded"]) }).localUint, localUint2: #0.localUint2, localBytes: #0.localBytes, localBytes2: #0.localBytes2, localEncoded: #0.localEncoded } } clearState(): void diff --git a/tests/approvals/out/local-state/local-state.awst.json b/tests/approvals/out/local-state/local-state.awst.json index 24bc0d8d..57cfd471 100644 --- a/tests/approvals/out/local-state/local-state.awst.json +++ b/tests/approvals/out/local-state/local-state.awst.json @@ -312,7 +312,7 @@ "name": "p", "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -431,7 +431,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -506,7 +506,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1100,7 +1100,7 @@ "default_args": {}, "structs": { "__0": { - "name": "Anonymous", + "name": "", "elements": [ [ "a", @@ -1127,7 +1127,7 @@ "args": [], "return_type": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/local-state.algo.ts::getStateResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1226,7 +1226,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/local-state.algo.ts::getStateResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1297,13 +1297,13 @@ }, "items": [ { - "_type": "AppAccountStateExpression", + "_type": "FieldExpression", "source_location": { "file": "tests/approvals/local-state.algo.ts", - "line": 24, - "end_line": 24, - "column": 17, - "end_column": 49 + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 }, "wtype": { "_type": "WType", @@ -1312,58 +1312,538 @@ "ephemeral": false, "scalar_type": 2 }, - "key": { - "_type": "BytesConstant", + "base": { + "_type": "SingleEvaluation", "source_location": { "file": "tests/approvals/local-state.algo.ts", - "line": 8, - "end_line": 8, - "column": 40, - "end_column": 44 + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 }, "wtype": { - "_type": "WType", - "name": "state_key", + "_type": "WTuple", + "name": "::", "immutable": true, "ephemeral": false, - "scalar_type": 1 - }, - "value": "Y%u", - "encoding": "utf8" - }, - "exists_assertion_message": "check LocalState exists", - "account": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/local-state.algo.ts", - "line": 24, - "end_line": 24, - "column": 32, - "end_column": 42 + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + } + ], + "names": [ + "localUint", + "localUint2", + "localBytes", + "localBytes2", + "localEncoded" + ] }, - "wtype": { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + } + ], + "names": [ + "localUint", + "localUint2", + "localBytes", + "localBytes2", + "localEncoded" + ] + }, + "items": [ + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 24, + "end_line": 24, + "column": 17, + "end_column": 49 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 8, + "end_line": 8, + "column": 40, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y%u", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 24, + "end_line": 24, + "column": 32, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 25, + "end_line": 25, + "column": 18, + "end_column": 51 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 9, + "end_line": 9, + "column": 2, + "end_column": 12 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y*lG)bTR", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 25, + "end_line": 25, + "column": 34, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 26, + "end_line": 26, + "column": 18, + "end_column": 51 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 10, + "end_line": 10, + "column": 40, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Vle", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 26, + "end_line": 26, + "column": 34, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 27, + "end_line": 27, + "column": 19, + "end_column": 53 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 11, + "end_line": 11, + "column": 2, + "end_column": 13 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y(jZ-Wpgq", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 27, + "end_line": 27, + "column": 36, + "end_column": 46 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "Copy", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 20, + "end_column": 62 + }, + "wtype": { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + }, + "value": { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 20, + "end_column": 55 + }, + "wtype": { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 12, + "end_line": 12, + "column": 2, + "end_column": 14 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y(;KkZ)9a;", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 38, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + } + } + ] }, - "op_code": "txn", - "immediates": [ - "Sender" - ], - "stack_args": [], - "comment": null - } + "id": "0" + }, + "name": "localUint" }, { - "_type": "AppAccountStateExpression", + "_type": "FieldExpression", "source_location": { "file": "tests/approvals/local-state.algo.ts", - "line": 25, - "end_line": 25, - "column": 18, - "end_column": 51 + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 }, "wtype": { "_type": "WType", @@ -1372,58 +1852,538 @@ "ephemeral": false, "scalar_type": 2 }, - "key": { - "_type": "BytesConstant", + "base": { + "_type": "SingleEvaluation", "source_location": { "file": "tests/approvals/local-state.algo.ts", - "line": 9, - "end_line": 9, - "column": 2, - "end_column": 12 + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 }, "wtype": { - "_type": "WType", - "name": "state_key", + "_type": "WTuple", + "name": "::", "immutable": true, "ephemeral": false, - "scalar_type": 1 - }, - "value": "Y;R*>Y*lG)bTR", - "encoding": "utf8" - }, - "exists_assertion_message": "check LocalState exists", - "account": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/local-state.algo.ts", - "line": 25, - "end_line": 25, - "column": 34, - "end_column": 44 + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + } + ], + "names": [ + "localUint", + "localUint2", + "localBytes", + "localBytes2", + "localEncoded" + ] }, - "wtype": { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + } + ], + "names": [ + "localUint", + "localUint2", + "localBytes", + "localBytes2", + "localEncoded" + ] + }, + "items": [ + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 24, + "end_line": 24, + "column": 17, + "end_column": 49 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 8, + "end_line": 8, + "column": 40, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y%u", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 24, + "end_line": 24, + "column": 32, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 25, + "end_line": 25, + "column": 18, + "end_column": 51 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 9, + "end_line": 9, + "column": 2, + "end_column": 12 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y*lG)bTR", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 25, + "end_line": 25, + "column": 34, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 26, + "end_line": 26, + "column": 18, + "end_column": 51 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 10, + "end_line": 10, + "column": 40, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Vle", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 26, + "end_line": 26, + "column": 34, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 27, + "end_line": 27, + "column": 19, + "end_column": 53 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 11, + "end_line": 11, + "column": 2, + "end_column": 13 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y(jZ-Wpgq", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 27, + "end_line": 27, + "column": 36, + "end_column": 46 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "Copy", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 20, + "end_column": 62 + }, + "wtype": { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + }, + "value": { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 20, + "end_column": 55 + }, + "wtype": { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 12, + "end_line": 12, + "column": 2, + "end_column": 14 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y(;KkZ)9a;", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 38, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + } + } + ] }, - "op_code": "txn", - "immediates": [ - "Sender" - ], - "stack_args": [], - "comment": null - } + "id": "0" + }, + "name": "localUint2" }, { - "_type": "AppAccountStateExpression", + "_type": "FieldExpression", "source_location": { "file": "tests/approvals/local-state.algo.ts", - "line": 26, - "end_line": 26, - "column": 18, - "end_column": 51 + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 }, "wtype": { "_type": "WType", @@ -1432,58 +2392,538 @@ "ephemeral": false, "scalar_type": 1 }, - "key": { - "_type": "BytesConstant", + "base": { + "_type": "SingleEvaluation", "source_location": { "file": "tests/approvals/local-state.algo.ts", - "line": 10, - "end_line": 10, - "column": 40, - "end_column": 44 + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 }, "wtype": { - "_type": "WType", - "name": "state_key", + "_type": "WTuple", + "name": "::", "immutable": true, "ephemeral": false, - "scalar_type": 1 - }, - "value": "Vle", - "encoding": "utf8" - }, - "exists_assertion_message": "check LocalState exists", - "account": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/local-state.algo.ts", - "line": 26, - "end_line": 26, - "column": 34, - "end_column": 44 + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + } + ], + "names": [ + "localUint", + "localUint2", + "localBytes", + "localBytes2", + "localEncoded" + ] }, - "wtype": { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + } + ], + "names": [ + "localUint", + "localUint2", + "localBytes", + "localBytes2", + "localEncoded" + ] + }, + "items": [ + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 24, + "end_line": 24, + "column": 17, + "end_column": 49 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 8, + "end_line": 8, + "column": 40, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y%u", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 24, + "end_line": 24, + "column": 32, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 25, + "end_line": 25, + "column": 18, + "end_column": 51 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 9, + "end_line": 9, + "column": 2, + "end_column": 12 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y*lG)bTR", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 25, + "end_line": 25, + "column": 34, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 26, + "end_line": 26, + "column": 18, + "end_column": 51 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 10, + "end_line": 10, + "column": 40, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Vle", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 26, + "end_line": 26, + "column": 34, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 27, + "end_line": 27, + "column": 19, + "end_column": 53 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 11, + "end_line": 11, + "column": 2, + "end_column": 13 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y(jZ-Wpgq", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 27, + "end_line": 27, + "column": 36, + "end_column": 46 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "Copy", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 20, + "end_column": 62 + }, + "wtype": { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + }, + "value": { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 20, + "end_column": 55 + }, + "wtype": { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 12, + "end_line": 12, + "column": 2, + "end_column": 14 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y(;KkZ)9a;", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 38, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + } + } + ] }, - "op_code": "txn", - "immediates": [ - "Sender" - ], - "stack_args": [], - "comment": null - } + "id": "0" + }, + "name": "localBytes" }, { - "_type": "AppAccountStateExpression", + "_type": "FieldExpression", "source_location": { "file": "tests/approvals/local-state.algo.ts", - "line": 27, - "end_line": 27, - "column": 19, - "end_column": 53 + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 }, "wtype": { "_type": "WType", @@ -1492,58 +2932,538 @@ "ephemeral": false, "scalar_type": 1 }, - "key": { - "_type": "BytesConstant", + "base": { + "_type": "SingleEvaluation", "source_location": { "file": "tests/approvals/local-state.algo.ts", - "line": 11, - "end_line": 11, - "column": 2, - "end_column": 13 + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 }, "wtype": { - "_type": "WType", - "name": "state_key", + "_type": "WTuple", + "name": "::", "immutable": true, "ephemeral": false, - "scalar_type": 1 - }, - "value": "Y;R*>Y(jZ-Wpgq", - "encoding": "utf8" - }, - "exists_assertion_message": "check LocalState exists", - "account": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/local-state.algo.ts", - "line": 27, - "end_line": 27, - "column": 36, - "end_column": 46 + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + } + ], + "names": [ + "localUint", + "localUint2", + "localBytes", + "localBytes2", + "localEncoded" + ] }, - "wtype": { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + } + ], + "names": [ + "localUint", + "localUint2", + "localBytes", + "localBytes2", + "localEncoded" + ] + }, + "items": [ + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 24, + "end_line": 24, + "column": 17, + "end_column": 49 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 8, + "end_line": 8, + "column": 40, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y%u", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 24, + "end_line": 24, + "column": 32, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 25, + "end_line": 25, + "column": 18, + "end_column": 51 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 9, + "end_line": 9, + "column": 2, + "end_column": 12 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y*lG)bTR", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 25, + "end_line": 25, + "column": 34, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 26, + "end_line": 26, + "column": 18, + "end_column": 51 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 10, + "end_line": 10, + "column": 40, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Vle", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 26, + "end_line": 26, + "column": 34, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 27, + "end_line": 27, + "column": 19, + "end_column": 53 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 11, + "end_line": 11, + "column": 2, + "end_column": 13 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y(jZ-Wpgq", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 27, + "end_line": 27, + "column": 36, + "end_column": 46 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "Copy", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 20, + "end_column": 62 + }, + "wtype": { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + }, + "value": { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 20, + "end_column": 55 + }, + "wtype": { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 12, + "end_line": 12, + "column": 2, + "end_column": 14 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y(;KkZ)9a;", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 38, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + } + } + ] }, - "op_code": "txn", - "immediates": [ - "Sender" - ], - "stack_args": [], - "comment": null - } + "id": "0" + }, + "name": "localBytes2" }, { - "_type": "Copy", + "_type": "FieldExpression", "source_location": { "file": "tests/approvals/local-state.algo.ts", - "line": 28, - "end_line": 28, - "column": 20, - "end_column": 62 + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 }, "wtype": { "_type": "ARC4StaticArray", @@ -1572,86 +3492,529 @@ "source_location": null, "array_size": "10" }, - "value": { - "_type": "AppAccountStateExpression", + "base": { + "_type": "SingleEvaluation", "source_location": { "file": "tests/approvals/local-state.algo.ts", - "line": 28, - "end_line": 28, - "column": 20, - "end_column": 55 + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 }, "wtype": { - "_type": "ARC4StaticArray", - "name": "arc4.static_array", - "immutable": false, + "_type": "WTuple", + "name": "::", + "immutable": true, "ephemeral": false, - "scalar_type": 1, - "native_type": null, - "arc4_name": "uint64[10]", - "element_type": { - "_type": "ARC4UIntN", - "name": "arc4.uint64", - "immutable": true, - "ephemeral": false, - "scalar_type": 1, - "native_type": { + "scalar_type": null, + "types": [ + { "_type": "WType", "name": "uint64", "immutable": true, "ephemeral": false, "scalar_type": 2 }, - "arc4_name": "uint64", - "n": "64" - }, - "source_location": null, - "array_size": "10" + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + } + ], + "names": [ + "localUint", + "localUint2", + "localBytes", + "localBytes2", + "localEncoded" + ] }, - "key": { - "_type": "BytesConstant", + "source": { + "_type": "TupleExpression", "source_location": { "file": "tests/approvals/local-state.algo.ts", - "line": 12, - "end_line": 12, - "column": 2, - "end_column": 14 + "line": 23, + "end_line": 29, + "column": 11, + "end_column": 5 }, "wtype": { - "_type": "WType", - "name": "state_key", + "_type": "WTuple", + "name": "::", "immutable": true, "ephemeral": false, - "scalar_type": 1 + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + } + ], + "names": [ + "localUint", + "localUint2", + "localBytes", + "localBytes2", + "localEncoded" + ] }, - "value": "Y;R*>Y(;KkZ)9a;", - "encoding": "utf8" + "items": [ + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 24, + "end_line": 24, + "column": 17, + "end_column": 49 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 8, + "end_line": 8, + "column": 40, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y%u", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 24, + "end_line": 24, + "column": 32, + "end_column": 42 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 25, + "end_line": 25, + "column": 18, + "end_column": 51 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 9, + "end_line": 9, + "column": 2, + "end_column": 12 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y*lG)bTR", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 25, + "end_line": 25, + "column": 34, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 26, + "end_line": 26, + "column": 18, + "end_column": 51 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 10, + "end_line": 10, + "column": 40, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Vle", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 26, + "end_line": 26, + "column": 34, + "end_column": 44 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 27, + "end_line": 27, + "column": 19, + "end_column": 53 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 11, + "end_line": 11, + "column": 2, + "end_column": 13 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y(jZ-Wpgq", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 27, + "end_line": 27, + "column": 36, + "end_column": 46 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + }, + { + "_type": "Copy", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 20, + "end_column": 62 + }, + "wtype": { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + }, + "value": { + "_type": "AppAccountStateExpression", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 20, + "end_column": 55 + }, + "wtype": { + "_type": "ARC4StaticArray", + "name": "arc4.static_array", + "immutable": false, + "ephemeral": false, + "scalar_type": 1, + "native_type": null, + "arc4_name": "uint64[10]", + "element_type": { + "_type": "ARC4UIntN", + "name": "arc4.uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 1, + "native_type": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "arc4_name": "uint64", + "n": "64" + }, + "source_location": null, + "array_size": "10" + }, + "key": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 12, + "end_line": 12, + "column": 2, + "end_column": 14 + }, + "wtype": { + "_type": "WType", + "name": "state_key", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "Y;R*>Y(;KkZ)9a;", + "encoding": "utf8" + }, + "exists_assertion_message": "check LocalState exists", + "account": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/local-state.algo.ts", + "line": 28, + "end_line": 28, + "column": 38, + "end_column": 48 + }, + "wtype": { + "_type": "WType", + "name": "account", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "op_code": "txn", + "immediates": [ + "Sender" + ], + "stack_args": [], + "comment": null + } + } + } + ] }, - "exists_assertion_message": "check LocalState exists", - "account": { - "_type": "IntrinsicCall", - "source_location": { - "file": "tests/approvals/local-state.algo.ts", - "line": 28, - "end_line": 28, - "column": 38, - "end_column": 48 - }, - "wtype": { - "_type": "WType", - "name": "account", - "immutable": true, - "ephemeral": false, - "scalar_type": 1 - }, - "op_code": "txn", - "immediates": [ - "Sender" - ], - "stack_args": [], - "comment": null - } - } + "id": "0" + }, + "name": "localEncoded" } ] } @@ -1687,7 +4050,7 @@ "default_args": {}, "structs": { "output": { - "name": "Anonymous", + "name": "getStateResult", "elements": [ [ "localUint", diff --git a/tests/approvals/out/named-types/MyContract.approval.teal b/tests/approvals/out/named-types/MyContract.approval.teal index b337a404..65b31630 100644 --- a/tests/approvals/out/named-types/MyContract.approval.teal +++ b/tests/approvals/out/named-types/MyContract.approval.teal @@ -14,7 +14,7 @@ main_after_if_else@2: // tests/approvals/named-types.algo.ts::MyContract.constructor() -> void: constructor: - // tests/approvals/named-types.algo.ts:21 + // tests/approvals/named-types.algo.ts:14 // export class MyContract extends Contract { proto 0 0 retsub @@ -22,7 +22,7 @@ constructor: // tests/approvals/named-types.algo.ts::MyContract.__puya_arc4_router__() -> uint64: __puya_arc4_router__: - // tests/approvals/named-types.algo.ts:21 + // tests/approvals/named-types.algo.ts:14 // export class MyContract extends Contract { proto 0 1 txn NumAppArgs @@ -40,7 +40,7 @@ __puya_arc4_router__: b __puya_arc4_router___switch_case_default@7 __puya_arc4_router___getXY_route@2: - // tests/approvals/named-types.algo.ts:22 + // tests/approvals/named-types.algo.ts:15 // public getXY(): XY { txn OnCompletion intc_0 // NoOp @@ -69,7 +69,7 @@ __puya_arc4_router___getXY_route@2: retsub __puya_arc4_router___getYX_route@3: - // tests/approvals/named-types.algo.ts:29 + // tests/approvals/named-types.algo.ts:22 // public getYX(): YX { txn OnCompletion intc_0 // NoOp @@ -98,7 +98,7 @@ __puya_arc4_router___getYX_route@3: retsub __puya_arc4_router___getAnon_route@4: - // tests/approvals/named-types.algo.ts:36 + // tests/approvals/named-types.algo.ts:29 // public getAnon() { txn OnCompletion intc_0 // NoOp @@ -127,8 +127,8 @@ __puya_arc4_router___getAnon_route@4: retsub __puya_arc4_router___test_route@5: - // tests/approvals/named-types.algo.ts:43 - // public test(x: XY, y: YX) {} + // tests/approvals/named-types.algo.ts:36 + // public test(x: XY, y: YX) { txn OnCompletion intc_0 // NoOp == @@ -137,7 +137,7 @@ __puya_arc4_router___test_route@5: intc_0 // 0 != assert // can only call when not creating - // tests/approvals/named-types.algo.ts:21 + // tests/approvals/named-types.algo.ts:14 // export class MyContract extends Contract { txna ApplicationArgs 1 dup @@ -161,8 +161,8 @@ __puya_arc4_router___test_route@5: dup extract3 // on error: Index access is out of bounds btoi - // tests/approvals/named-types.algo.ts:43 - // public test(x: XY, y: YX) {} + // tests/approvals/named-types.algo.ts:36 + // public test(x: XY, y: YX) { uncover 3 uncover 3 uncover 3 @@ -172,7 +172,7 @@ __puya_arc4_router___test_route@5: retsub __puya_arc4_router___testing_route@6: - // tests/approvals/named-types.algo.ts:45 + // tests/approvals/named-types.algo.ts:40 // public testing() { txn OnCompletion intc_0 // NoOp @@ -235,7 +235,7 @@ __puya_arc4_router___switch_case_default@7: b __puya_arc4_router___after_if_else@13 __puya_arc4_router___bare_routing@9: - // tests/approvals/named-types.algo.ts:21 + // tests/approvals/named-types.algo.ts:14 // export class MyContract extends Contract { txn OnCompletion intc_0 // 0 @@ -244,7 +244,7 @@ __puya_arc4_router___bare_routing@9: b __puya_arc4_router___switch_case_default@11 __puya_arc4_router_____algots__.defaultCreate@10: - // tests/approvals/named-types.algo.ts:21 + // tests/approvals/named-types.algo.ts:14 // export class MyContract extends Contract { txn ApplicationID intc_0 // 0 @@ -257,7 +257,7 @@ __puya_arc4_router_____algots__.defaultCreate@10: __puya_arc4_router___switch_case_default@11: __puya_arc4_router___after_if_else@13: - // tests/approvals/named-types.algo.ts:21 + // tests/approvals/named-types.algo.ts:14 // export class MyContract extends Contract { intc_0 // 0 retsub @@ -265,16 +265,16 @@ __puya_arc4_router___after_if_else@13: // tests/approvals/named-types.algo.ts::MyContract.getXY() -> uint64, uint64: getXY: - // tests/approvals/named-types.algo.ts:22 + // tests/approvals/named-types.algo.ts:15 // public getXY(): XY { proto 0 2 - // tests/approvals/named-types.algo.ts:24 + // tests/approvals/named-types.algo.ts:17 // x: 1, intc_1 // 1 - // tests/approvals/named-types.algo.ts:25 + // tests/approvals/named-types.algo.ts:18 // y: 2, pushint 2 // 2 - // tests/approvals/named-types.algo.ts:23-26 + // tests/approvals/named-types.algo.ts:16-19 // return { // x: 1, // y: 2, @@ -284,16 +284,16 @@ getXY: // tests/approvals/named-types.algo.ts::MyContract.getYX() -> uint64, uint64: getYX: - // tests/approvals/named-types.algo.ts:29 + // tests/approvals/named-types.algo.ts:22 // public getYX(): YX { proto 0 2 - // tests/approvals/named-types.algo.ts:32 + // tests/approvals/named-types.algo.ts:25 // y: 111, pushint 111 // 111 - // tests/approvals/named-types.algo.ts:31 + // tests/approvals/named-types.algo.ts:24 // x: 222, pushint 222 // 222 - // tests/approvals/named-types.algo.ts:30-33 + // tests/approvals/named-types.algo.ts:23-26 // return { // x: 222, // y: 111, @@ -303,16 +303,16 @@ getYX: // tests/approvals/named-types.algo.ts::MyContract.getAnon() -> uint64, uint64: getAnon: - // tests/approvals/named-types.algo.ts:36 + // tests/approvals/named-types.algo.ts:29 // public getAnon() { proto 0 2 - // tests/approvals/named-types.algo.ts:38 + // tests/approvals/named-types.algo.ts:31 // x: Uint64(3), pushint 3 // 3 - // tests/approvals/named-types.algo.ts:39 + // tests/approvals/named-types.algo.ts:32 // y: Uint64(4), pushint 4 // 4 - // tests/approvals/named-types.algo.ts:37-40 + // tests/approvals/named-types.algo.ts:30-33 // return { // x: Uint64(3), // y: Uint64(4), @@ -322,43 +322,67 @@ getAnon: // tests/approvals/named-types.algo.ts::MyContract.test(x.x: uint64, x.y: uint64, y.y: uint64, y.x: uint64) -> void: test: - // tests/approvals/named-types.algo.ts:43 - // public test(x: XY, y: YX) {} + // tests/approvals/named-types.algo.ts:36 + // public test(x: XY, y: YX) { proto 4 0 + // tests/approvals/named-types.algo.ts:37 + // assertMatch(x, { ...y }) + frame_dig -3 + frame_dig -2 + == + bz test_bool_false@3 + frame_dig -4 + frame_dig -1 + == + bz test_bool_false@3 + intc_1 // 1 + b test_bool_merge@4 + +test_bool_false@3: + intc_0 // 0 + +test_bool_merge@4: + // tests/approvals/named-types.algo.ts:37 + // assertMatch(x, { ...y }) + assert // assert target is match for conditions retsub // tests/approvals/named-types.algo.ts::MyContract.testing() -> uint64, uint64, uint64, uint64, uint64, uint64: testing: - // tests/approvals/named-types.algo.ts:45 + // tests/approvals/named-types.algo.ts:40 // public testing() { proto 0 6 - // tests/approvals/named-types.algo.ts:46 + // tests/approvals/named-types.algo.ts:41 // const a = this.getXY() callsub getXY swap - // tests/approvals/named-types.algo.ts:47 + // tests/approvals/named-types.algo.ts:42 // const b = this.getYX() callsub getYX cover 2 - // tests/approvals/named-types.algo.ts:48 + // tests/approvals/named-types.algo.ts:43 // const c = this.getAnon() callsub getAnon - cover 3 - // tests/approvals/named-types.algo.ts:49 + pop + callsub getAnon + cover 2 + pop + swap + // tests/approvals/named-types.algo.ts:44 // return [a, b, c] as const - uncover 2 - uncover 5 uncover 3 uncover 5 uncover 4 uncover 5 + uncover 5 + uncover 5 retsub // tests/approvals/named-types.algo.ts::MyContract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: - // tests/approvals/named-types.algo.ts:21 + // tests/approvals/named-types.algo.ts:14 // export class MyContract extends Contract { proto 0 0 retsub diff --git a/tests/approvals/out/named-types/MyContract.arc32.json b/tests/approvals/out/named-types/MyContract.arc32.json index 3a41dd03..4aff9173 100644 --- a/tests/approvals/out/named-types/MyContract.arc32.json +++ b/tests/approvals/out/named-types/MyContract.arc32.json @@ -43,6 +43,21 @@ "getAnon()(uint64,uint64)": { "call_config": { "no_op": "CALL" + }, + "structs": { + "output": { + "name": "getAnonResult", + "elements": [ + [ + "x", + "uint64" + ], + [ + "y", + "uint64" + ] + ] + } } }, "test((uint64,uint64),(uint64,uint64))void": { @@ -85,7 +100,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgp0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5hcHByb3ZhbFByb2dyYW06CiAgICBpbnRjYmxvY2sgMCAxIDgKICAgIGJ5dGVjYmxvY2sgMHggMHgxNTFmN2M3NQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CiAgICBjYWxsc3ViIF9fcHV5YV9hcmM0X3JvdXRlcl9fCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjEKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgcHJvdG8gMCAwCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfXygpIC0+IHVpbnQ2NDoKX19wdXlhX2FyYzRfcm91dGVyX186CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoyMQogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBwcm90byAwIDEKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IF9fcHV5YV9hcmM0X3JvdXRlcl9fX2JhcmVfcm91dGluZ0A5CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhmMDIyMjhiMCAvLyBtZXRob2QgImdldFhZKCkodWludDY0LHVpbnQ2NCkiCiAgICBwdXNoYnl0ZXMgMHhkOTA4NTc1YiAvLyBtZXRob2QgImdldFlYKCkodWludDY0LHVpbnQ2NCkiCiAgICBwdXNoYnl0ZXMgMHg1NzdiMWZmYyAvLyBtZXRob2QgImdldEFub24oKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweGRjNzVmODFkIC8vIG1ldGhvZCAidGVzdCgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgwNDBlMmU0ZSAvLyBtZXRob2QgInRlc3RpbmcoKSgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkiCiAgICB1bmNvdmVyIDUKICAgIG1hdGNoIF9fcHV5YV9hcmM0X3JvdXRlcl9fX2dldFhZX3JvdXRlQDIgX19wdXlhX2FyYzRfcm91dGVyX19fZ2V0WVhfcm91dGVAMyBfX3B1eWFfYXJjNF9yb3V0ZXJfX19nZXRBbm9uX3JvdXRlQDQgX19wdXlhX2FyYzRfcm91dGVyX19fdGVzdF9yb3V0ZUA1IF9fcHV5YV9hcmM0X3JvdXRlcl9fX3Rlc3Rpbmdfcm91dGVANgogICAgYiBfX3B1eWFfYXJjNF9yb3V0ZXJfX19zd2l0Y2hfY2FzZV9kZWZhdWx0QDcKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX2dldFhZX3JvdXRlQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoyMgogICAgLy8gcHVibGljIGdldFhZKCk6IFhZIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZ2V0WFkKICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19nZXRZWF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjkKICAgIC8vIHB1YmxpYyBnZXRZWCgpOiBZWCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldFlYCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fZ2V0QW5vbl9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzYKICAgIC8vIHB1YmxpYyBnZXRBbm9uKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRBbm9uCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fdGVzdF9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6NDMKICAgIC8vIHB1YmxpYyB0ZXN0KHg6IFhZLCB5OiBZWCkge30KICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjIxCiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIHN3YXAKICAgIGludGNfMiAvLyA4CiAgICBkdXAKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgc3dhcAogICAgaW50Y18yIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo0MwogICAgLy8gcHVibGljIHRlc3QoeDogWFksIHk6IFlYKSB7fQogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDMKICAgIHVuY292ZXIgMwogICAgdW5jb3ZlciAzCiAgICBjYWxsc3ViIHRlc3QKICAgIGludGNfMSAvLyAxCiAgICByZXRzdWIKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX3Rlc3Rpbmdfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjQ1CiAgICAvLyBwdWJsaWMgdGVzdGluZygpIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgdGVzdGluZwogICAgY292ZXIgNQogICAgY292ZXIgNAogICAgY292ZXIgMwogICAgY292ZXIgMgogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgaXRvYgogICAgc3dhcAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGNvdmVyIDIKICAgIGl0b2IKICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGl0b2IKICAgIHVuY292ZXIgMwogICAgaXRvYgogICAgc3dhcAogICAgYnl0ZWNfMCAvLyAweAogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19zd2l0Y2hfY2FzZV9kZWZhdWx0QDc6CiAgICBiIF9fcHV5YV9hcmM0X3JvdXRlcl9fX2FmdGVyX2lmX2Vsc2VAMTMKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX2JhcmVfcm91dGluZ0A5OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjEKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIG1hdGNoIF9fcHV5YV9hcmM0X3JvdXRlcl9fX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUAxMAogICAgYiBfX3B1eWFfYXJjNF9yb3V0ZXJfX19zd2l0Y2hfY2FzZV9kZWZhdWx0QDExCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoyMQogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMToKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoyMQogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBpbnRjXzAgLy8gMAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuZ2V0WFkoKSAtPiB1aW50NjQsIHVpbnQ2NDoKZ2V0WFk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoyMgogICAgLy8gcHVibGljIGdldFhZKCk6IFhZIHsKICAgIHByb3RvIDAgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjQKICAgIC8vIHg6IDEsCiAgICBpbnRjXzEgLy8gMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjUKICAgIC8vIHk6IDIsCiAgICBwdXNoaW50IDIgLy8gMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjMtMjYKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIHg6IDEsCiAgICAvLyAgIHk6IDIsCiAgICAvLyB9CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5nZXRZWCgpIC0+IHVpbnQ2NCwgdWludDY0OgpnZXRZWDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjI5CiAgICAvLyBwdWJsaWMgZ2V0WVgoKTogWVggewogICAgcHJvdG8gMCAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozMgogICAgLy8geTogMTExLAogICAgcHVzaGludCAxMTEgLy8gMTExCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozMQogICAgLy8geDogMjIyLAogICAgcHVzaGludCAyMjIgLy8gMjIyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozMC0zMwogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgeDogMjIyLAogICAgLy8gICB5OiAxMTEsCiAgICAvLyB9CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5nZXRBbm9uKCkgLT4gdWludDY0LCB1aW50NjQ6CmdldEFub246CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozNgogICAgLy8gcHVibGljIGdldEFub24oKSB7CiAgICBwcm90byAwIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjM4CiAgICAvLyB4OiBVaW50NjQoMyksCiAgICBwdXNoaW50IDMgLy8gMwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzkKICAgIC8vIHk6IFVpbnQ2NCg0KSwKICAgIHB1c2hpbnQgNCAvLyA0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozNy00MAogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgeDogVWludDY0KDMpLAogICAgLy8gICB5OiBVaW50NjQoNCksCiAgICAvLyB9CiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC50ZXN0KHgueDogdWludDY0LCB4Lnk6IHVpbnQ2NCwgeS55OiB1aW50NjQsIHkueDogdWludDY0KSAtPiB2b2lkOgp0ZXN0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6NDMKICAgIC8vIHB1YmxpYyB0ZXN0KHg6IFhZLCB5OiBZWCkge30KICAgIHByb3RvIDQgMAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QudGVzdGluZygpIC0+IHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQ6CnRlc3Rpbmc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo0NQogICAgLy8gcHVibGljIHRlc3RpbmcoKSB7CiAgICBwcm90byAwIDYKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjQ2CiAgICAvLyBjb25zdCBhID0gdGhpcy5nZXRYWSgpCiAgICBjYWxsc3ViIGdldFhZCiAgICBzd2FwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo0NwogICAgLy8gY29uc3QgYiA9IHRoaXMuZ2V0WVgoKQogICAgY2FsbHN1YiBnZXRZWAogICAgY292ZXIgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6NDgKICAgIC8vIGNvbnN0IGMgPSB0aGlzLmdldEFub24oKQogICAgY2FsbHN1YiBnZXRBbm9uCiAgICBjb3ZlciAzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo0OQogICAgLy8gcmV0dXJuIFthLCBiLCBjXSBhcyBjb25zdAogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDUKICAgIHVuY292ZXIgMwogICAgdW5jb3ZlciA1CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlKCkgLT4gdm9pZDoKX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjEKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgcHJvdG8gMCAwCiAgICByZXRzdWIK", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgp0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5hcHByb3ZhbFByb2dyYW06CiAgICBpbnRjYmxvY2sgMCAxIDgKICAgIGJ5dGVjYmxvY2sgMHggMHgxNTFmN2M3NQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgogICAgY2FsbHN1YiBjb25zdHJ1Y3RvcgoKbWFpbl9hZnRlcl9pZl9lbHNlQDI6CiAgICBjYWxsc3ViIF9fcHV5YV9hcmM0X3JvdXRlcl9fCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5jb25zdHJ1Y3RvcigpIC0+IHZvaWQ6CmNvbnN0cnVjdG9yOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgcHJvdG8gMCAwCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfXygpIC0+IHVpbnQ2NDoKX19wdXlhX2FyYzRfcm91dGVyX186CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoxNAogICAgLy8gZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBwcm90byAwIDEKICAgIHR4biBOdW1BcHBBcmdzCiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGJ6IF9fcHV5YV9hcmM0X3JvdXRlcl9fX2JhcmVfcm91dGluZ0A5CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHhmMDIyMjhiMCAvLyBtZXRob2QgImdldFhZKCkodWludDY0LHVpbnQ2NCkiCiAgICBwdXNoYnl0ZXMgMHhkOTA4NTc1YiAvLyBtZXRob2QgImdldFlYKCkodWludDY0LHVpbnQ2NCkiCiAgICBwdXNoYnl0ZXMgMHg1NzdiMWZmYyAvLyBtZXRob2QgImdldEFub24oKSh1aW50NjQsdWludDY0KSIKICAgIHB1c2hieXRlcyAweGRjNzVmODFkIC8vIG1ldGhvZCAidGVzdCgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpKXZvaWQiCiAgICBwdXNoYnl0ZXMgMHgwNDBlMmU0ZSAvLyBtZXRob2QgInRlc3RpbmcoKSgodWludDY0LHVpbnQ2NCksKHVpbnQ2NCx1aW50NjQpLCh1aW50NjQsdWludDY0KSkiCiAgICB1bmNvdmVyIDUKICAgIG1hdGNoIF9fcHV5YV9hcmM0X3JvdXRlcl9fX2dldFhZX3JvdXRlQDIgX19wdXlhX2FyYzRfcm91dGVyX19fZ2V0WVhfcm91dGVAMyBfX3B1eWFfYXJjNF9yb3V0ZXJfX19nZXRBbm9uX3JvdXRlQDQgX19wdXlhX2FyYzRfcm91dGVyX19fdGVzdF9yb3V0ZUA1IF9fcHV5YV9hcmM0X3JvdXRlcl9fX3Rlc3Rpbmdfcm91dGVANgogICAgYiBfX3B1eWFfYXJjNF9yb3V0ZXJfX19zd2l0Y2hfY2FzZV9kZWZhdWx0QDcKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX2dldFhZX3JvdXRlQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoxNQogICAgLy8gcHVibGljIGdldFhZKCk6IFhZIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyBOb09wCiAgICA9PQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICAhPQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZ2V0WFkKICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19nZXRZWF9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjIKICAgIC8vIHB1YmxpYyBnZXRZWCgpOiBZWCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIGdldFlYCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fZ2V0QW5vbl9yb3V0ZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjkKICAgIC8vIHB1YmxpYyBnZXRBbm9uKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBnZXRBbm9uCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fdGVzdF9yb3V0ZUA1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzYKICAgIC8vIHB1YmxpYyB0ZXN0KHg6IFhZLCB5OiBZWCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18wIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgaW50Y18yIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgc3dhcAogICAgaW50Y18yIC8vIDgKICAgIGR1cAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBpbnRjXzIgLy8gOAogICAgZHVwCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjM2CiAgICAvLyBwdWJsaWMgdGVzdCh4OiBYWSwgeTogWVgpIHsKICAgIHVuY292ZXIgMwogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDMKICAgIHVuY292ZXIgMwogICAgY2FsbHN1YiB0ZXN0CiAgICBpbnRjXzEgLy8gMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX190ZXN0aW5nX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo0MAogICAgLy8gcHVibGljIHRlc3RpbmcoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3RpbmcKICAgIGNvdmVyIDUKICAgIGNvdmVyIDQKICAgIGNvdmVyIDMKICAgIGNvdmVyIDIKICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGl0b2IKICAgIHN3YXAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBjb3ZlciAyCiAgICBpdG9iCiAgICBzd2FwCiAgICBpdG9iCiAgICBzd2FwCiAgICBieXRlY18wIC8vIDB4CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBpdG9iCiAgICB1bmNvdmVyIDMKICAgIGl0b2IKICAgIHN3YXAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fc3dpdGNoX2Nhc2VfZGVmYXVsdEA3OgogICAgYiBfX3B1eWFfYXJjNF9yb3V0ZXJfX19hZnRlcl9pZl9lbHNlQDEzCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19iYXJlX3JvdXRpbmdAOToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBfX3B1eWFfYXJjNF9yb3V0ZXJfX19fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTAKICAgIGIgX19wdXlhX2FyYzRfcm91dGVyX19fc3dpdGNoX2Nhc2VfZGVmYXVsdEAxMQoKX19wdXlhX2FyYzRfcm91dGVyX19fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGludGNfMCAvLyAwCiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgY2FsbHN1YiBfX2FsZ290c19fLmRlZmF1bHRDcmVhdGUKICAgIGludGNfMSAvLyAxCiAgICByZXRzdWIKCl9fcHV5YV9hcmM0X3JvdXRlcl9fX3N3aXRjaF9jYXNlX2RlZmF1bHRAMTE6CgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19hZnRlcl9pZl9lbHNlQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTQKICAgIC8vIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3QgewogICAgaW50Y18wIC8vIDAKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0LmdldFhZKCkgLT4gdWludDY0LCB1aW50NjQ6CmdldFhZOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MTUKICAgIC8vIHB1YmxpYyBnZXRYWSgpOiBYWSB7CiAgICBwcm90byAwIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE3CiAgICAvLyB4OiAxLAogICAgaW50Y18xIC8vIDEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE4CiAgICAvLyB5OiAyLAogICAgcHVzaGludCAyIC8vIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE2LTE5CiAgICAvLyByZXR1cm4gewogICAgLy8gICB4OiAxLAogICAgLy8gICB5OiAyLAogICAgLy8gfQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuZ2V0WVgoKSAtPiB1aW50NjQsIHVpbnQ2NDoKZ2V0WVg6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czoyMgogICAgLy8gcHVibGljIGdldFlYKCk6IFlYIHsKICAgIHByb3RvIDAgMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjUKICAgIC8vIHk6IDExMSwKICAgIHB1c2hpbnQgMTExIC8vIDExMQogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjQKICAgIC8vIHg6IDIyMiwKICAgIHB1c2hpbnQgMjIyIC8vIDIyMgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjMtMjYKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIHg6IDIyMiwKICAgIC8vICAgeTogMTExLAogICAgLy8gfQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QuZ2V0QW5vbigpIC0+IHVpbnQ2NCwgdWludDY0OgpnZXRBbm9uOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MjkKICAgIC8vIHB1YmxpYyBnZXRBbm9uKCkgewogICAgcHJvdG8gMCAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czozMQogICAgLy8geDogVWludDY0KDMpLAogICAgcHVzaGludCAzIC8vIDMKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjMyCiAgICAvLyB5OiBVaW50NjQoNCksCiAgICBwdXNoaW50IDQgLy8gNAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzAtMzMKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIHg6IFVpbnQ2NCgzKSwKICAgIC8vICAgeTogVWludDY0KDQpLAogICAgLy8gfQogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6Ok15Q29udHJhY3QudGVzdCh4Lng6IHVpbnQ2NCwgeC55OiB1aW50NjQsIHkueTogdWludDY0LCB5Lng6IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjM2CiAgICAvLyBwdWJsaWMgdGVzdCh4OiBYWSwgeTogWVgpIHsKICAgIHByb3RvIDQgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzcKICAgIC8vIGFzc2VydE1hdGNoKHgsIHsgLi4ueSB9KQogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgID09CiAgICBieiB0ZXN0X2Jvb2xfZmFsc2VAMwogICAgZnJhbWVfZGlnIC00CiAgICBmcmFtZV9kaWcgLTEKICAgID09CiAgICBieiB0ZXN0X2Jvb2xfZmFsc2VAMwogICAgaW50Y18xIC8vIDEKICAgIGIgdGVzdF9ib29sX21lcmdlQDQKCnRlc3RfYm9vbF9mYWxzZUAzOgogICAgaW50Y18wIC8vIDAKCnRlc3RfYm9vbF9tZXJnZUA0OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6MzcKICAgIC8vIGFzc2VydE1hdGNoKHgsIHsgLi4ueSB9KQogICAgYXNzZXJ0IC8vIGFzc2VydCB0YXJnZXQgaXMgbWF0Y2ggZm9yIGNvbmRpdGlvbnMKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0LnRlc3RpbmcoKSAtPiB1aW50NjQsIHVpbnQ2NCwgdWludDY0LCB1aW50NjQsIHVpbnQ2NCwgdWludDY0Ogp0ZXN0aW5nOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6NDAKICAgIC8vIHB1YmxpYyB0ZXN0aW5nKCkgewogICAgcHJvdG8gMCA2CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo0MQogICAgLy8gY29uc3QgYSA9IHRoaXMuZ2V0WFkoKQogICAgY2FsbHN1YiBnZXRYWQogICAgc3dhcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6NDIKICAgIC8vIGNvbnN0IGIgPSB0aGlzLmdldFlYKCkKICAgIGNhbGxzdWIgZ2V0WVgKICAgIGNvdmVyIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCBjID0gdGhpcy5nZXRBbm9uKCkKICAgIGNhbGxzdWIgZ2V0QW5vbgogICAgcG9wCiAgICBjYWxsc3ViIGdldEFub24KICAgIGNvdmVyIDIKICAgIHBvcAogICAgc3dhcAogICAgLy8gdGVzdHMvYXBwcm92YWxzL25hbWVkLXR5cGVzLmFsZ28udHM6NDQKICAgIC8vIHJldHVybiBbYSwgYiwgY10gYXMgY29uc3QKICAgIHVuY292ZXIgMwogICAgdW5jb3ZlciA1CiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgNQogICAgdW5jb3ZlciA1CiAgICB1bmNvdmVyIDUKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjpNeUNvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9uYW1lZC10eXBlcy5hbGdvLnRzOjE0CiAgICAvLyBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHByb3RvIDAgMAogICAgcmV0c3ViCg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCgp0ZXN0cy9hcHByb3ZhbHMvbmFtZWQtdHlwZXMuYWxnby50czo6TXlDb250cmFjdC5jbGVhclN0YXRlUHJvZ3JhbToKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K" }, "state": { diff --git a/tests/approvals/out/named-types/MyContract.ssa.ir b/tests/approvals/out/named-types/MyContract.ssa.ir index 37f07179..0f2d7ab5 100644 --- a/tests/approvals/out/named-types/MyContract.ssa.ir +++ b/tests/approvals/out/named-types/MyContract.ssa.ir @@ -12,18 +12,18 @@ contract tests/approvals/named-types.algo.ts::MyContract: return tmp%0#0 subroutine tests/approvals/named-types.algo.ts::MyContract.constructor() -> void: - block@0: // L21 + block@0: // L14 return subroutine tests/approvals/named-types.algo.ts::MyContract.__puya_arc4_router__() -> bool: - block@0: // L21 + block@0: // L14 let tmp%0#0: uint64 = (txn NumAppArgs) let tmp%1#0: bool = (!= tmp%0#0 0u) goto tmp%1#0 ? block@1 : block@9 - block@1: // abi_routing_L21 + block@1: // abi_routing_L14 let tmp%2#0: bytes = (txna ApplicationArgs 0) switch tmp%2#0 {method "getXY()(uint64,uint64)" => block@2, method "getYX()(uint64,uint64)" => block@3, method "getAnon()(uint64,uint64)" => block@4, method "test((uint64,uint64),(uint64,uint64))void" => block@5, method "testing()((uint64,uint64),(uint64,uint64),(uint64,uint64))" => block@6, * => block@7} - block@2: // getXY_route_L22 + block@2: // getXY_route_L15 let tmp%3#0: uint64 = (txn OnCompletion) let tmp%4#0: bool = (== tmp%3#0 NoOp) (assert tmp%4#0) // OnCompletion is not NoOp @@ -40,7 +40,7 @@ contract tests/approvals/named-types.algo.ts::MyContract: let tmp%7#0: bytes = (concat 0x151f7c75 encoded_tuple_buffer%2#0) (log tmp%7#0) return 1u - block@3: // getYX_route_L29 + block@3: // getYX_route_L22 let tmp%8#0: uint64 = (txn OnCompletion) let tmp%9#0: bool = (== tmp%8#0 NoOp) (assert tmp%9#0) // OnCompletion is not NoOp @@ -57,7 +57,7 @@ contract tests/approvals/named-types.algo.ts::MyContract: let tmp%12#0: bytes = (concat 0x151f7c75 encoded_tuple_buffer%5#0) (log tmp%12#0) return 1u - block@4: // getAnon_route_L36 + block@4: // getAnon_route_L29 let tmp%13#0: uint64 = (txn OnCompletion) let tmp%14#0: bool = (== tmp%13#0 NoOp) (assert tmp%14#0) // OnCompletion is not NoOp @@ -74,7 +74,7 @@ contract tests/approvals/named-types.algo.ts::MyContract: let tmp%17#0: bytes = (concat 0x151f7c75 encoded_tuple_buffer%8#0) (log tmp%17#0) return 1u - block@5: // test_route_L43 + block@5: // test_route_L36 let tmp%18#0: uint64 = (txn OnCompletion) let tmp%19#0: bool = (== tmp%18#0 NoOp) (assert tmp%19#0) // OnCompletion is not NoOp @@ -93,7 +93,7 @@ contract tests/approvals/named-types.algo.ts::MyContract: let item1%1%0#0: uint64 = (btoi item1%1#0) tests/approvals/named-types.algo.ts::MyContract.test(item0%0%0#0, item1%0%0#0, item0%1%0#0, item1%1%0#0) return 1u - block@6: // testing_route_L45 + block@6: // testing_route_L40 let tmp%24#0: uint64 = (txn OnCompletion) let tmp%25#0: bool = (== tmp%24#0 NoOp) (assert tmp%25#0) // OnCompletion is not NoOp @@ -127,51 +127,67 @@ contract tests/approvals/named-types.algo.ts::MyContract: let tmp%28#0: bytes = (concat 0x151f7c75 encoded_tuple_buffer%21#0) (log tmp%28#0) return 1u - block@7: // switch_case_default_L21 + block@7: // switch_case_default_L14 goto block@8 - block@8: // switch_case_next_L21 + block@8: // switch_case_next_L14 goto block@13 - block@9: // bare_routing_L21 + block@9: // bare_routing_L14 let tmp%29#0: uint64 = (txn OnCompletion) switch tmp%29#0 {0u => block@10, * => block@11} - block@10: // __algots__.defaultCreate_L21 + block@10: // __algots__.defaultCreate_L14 let tmp%30#0: uint64 = (txn ApplicationID) let tmp%31#0: bool = (== tmp%30#0 0u) (assert tmp%31#0) // can only call when creating tests/approvals/named-types.algo.ts::MyContract.__algots__.defaultCreate() return 1u - block@11: // switch_case_default_L21 + block@11: // switch_case_default_L14 goto block@12 - block@12: // switch_case_next_L21 + block@12: // switch_case_next_L14 goto block@13 - block@13: // after_if_else_L21 + block@13: // after_if_else_L14 return 0u subroutine tests/approvals/named-types.algo.ts::MyContract.getXY() -> : - block@0: // L22 + block@0: // L15 return 1u 2u subroutine tests/approvals/named-types.algo.ts::MyContract.getYX() -> : - block@0: // L29 + block@0: // L22 return 111u 222u subroutine tests/approvals/named-types.algo.ts::MyContract.getAnon() -> : - block@0: // L36 + block@0: // L29 return 3u 4u subroutine tests/approvals/named-types.algo.ts::MyContract.test(x.x: uint64, x.y: uint64, y.y: uint64, y.x: uint64) -> void: - block@0: // L43 + block@0: // L36 + let tmp%0#0: bool = (== x.y#0 y.y#0) + goto tmp%0#0 ? block@1 : block@3 + block@1: // and_contd_L37 + let tmp%1#0: bool = (== x.x#0 y.x#0) + goto tmp%1#0 ? block@2 : block@3 + block@2: // bool_true_L37 + let and_result%0#0: bool = 1u + goto block@4 + block@3: // bool_false_L37 + let and_result%0#1: bool = 0u + goto block@4 + block@4: // bool_merge_L37 + let and_result%0#2: bool = φ(and_result%0#0 <- block@2, and_result%0#1 <- block@3) + (assert and_result%0#2) // assert target is match for conditions return subroutine tests/approvals/named-types.algo.ts::MyContract.testing() -> : - block@0: // L45 + block@0: // L40 let (a.x#0: uint64, a.y#0: uint64) = tests/approvals/named-types.algo.ts::MyContract.getXY() let (b.y#0: uint64, b.x#0: uint64) = tests/approvals/named-types.algo.ts::MyContract.getYX() - let (c.x#0: uint64, c.y#0: uint64) = tests/approvals/named-types.algo.ts::MyContract.getAnon() + let (awst_tmp%0#0: uint64, awst_tmp%1#0: uint64) = tests/approvals/named-types.algo.ts::MyContract.getAnon() + let (awst_tmp%2#0: uint64, awst_tmp%3#0: uint64) = tests/approvals/named-types.algo.ts::MyContract.getAnon() + let (c.x#0: uint64, c.y#0: uint64) = (awst_tmp%0#0, awst_tmp%3#0) return a.x#0 a.y#0 b.y#0 b.x#0 c.x#0 c.y#0 subroutine tests/approvals/named-types.algo.ts::MyContract.__algots__.defaultCreate() -> void: - block@0: // L21 + block@0: // L14 return program clear-state: diff --git a/tests/approvals/out/named-types/named-types.awst b/tests/approvals/out/named-types/named-types.awst index 79566bc7..2725cb19 100644 --- a/tests/approvals/out/named-types/named-types.awst +++ b/tests/approvals/out/named-types/named-types.awst @@ -15,28 +15,29 @@ contract MyContract getXY(): XY{ x: uint64, y: uint64 } { - return { x: (#9 = { x: 1, y: 2 }).x, y: #9.y } + return { x: (#0 = { x: 1, y: 2 }).x, y: #0.y } } getYX(): YX{ y: uint64, x: uint64 } { - return { y: (#10 = { x: 222, y: 111 }).y, x: #10.x } + return { y: (#1 = { x: 222, y: 111 }).y, x: #1.x } } - getAnon(): { x: uint64, y: uint64 } + getAnon(): getAnonResult{ x: uint64, y: uint64 } { - return { x: 3, y: 4 } + return { x: (#2 = { x: 3, y: 4 }).x, y: #2.y } } test(): void { + assert(x.y == y.y and x.x == y.x) } testing(): readonlytuple[XY{ x: uint64, y: uint64 }, YX{ y: uint64, x: uint64 }, { x: uint64, y: uint64 }] { a: XY{ x: uint64, y: uint64 } = this.getXY() b: YX{ y: uint64, x: uint64 } = this.getYX() - c: { x: uint64, y: uint64 } = this.getAnon() + c: { x: uint64, y: uint64 } = { x: (#3 = this.getAnon()).x, y: #3.y } return [a, b, c] } diff --git a/tests/approvals/out/named-types/named-types.awst.json b/tests/approvals/out/named-types/named-types.awst.json index e080add0..858b5da9 100644 --- a/tests/approvals/out/named-types/named-types.awst.json +++ b/tests/approvals/out/named-types/named-types.awst.json @@ -3,8 +3,8 @@ "_type": "Contract", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 21, - "end_line": 21, + "line": 14, + "end_line": 14, "column": 0, "end_column": 42 }, @@ -301,15 +301,15 @@ "_type": "ContractMethod", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 22, - "end_line": 22, + "line": 15, + "end_line": 15, "column": 2, "end_column": 20 }, "args": [], "return_type": { "_type": "WTuple", - "name": "XY", + "name": "tests/approvals/named-types.algo.ts::XY", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -338,8 +338,8 @@ "_type": "Block", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 22, - "end_line": 27, + "line": 15, + "end_line": 20, "column": 21, "end_column": 3 }, @@ -348,8 +348,8 @@ "_type": "ReturnStatement", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 23, - "end_line": 26, + "line": 16, + "end_line": 19, "column": 4, "end_column": 5 }, @@ -357,14 +357,14 @@ "_type": "TupleExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 23, - "end_line": 26, + "line": 16, + "end_line": 19, "column": 11, "end_column": 5 }, "wtype": { "_type": "WTuple", - "name": "XY", + "name": "tests/approvals/named-types.algo.ts::XY", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -394,8 +394,8 @@ "_type": "FieldExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 23, - "end_line": 26, + "line": 16, + "end_line": 19, "column": 11, "end_column": 5 }, @@ -410,14 +410,14 @@ "_type": "SingleEvaluation", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 23, - "end_line": 26, + "line": 16, + "end_line": 19, "column": 11, "end_column": 5 }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -446,14 +446,14 @@ "_type": "TupleExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 23, - "end_line": 26, + "line": 16, + "end_line": 19, "column": 11, "end_column": 5 }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -483,8 +483,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 24, - "end_line": 24, + "line": 17, + "end_line": 17, "column": 9, "end_column": 10 }, @@ -502,8 +502,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 25, - "end_line": 25, + "line": 18, + "end_line": 18, "column": 9, "end_column": 10 }, @@ -519,7 +519,7 @@ } ] }, - "id": "9" + "id": "0" }, "name": "x" }, @@ -527,8 +527,8 @@ "_type": "FieldExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 23, - "end_line": 26, + "line": 16, + "end_line": 19, "column": 11, "end_column": 5 }, @@ -543,14 +543,14 @@ "_type": "SingleEvaluation", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 23, - "end_line": 26, + "line": 16, + "end_line": 19, "column": 11, "end_column": 5 }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -579,14 +579,14 @@ "_type": "TupleExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 23, - "end_line": 26, + "line": 16, + "end_line": 19, "column": 11, "end_column": 5 }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -616,8 +616,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 24, - "end_line": 24, + "line": 17, + "end_line": 17, "column": 9, "end_column": 10 }, @@ -635,8 +635,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 25, - "end_line": 25, + "line": 18, + "end_line": 18, "column": 9, "end_column": 10 }, @@ -652,7 +652,7 @@ } ] }, - "id": "9" + "id": "0" }, "name": "y" } @@ -675,8 +675,8 @@ "_type": "ARC4ABIMethodConfig", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 22, - "end_line": 22, + "line": 15, + "end_line": 15, "column": 2, "end_column": 20 }, @@ -709,15 +709,15 @@ "_type": "ContractMethod", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 29, - "end_line": 29, + "line": 22, + "end_line": 22, "column": 2, "end_column": 20 }, "args": [], "return_type": { "_type": "WTuple", - "name": "YX", + "name": "tests/approvals/named-types.algo.ts::YX", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -746,8 +746,8 @@ "_type": "Block", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 29, - "end_line": 34, + "line": 22, + "end_line": 27, "column": 21, "end_column": 3 }, @@ -756,8 +756,8 @@ "_type": "ReturnStatement", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 30, - "end_line": 33, + "line": 23, + "end_line": 26, "column": 4, "end_column": 5 }, @@ -765,14 +765,14 @@ "_type": "TupleExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 30, - "end_line": 33, + "line": 23, + "end_line": 26, "column": 11, "end_column": 5 }, "wtype": { "_type": "WTuple", - "name": "YX", + "name": "tests/approvals/named-types.algo.ts::YX", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -802,8 +802,8 @@ "_type": "FieldExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 30, - "end_line": 33, + "line": 23, + "end_line": 26, "column": 11, "end_column": 5 }, @@ -818,14 +818,14 @@ "_type": "SingleEvaluation", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 30, - "end_line": 33, + "line": 23, + "end_line": 26, "column": 11, "end_column": 5 }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -854,14 +854,14 @@ "_type": "TupleExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 30, - "end_line": 33, + "line": 23, + "end_line": 26, "column": 11, "end_column": 5 }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -891,8 +891,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 31, - "end_line": 31, + "line": 24, + "end_line": 24, "column": 9, "end_column": 12 }, @@ -910,8 +910,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 32, - "end_line": 32, + "line": 25, + "end_line": 25, "column": 9, "end_column": 12 }, @@ -927,7 +927,7 @@ } ] }, - "id": "10" + "id": "1" }, "name": "y" }, @@ -935,8 +935,8 @@ "_type": "FieldExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 30, - "end_line": 33, + "line": 23, + "end_line": 26, "column": 11, "end_column": 5 }, @@ -951,14 +951,14 @@ "_type": "SingleEvaluation", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 30, - "end_line": 33, + "line": 23, + "end_line": 26, "column": 11, "end_column": 5 }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -987,14 +987,14 @@ "_type": "TupleExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 30, - "end_line": 33, + "line": 23, + "end_line": 26, "column": 11, "end_column": 5 }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1024,8 +1024,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 31, - "end_line": 31, + "line": 24, + "end_line": 24, "column": 9, "end_column": 12 }, @@ -1043,8 +1043,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 32, - "end_line": 32, + "line": 25, + "end_line": 25, "column": 9, "end_column": 12 }, @@ -1060,7 +1060,7 @@ } ] }, - "id": "10" + "id": "1" }, "name": "x" } @@ -1083,8 +1083,8 @@ "_type": "ARC4ABIMethodConfig", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 29, - "end_line": 29, + "line": 22, + "end_line": 22, "column": 2, "end_column": 20 }, @@ -1117,15 +1117,15 @@ "_type": "ContractMethod", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 36, - "end_line": 36, + "line": 29, + "end_line": 29, "column": 2, "end_column": 18 }, "args": [], "return_type": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/named-types.algo.ts::getAnonResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1154,8 +1154,8 @@ "_type": "Block", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 36, - "end_line": 41, + "line": 29, + "end_line": 34, "column": 19, "end_column": 3 }, @@ -1164,8 +1164,8 @@ "_type": "ReturnStatement", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 37, - "end_line": 40, + "line": 30, + "end_line": 33, "column": 4, "end_column": 5 }, @@ -1173,14 +1173,14 @@ "_type": "TupleExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 37, - "end_line": 40, + "line": 30, + "end_line": 33, "column": 11, "end_column": 5 }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/named-types.algo.ts::getAnonResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1207,13 +1207,13 @@ }, "items": [ { - "_type": "IntegerConstant", + "_type": "FieldExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 38, - "end_line": 38, - "column": 16, - "end_column": 17 + "line": 30, + "end_line": 33, + "column": 11, + "end_column": 5 }, "wtype": { "_type": "WType", @@ -1222,17 +1222,131 @@ "ephemeral": false, "scalar_type": 2 }, - "value": "3", - "teal_alias": null + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 30, + "end_line": 33, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "x", + "y" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 30, + "end_line": 33, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "x", + "y" + ] + }, + "items": [ + { + "_type": "IntegerConstant", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 31, + "end_line": 31, + "column": 16, + "end_column": 17 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "value": "3", + "teal_alias": null + }, + { + "_type": "IntegerConstant", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 32, + "end_line": 32, + "column": 16, + "end_column": 17 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "value": "4", + "teal_alias": null + } + ] + }, + "id": "2" + }, + "name": "x" }, { - "_type": "IntegerConstant", + "_type": "FieldExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 39, - "end_line": 39, - "column": 16, - "end_column": 17 + "line": 30, + "end_line": 33, + "column": 11, + "end_column": 5 }, "wtype": { "_type": "WType", @@ -1241,45 +1355,159 @@ "ephemeral": false, "scalar_type": 2 }, - "value": "4", - "teal_alias": null - } - ] - } - } - ], - "label": null, - "comment": null - }, - "documentation": { - "_type": "MethodDocumentation", - "description": null, - "args": {}, - "returns": null - }, - "cref": "tests/approvals/named-types.algo.ts::MyContract", - "member_name": "getAnon", - "arc4_method_config": { - "_type": "ARC4ABIMethodConfig", - "source_location": { - "file": "tests/approvals/named-types.algo.ts", - "line": 36, - "end_line": 36, - "column": 2, - "end_column": 18 - }, - "name": "getAnon", - "is_bare": false, - "create": 3, - "readonly": false, - "allowed_completion_types": [ - 0 - ], - "default_args": {}, - "structs": { - "output": { - "name": "Anonymous", - "elements": [ + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 30, + "end_line": 33, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "x", + "y" + ] + }, + "source": { + "_type": "TupleExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 30, + "end_line": 33, + "column": 11, + "end_column": 5 + }, + "wtype": { + "_type": "WTuple", + "name": "::", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "x", + "y" + ] + }, + "items": [ + { + "_type": "IntegerConstant", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 31, + "end_line": 31, + "column": 16, + "end_column": 17 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "value": "3", + "teal_alias": null + }, + { + "_type": "IntegerConstant", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 32, + "end_line": 32, + "column": 16, + "end_column": 17 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "value": "4", + "teal_alias": null + } + ] + }, + "id": "2" + }, + "name": "y" + } + ] + } + } + ], + "label": null, + "comment": null + }, + "documentation": { + "_type": "MethodDocumentation", + "description": null, + "args": {}, + "returns": null + }, + "cref": "tests/approvals/named-types.algo.ts::MyContract", + "member_name": "getAnon", + "arc4_method_config": { + "_type": "ARC4ABIMethodConfig", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 29, + "end_line": 29, + "column": 2, + "end_column": 18 + }, + "name": "getAnon", + "is_bare": false, + "create": 3, + "readonly": false, + "allowed_completion_types": [ + 0 + ], + "default_args": {}, + "structs": { + "output": { + "name": "getAnonResult", + "elements": [ [ "x", "uint64" @@ -1297,8 +1525,8 @@ "_type": "ContractMethod", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 43, - "end_line": 43, + "line": 36, + "end_line": 36, "column": 2, "end_column": 27 }, @@ -1308,7 +1536,7 @@ "name": "x", "wtype": { "_type": "WTuple", - "name": "XY", + "name": "tests/approvals/named-types.algo.ts::XY", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1335,8 +1563,8 @@ }, "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 43, - "end_line": 43, + "line": 36, + "end_line": 36, "column": 14, "end_column": 19 } @@ -1346,7 +1574,7 @@ "name": "y", "wtype": { "_type": "WTuple", - "name": "YX", + "name": "tests/approvals/named-types.algo.ts::YX", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1373,8 +1601,8 @@ }, "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 43, - "end_line": 43, + "line": 36, + "end_line": 36, "column": 21, "end_column": 26 } @@ -1391,12 +1619,323 @@ "_type": "Block", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 43, - "end_line": 43, + "line": 36, + "end_line": 38, "column": 28, - "end_column": 30 + "end_column": 3 }, - "body": [], + "body": [ + { + "_type": "ExpressionStatement", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 37, + "end_line": 37, + "column": 4, + "end_column": 28 + }, + "expr": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 37, + "end_line": 37, + "column": 4, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "void", + "immutable": true, + "ephemeral": false, + "scalar_type": null + }, + "op_code": "assert", + "immediates": [], + "stack_args": [ + { + "_type": "BooleanBinaryOperation", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 37, + "end_line": 37, + "column": 4, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "left": { + "_type": "NumericComparisonExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 37, + "end_line": 37, + "column": 4, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "lhs": { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 37, + "end_line": 37, + "column": 4, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 37, + "end_line": 37, + "column": 16, + "end_column": 17 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/named-types.algo.ts::XY", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "x", + "y" + ] + }, + "name": "x" + }, + "name": "y" + }, + "operator": "==", + "rhs": { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 37, + "end_line": 37, + "column": 4, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 37, + "end_line": 37, + "column": 24, + "end_column": 25 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/named-types.algo.ts::YX", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "y", + "x" + ] + }, + "name": "y" + }, + "name": "y" + } + }, + "op": "and", + "right": { + "_type": "NumericComparisonExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 37, + "end_line": 37, + "column": 4, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "lhs": { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 37, + "end_line": 37, + "column": 4, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 37, + "end_line": 37, + "column": 16, + "end_column": 17 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/named-types.algo.ts::XY", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "x", + "y" + ] + }, + "name": "x" + }, + "name": "x" + }, + "operator": "==", + "rhs": { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 37, + "end_line": 37, + "column": 4, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 37, + "end_line": 37, + "column": 24, + "end_column": 25 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/named-types.algo.ts::YX", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "y", + "x" + ] + }, + "name": "y" + }, + "name": "x" + } + } + } + ], + "comment": "assert target is match for conditions" + } + } + ], "label": null, "comment": null }, @@ -1412,8 +1951,8 @@ "_type": "ARC4ABIMethodConfig", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 43, - "end_line": 43, + "line": 36, + "end_line": 36, "column": 2, "end_column": 27 }, @@ -1459,8 +1998,8 @@ "_type": "ContractMethod", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 45, - "end_line": 45, + "line": 40, + "end_line": 40, "column": 2, "end_column": 18 }, @@ -1474,7 +2013,7 @@ "types": [ { "_type": "WTuple", - "name": "XY", + "name": "tests/approvals/named-types.algo.ts::XY", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1501,7 +2040,7 @@ }, { "_type": "WTuple", - "name": "YX", + "name": "tests/approvals/named-types.algo.ts::YX", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1528,7 +2067,7 @@ }, { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1559,8 +2098,8 @@ "_type": "Block", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 45, - "end_line": 50, + "line": 40, + "end_line": 45, "column": 19, "end_column": 3 }, @@ -1569,8 +2108,8 @@ "_type": "AssignmentStatement", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 46, - "end_line": 46, + "line": 41, + "end_line": 41, "column": 10, "end_column": 26 }, @@ -1578,14 +2117,14 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 46, - "end_line": 46, + "line": 41, + "end_line": 41, "column": 10, "end_column": 11 }, "wtype": { "_type": "WTuple", - "name": "XY", + "name": "tests/approvals/named-types.algo.ts::XY", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1616,14 +2155,14 @@ "_type": "SubroutineCallExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 46, - "end_line": 46, + "line": 41, + "end_line": 41, "column": 14, "end_column": 26 }, "wtype": { "_type": "WTuple", - "name": "XY", + "name": "tests/approvals/named-types.algo.ts::XY", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1659,8 +2198,8 @@ "_type": "AssignmentStatement", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 47, - "end_line": 47, + "line": 42, + "end_line": 42, "column": 10, "end_column": 26 }, @@ -1668,14 +2207,14 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 47, - "end_line": 47, + "line": 42, + "end_line": 42, "column": 10, "end_column": 11 }, "wtype": { "_type": "WTuple", - "name": "YX", + "name": "tests/approvals/named-types.algo.ts::YX", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1706,14 +2245,14 @@ "_type": "SubroutineCallExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 47, - "end_line": 47, + "line": 42, + "end_line": 42, "column": 14, "end_column": 26 }, "wtype": { "_type": "WTuple", - "name": "YX", + "name": "tests/approvals/named-types.algo.ts::YX", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1749,8 +2288,8 @@ "_type": "AssignmentStatement", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 48, - "end_line": 48, + "line": 43, + "end_line": 43, "column": 10, "end_column": 28 }, @@ -1758,14 +2297,14 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 48, - "end_line": 48, + "line": 43, + "end_line": 43, "column": 10, "end_column": 11 }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1793,17 +2332,17 @@ "name": "c" }, "value": { - "_type": "SubroutineCallExpression", + "_type": "TupleExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 48, - "end_line": 48, + "line": 43, + "end_line": 43, "column": 14, "end_column": 28 }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1828,19 +2367,212 @@ "y" ] }, - "target": { - "_type": "InstanceMethodTarget", - "member_name": "getAnon" - }, - "args": [] + "items": [ + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 43, + "end_line": 43, + "column": 14, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 43, + "end_line": 43, + "column": 14, + "end_column": 28 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/named-types.algo.ts::getAnonResult", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "x", + "y" + ] + }, + "source": { + "_type": "SubroutineCallExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 43, + "end_line": 43, + "column": 14, + "end_column": 28 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/named-types.algo.ts::getAnonResult", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "x", + "y" + ] + }, + "target": { + "_type": "InstanceMethodTarget", + "member_name": "getAnon" + }, + "args": [] + }, + "id": "3" + }, + "name": "x" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 43, + "end_line": 43, + "column": 14, + "end_column": 28 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 43, + "end_line": 43, + "column": 14, + "end_column": 28 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/named-types.algo.ts::getAnonResult", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "x", + "y" + ] + }, + "source": { + "_type": "SubroutineCallExpression", + "source_location": { + "file": "tests/approvals/named-types.algo.ts", + "line": 43, + "end_line": 43, + "column": 14, + "end_column": 28 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/named-types.algo.ts::getAnonResult", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + } + ], + "names": [ + "x", + "y" + ] + }, + "target": { + "_type": "InstanceMethodTarget", + "member_name": "getAnon" + }, + "args": [] + }, + "id": "3" + }, + "name": "y" + } + ] } }, { "_type": "ReturnStatement", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 49, - "end_line": 49, + "line": 44, + "end_line": 44, "column": 4, "end_column": 29 }, @@ -1848,8 +2580,8 @@ "_type": "TupleExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 49, - "end_line": 49, + "line": 44, + "end_line": 44, "column": 11, "end_column": 20 }, @@ -1862,7 +2594,7 @@ "types": [ { "_type": "WTuple", - "name": "XY", + "name": "tests/approvals/named-types.algo.ts::XY", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1889,7 +2621,7 @@ }, { "_type": "WTuple", - "name": "YX", + "name": "tests/approvals/named-types.algo.ts::YX", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1916,7 +2648,7 @@ }, { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1948,14 +2680,14 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 49, - "end_line": 49, + "line": 44, + "end_line": 44, "column": 12, "end_column": 13 }, "wtype": { "_type": "WTuple", - "name": "XY", + "name": "tests/approvals/named-types.algo.ts::XY", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1986,14 +2718,14 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 49, - "end_line": 49, + "line": 44, + "end_line": 44, "column": 15, "end_column": 16 }, "wtype": { "_type": "WTuple", - "name": "YX", + "name": "tests/approvals/named-types.algo.ts::YX", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2024,14 +2756,14 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 49, - "end_line": 49, + "line": 44, + "end_line": 44, "column": 18, "end_column": 19 }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2077,8 +2809,8 @@ "_type": "ARC4ABIMethodConfig", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 45, - "end_line": 45, + "line": 40, + "end_line": 40, "column": 2, "end_column": 18 }, @@ -2097,8 +2829,8 @@ "_type": "ContractMethod", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 21, - "end_line": 21, + "line": 14, + "end_line": 14, "column": 0, "end_column": 42 }, @@ -2114,8 +2846,8 @@ "_type": "Block", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 21, - "end_line": 21, + "line": 14, + "end_line": 14, "column": 0, "end_column": 42 }, @@ -2124,8 +2856,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 21, - "end_line": 21, + "line": 14, + "end_line": 14, "column": 0, "end_column": 42 }, @@ -2133,8 +2865,8 @@ "_type": "VoidConstant", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 21, - "end_line": 21, + "line": 14, + "end_line": 14, "column": 0, "end_column": 42 }, @@ -2284,8 +3016,8 @@ "_type": "ContractMethod", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 21, - "end_line": 21, + "line": 14, + "end_line": 14, "column": 0, "end_column": 42 }, @@ -2301,8 +3033,8 @@ "_type": "Block", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 21, - "end_line": 21, + "line": 14, + "end_line": 14, "column": 0, "end_column": 42 }, @@ -2322,8 +3054,8 @@ "_type": "ARC4BareMethodConfig", "source_location": { "file": "tests/approvals/named-types.algo.ts", - "line": 21, - "end_line": 21, + "line": 14, + "end_line": 14, "column": 0, "end_column": 42 }, diff --git a/tests/approvals/out/object-destructuring/object-destructuring.awst b/tests/approvals/out/object-destructuring/object-destructuring.awst index f363b04e..dcb36054 100644 --- a/tests/approvals/out/object-destructuring/object-destructuring.awst +++ b/tests/approvals/out/object-destructuring/object-destructuring.awst @@ -1,18 +1,18 @@ subroutine testPartialDestructure(arg: { x: uint64, y: uint64, z: uint64 }): void { { x: x, y: _, z: _₁ }: { x: uint64, y: uint64, z: uint64 } = arg - { nested: { y: y, x: _₂, z: _₃ } }: { nested: { y: uint64, x: uint64, z: uint64 } } = { nested: (#2 = { nested: { y: arg.y, x: arg.x, z: arg.z } }).nested } + { nested: { y: y, x: _₂, z: _₃ } }: { nested: { y: uint64, x: uint64, z: uint64 } } = { nested: (#0 = { nested: { y: arg.y, x: arg.x, z: arg.z } }).nested } } subroutine test(): void { - { a: a, b: b, c: c, d: d }: { a: uint64, b: bytes, c: bool, d: biguint } = tests/approvals/object-destructuring.algo.ts::produceItems() - { d: e, a: _, b: _₁, c: _₂ }: { d: biguint, a: uint64, b: bytes, c: bool } = { d: (#3 = tests/approvals/object-destructuring.algo.ts::produceItems()).d, a: #3.a, b: #3.b, c: #3.c } - f: { a: uint64, b: bytes, c: bool, d: biguint } = { a: (#5 = ({ a: g, d: i, b: _₃, c: _₄ } = { a: (#4 = tests/approvals/object-destructuring.algo.ts::produceItems()).a, d: #4.d, b: #4.b, c: #4.c })).a, b: #5.b, c: #5.c, d: #5.d } - tests/approvals/object-destructuring.algo.ts::receivePartial({ a: (#6 = tests/approvals/object-destructuring.algo.ts::produceItems()).a, d: #6.d }) + { a: a, b: b, c: c, d: d }: { a: uint64, b: bytes, c: bool, d: biguint } = { a: (#1 = tests/approvals/object-destructuring.algo.ts::produceItems()).a, b: #1.b, c: #1.c, d: #1.d } + { d: e, a: _, b: _₁, c: _₂ }: { d: biguint, a: uint64, b: bytes, c: bool } = { d: (#2 = tests/approvals/object-destructuring.algo.ts::produceItems()).d, a: #2.a, b: #2.b, c: #2.c } + f: { a: uint64, b: bytes, c: bool, d: biguint } = { a: (#3 = ({ a: g, d: i, b: _₃, c: _₄ } = { a: (#4 = tests/approvals/object-destructuring.algo.ts::produceItems()).a, d: #4.d, b: #4.b, c: #4.c })).a, b: #3.b, c: #3.c, d: #3.d } + tests/approvals/object-destructuring.algo.ts::receivePartial({ a: (#5 = tests/approvals/object-destructuring.algo.ts::produceItems()).a, d: #5.d }) } -subroutine produceItems(): { a: uint64, b: bytes, c: bool, d: biguint } +subroutine produceItems(): produceItemsResult{ a: uint64, b: bytes, c: bool, d: biguint } { - return { a: (#7 = { a: 1, b: "", c: False, d: 999 }).a, b: #7.b, c: #7.c, d: #7.d } + return { a: (#6 = { a: 1, b: "", c: False, d: 999 }).a, b: #6.b, c: #6.c, d: #6.d } } subroutine receivePartial(x: { a: uint64, d: biguint }): void { @@ -25,7 +25,7 @@ subroutine testLiteralToLiteral(): void } subroutine testNumericResolution(): void { - x: { a: uint64 } = (y = { a: (#8 = { a: 434 }).a }) + x: { a: uint64 } = (y = { a: (#7 = { a: 434 }).a }) } subroutine test2(args: { x: bool, y: bool, z: readonlytuple[string, string] }): void { diff --git a/tests/approvals/out/object-destructuring/object-destructuring.awst.json b/tests/approvals/out/object-destructuring/object-destructuring.awst.json index 7acb3169..4c1f15ae 100644 --- a/tests/approvals/out/object-destructuring/object-destructuring.awst.json +++ b/tests/approvals/out/object-destructuring/object-destructuring.awst.json @@ -14,7 +14,7 @@ "name": "arg", "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -93,7 +93,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -194,7 +194,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -250,14 +250,14 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, "types": [ { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -307,7 +307,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -410,14 +410,14 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, "types": [ { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -467,7 +467,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -511,14 +511,14 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, "types": [ { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -567,14 +567,14 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, "types": [ { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -624,7 +624,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -685,7 +685,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -749,7 +749,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -813,7 +813,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -854,7 +854,7 @@ } ] }, - "id": "2" + "id": "0" }, "name": "nested" } @@ -921,7 +921,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1038,7 +1038,7 @@ ] }, "value": { - "_type": "SubroutineCallExpression", + "_type": "TupleExpression", "source_location": { "file": "tests/approvals/object-destructuring.algo.ts", "line": 12, @@ -1048,7 +1048,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1089,11 +1089,528 @@ "d" ] }, - "target": { - "_type": "SubroutineID", - "target": "tests/approvals/object-destructuring.algo.ts::produceItems" - }, - "args": [] + "items": [ + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/object-destructuring.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 39 + }, + "wtype": { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/object-destructuring.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 39 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "biguint", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + } + ], + "names": [ + "a", + "b", + "c", + "d" + ] + }, + "source": { + "_type": "SubroutineCallExpression", + "source_location": { + "file": "tests/approvals/object-destructuring.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 39 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "biguint", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + } + ], + "names": [ + "a", + "b", + "c", + "d" + ] + }, + "target": { + "_type": "SubroutineID", + "target": "tests/approvals/object-destructuring.algo.ts::produceItems" + }, + "args": [] + }, + "id": "1" + }, + "name": "a" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/object-destructuring.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 39 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/object-destructuring.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 39 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "biguint", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + } + ], + "names": [ + "a", + "b", + "c", + "d" + ] + }, + "source": { + "_type": "SubroutineCallExpression", + "source_location": { + "file": "tests/approvals/object-destructuring.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 39 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "biguint", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + } + ], + "names": [ + "a", + "b", + "c", + "d" + ] + }, + "target": { + "_type": "SubroutineID", + "target": "tests/approvals/object-destructuring.algo.ts::produceItems" + }, + "args": [] + }, + "id": "1" + }, + "name": "b" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/object-destructuring.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 39 + }, + "wtype": { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/object-destructuring.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 39 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "biguint", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + } + ], + "names": [ + "a", + "b", + "c", + "d" + ] + }, + "source": { + "_type": "SubroutineCallExpression", + "source_location": { + "file": "tests/approvals/object-destructuring.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 39 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "biguint", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + } + ], + "names": [ + "a", + "b", + "c", + "d" + ] + }, + "target": { + "_type": "SubroutineID", + "target": "tests/approvals/object-destructuring.algo.ts::produceItems" + }, + "args": [] + }, + "id": "1" + }, + "name": "c" + }, + { + "_type": "FieldExpression", + "source_location": { + "file": "tests/approvals/object-destructuring.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 39 + }, + "wtype": { + "_type": "WType", + "name": "biguint", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "base": { + "_type": "SingleEvaluation", + "source_location": { + "file": "tests/approvals/object-destructuring.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 39 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "biguint", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + } + ], + "names": [ + "a", + "b", + "c", + "d" + ] + }, + "source": { + "_type": "SubroutineCallExpression", + "source_location": { + "file": "tests/approvals/object-destructuring.algo.ts", + "line": 12, + "end_line": 12, + "column": 25, + "end_column": 39 + }, + "wtype": { + "_type": "WTuple", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", + "immutable": true, + "ephemeral": false, + "scalar_type": null, + "types": [ + { + "_type": "WType", + "name": "uint64", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + { + "_type": "WType", + "name": "bool", + "immutable": true, + "ephemeral": false, + "scalar_type": 2 + }, + { + "_type": "WType", + "name": "biguint", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + } + ], + "names": [ + "a", + "b", + "c", + "d" + ] + }, + "target": { + "_type": "SubroutineID", + "target": "tests/approvals/object-destructuring.algo.ts::produceItems" + }, + "args": [] + }, + "id": "1" + }, + "name": "d" + } + ] } }, { @@ -1116,7 +1633,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1243,7 +1760,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1312,7 +1829,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1364,7 +1881,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1411,7 +1928,7 @@ }, "args": [] }, - "id": "3" + "id": "2" }, "name": "d" }, @@ -1442,7 +1959,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1494,7 +2011,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1541,7 +2058,7 @@ }, "args": [] }, - "id": "3" + "id": "2" }, "name": "a" }, @@ -1572,7 +2089,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1624,7 +2141,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1671,7 +2188,7 @@ }, "args": [] }, - "id": "3" + "id": "2" }, "name": "b" }, @@ -1702,7 +2219,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1754,7 +2271,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1801,7 +2318,7 @@ }, "args": [] }, - "id": "3" + "id": "2" }, "name": "c" } @@ -1828,7 +2345,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1882,7 +2399,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1951,7 +2468,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2003,7 +2520,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2055,7 +2572,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2182,7 +2699,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2251,7 +2768,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2303,7 +2820,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2381,7 +2898,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2433,7 +2950,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2511,7 +3028,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2563,7 +3080,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2641,7 +3158,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2693,7 +3210,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2747,7 +3264,7 @@ ] } }, - "id": "5" + "id": "3" }, "name": "a" }, @@ -2778,7 +3295,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2830,7 +3347,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -2882,7 +3399,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3009,7 +3526,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3078,7 +3595,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3130,7 +3647,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3208,7 +3725,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3260,7 +3777,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3338,7 +3855,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3390,7 +3907,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3468,7 +3985,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3520,7 +4037,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3574,7 +4091,7 @@ ] } }, - "id": "5" + "id": "3" }, "name": "b" }, @@ -3605,7 +4122,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3657,7 +4174,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3709,7 +4226,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3836,7 +4353,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3905,7 +4422,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -3957,7 +4474,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4035,7 +4552,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4087,7 +4604,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4165,7 +4682,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4217,7 +4734,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4295,7 +4812,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4347,7 +4864,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4401,7 +4918,7 @@ ] } }, - "id": "5" + "id": "3" }, "name": "c" }, @@ -4432,7 +4949,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4484,7 +5001,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4536,7 +5053,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4663,7 +5180,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4732,7 +5249,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4784,7 +5301,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4862,7 +5379,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4914,7 +5431,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -4992,7 +5509,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5044,7 +5561,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5122,7 +5639,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5174,7 +5691,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5228,7 +5745,7 @@ ] } }, - "id": "5" + "id": "3" }, "name": "d" } @@ -5279,7 +5796,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5332,7 +5849,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5384,7 +5901,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5431,7 +5948,7 @@ }, "args": [] }, - "id": "6" + "id": "5" }, "name": "a" }, @@ -5462,7 +5979,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5514,7 +6031,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5561,7 +6078,7 @@ }, "args": [] }, - "id": "6" + "id": "5" }, "name": "d" } @@ -5596,7 +6113,7 @@ "args": [], "return_type": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5667,7 +6184,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "tests/approvals/object-destructuring.algo.ts::produceItemsResult", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5736,7 +6253,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5788,7 +6305,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5907,7 +6424,7 @@ } ] }, - "id": "7" + "id": "6" }, "name": "a" }, @@ -5938,7 +6455,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -5990,7 +6507,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -6109,7 +6626,7 @@ } ] }, - "id": "7" + "id": "6" }, "name": "b" }, @@ -6140,7 +6657,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -6192,7 +6709,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -6311,7 +6828,7 @@ } ] }, - "id": "7" + "id": "6" }, "name": "c" }, @@ -6342,7 +6859,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -6394,7 +6911,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -6513,7 +7030,7 @@ } ] }, - "id": "7" + "id": "6" }, "name": "d" } @@ -6548,7 +7065,7 @@ "name": "x", "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -6752,7 +7269,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -6827,7 +7344,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -6863,7 +7380,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -6938,7 +7455,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7064,7 +7581,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7094,7 +7611,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7122,7 +7639,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7152,7 +7669,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7197,7 +7714,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7225,7 +7742,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7264,7 +7781,7 @@ } ] }, - "id": "8" + "id": "7" }, "name": "a" } @@ -7300,7 +7817,7 @@ "name": "args", "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7395,7 +7912,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7416,7 +7933,7 @@ }, { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7520,7 +8037,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7655,7 +8172,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7676,7 +8193,7 @@ }, { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7780,7 +8297,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7854,7 +8371,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -7916,7 +8433,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -8045,7 +8562,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, diff --git a/tests/approvals/out/property-ordering/property-ordering.awst.json b/tests/approvals/out/property-ordering/property-ordering.awst.json index e9977206..572da091 100644 --- a/tests/approvals/out/property-ordering/property-ordering.awst.json +++ b/tests/approvals/out/property-ordering/property-ordering.awst.json @@ -14,7 +14,7 @@ "name": "x", "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -85,7 +85,7 @@ }, "wtype": { "_type": "WTuple", - "name": "BthenA", + "name": "tests/approvals/property-ordering.algo.ts::BthenA", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -123,7 +123,7 @@ }, "wtype": { "_type": "WTuple", - "name": "BthenA", + "name": "tests/approvals/property-ordering.algo.ts::BthenA", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -176,7 +176,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -232,7 +232,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -343,7 +343,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -381,7 +381,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -434,7 +434,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -470,7 +470,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -637,7 +637,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -673,7 +673,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1103,7 +1103,7 @@ }, "wtype": { "_type": "WTuple", - "name": "Anonymous", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1156,7 +1156,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1192,7 +1192,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1289,7 +1289,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null, @@ -1325,7 +1325,7 @@ }, "wtype": { "_type": "WTuple", - "name": "", + "name": "::", "immutable": true, "ephemeral": false, "scalar_type": null,