Skip to content

Docs/language guide #316

Docs/language guide

Docs/language guide #316

GitHub Actions / Test results succeeded Feb 21, 2025 in 1s

376 passed, 0 failed and 0 skipped

Tests passed successfully

✔️ test-results.xml

376 tests were completed in 219s with 376 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
src/compile-options.spec.ts 30✔️ 15ms
src/util/arc4-signature-parser.spec.ts 39✔️ 26ms
src/util/base-32.spec.ts 6✔️ 7ms
tests/approvals.spec.ts 181✔️ 442ms
tests/check-version.spec.ts 1✔️ 1s
tests/expected-output.spec.ts 24✔️ 48ms
tests/onchain/abi-decorators.spec.ts 4✔️ 15s
tests/onchain/accounts.spec.ts 1✔️ 12s
tests/onchain/arc-28-events.spec.ts 2✔️ 11s
tests/onchain/arc4-hybrid.spec.ts 1✔️ 9s
tests/onchain/arc4-method-selector.spec.ts 2✔️ 11s
tests/onchain/arc4-types.spec.ts 7✔️ 36s
tests/onchain/array-destructuring.spec.ts 3✔️ 13s
tests/onchain/assert-match.spec.ts 1✔️ 9s
tests/onchain/asset-proxy.spec.ts 1✔️ 9s
tests/onchain/box-enum-contract.spec.ts 1✔️ 10s
tests/onchain/box-proxies.spec.ts 1✔️ 9s
tests/onchain/byte-expressions.spec.ts 1✔️ 10s
tests/onchain/destructured-params.spec.ts 2✔️ 10s
tests/onchain/do-loops.spec.ts 3✔️ 12s
tests/onchain/extract-bytes.spec.ts 1✔️ 10s
tests/onchain/for-loops.spec.ts 4✔️ 14s
tests/onchain/for-of-loops.spec.ts 5✔️ 16s
tests/onchain/global-state.spec.ts 2✔️ 16s
tests/onchain/implicit-create.spec.ts 5✔️ 14s
tests/onchain/inheritance.spec.ts 2✔️ 17s
tests/onchain/itxn.spec.ts 4✔️ 16s
tests/onchain/local-state.spec.ts 1✔️ 10s
tests/onchain/match-expr.spec.ts 1✔️ 10s
tests/onchain/multi-inheritance.spec.ts 7✔️ 18s
tests/onchain/mutable-arrays.spec.ts 1✔️ 9s
tests/onchain/native-arrays.spec.ts 3✔️ 13s
tests/onchain/ops.spec.ts 1✔️ 10s
tests/onchain/precompiled.spec.ts 4✔️ 15s
tests/onchain/prefix-postfix-operators.spec.ts 1✔️ 11s
tests/onchain/primitives.spec.ts 6✔️ 40s
tests/onchain/property-ordering.spec.ts 1✔️ 10s
tests/onchain/reserve-scratch.spec.ts 2✔️ 11s
tests/onchain/shadowed-variables.spec.ts 1✔️ 10s
tests/onchain/state-totals.spec.ts 7✔️ 13s
tests/onchain/super-calls.spec.ts 4✔️ 14s
tests/onchain/switch-statements.spec.ts 1✔️ 11s
tests/onchain/while-loops.spec.ts 1✔️ 10s

✔️ src/compile-options.spec.ts

src/compile-options.spec.ts
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir
  ✔️ determineOutDir > returns the correct out dir

✔️ src/util/arc4-signature-parser.spec.ts

src/util/arc4-signature-parser.spec.ts
  ✔️ arc4 signature parser > can parse valid types > byte parses
  ✔️ arc4 signature parser > can parse valid types > byte[] parses
  ✔️ arc4 signature parser > can parse valid types > byte[5] parses
  ✔️ arc4 signature parser > can parse valid types > bool parses
  ✔️ arc4 signature parser > can parse valid types > bool[] parses
  ✔️ arc4 signature parser > can parse valid types > bool[12] parses
  ✔️ arc4 signature parser > can parse valid types > uint8 parses
  ✔️ arc4 signature parser > can parse valid types > uint8[] parses
  ✔️ arc4 signature parser > can parse valid types > uint8[12] parses
  ✔️ arc4 signature parser > can parse valid types > uint16 parses
  ✔️ arc4 signature parser > can parse valid types > uint16[] parses
  ✔️ arc4 signature parser > can parse valid types > uint16[12] parses
  ✔️ arc4 signature parser > can parse valid types > uint32 parses
  ✔️ arc4 signature parser > can parse valid types > uint32[] parses
  ✔️ arc4 signature parser > can parse valid types > uint32[12] parses
  ✔️ arc4 signature parser > can parse valid types > uint64 parses
  ✔️ arc4 signature parser > can parse valid types > uint64[] parses
  ✔️ arc4 signature parser > can parse valid types > uint64[12] parses
  ✔️ arc4 signature parser > can parse valid types > uint128 parses
  ✔️ arc4 signature parser > can parse valid types > uint128[] parses
  ✔️ arc4 signature parser > can parse valid types > uint128[12] parses
  ✔️ arc4 signature parser > can parse valid types > uint256 parses
  ✔️ arc4 signature parser > can parse valid types > uint256[] parses
  ✔️ arc4 signature parser > can parse valid types > uint256[12] parses
  ✔️ arc4 signature parser > can parse valid types > string parses
  ✔️ arc4 signature parser > can parse valid types > string[] parses
  ✔️ arc4 signature parser > can parse valid types > string[12] parses
  ✔️ arc4 signature parser > can parse valid types > byte[][][] parses
  ✔️ arc4 signature parser > can parse valid types > byte[2][2][2] parses
  ✔️ arc4 signature parser > can parse valid types > (bool) parses
  ✔️ arc4 signature parser > can parse valid types > (bool,string,uint8,(uint16,string[]),bool[])[1][] parses
  ✔️ arc4 signature parser > errors on invalid types > float returns error Expecting string 'uint', got 'floa...'
  ✔️ arc4 signature parser > errors on invalid types > uint2 returns error n must be between 8 and 512, and a multiple of 8
  ✔️ arc4 signature parser > errors on invalid types > (uint8,uint2) returns error n must be between 8 and 512, and a multiple of 8
  ✔️ arc4 signature parser > errors on invalid types > uint8[ returns error Expecting character ']', but got end of input.
  ✔️ arc4 signature parser > errors on invalid types > uint8] returns error Expecting ',', '[', or ')', but got ]
  ✔️ arc4 signature parser > errors on invalid types > uint8,uint8 returns error Signature contained more than one type. Wrap multiple types in parentheses to declare a tuple type
  ✔️ arc4 signature parser > errors on invalid types > (uint8 returns error Tuple has not been closed
  ✔️ arc4 signature parser > errors on invalid types > (uint8,bool)) returns error Char ')' has no matching opening '('

✔️ src/util/base-32.spec.ts

src/util/base-32.spec.ts
  ✔️ base-32 encoding > Zero address should be AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ
  ✔️ base-32 encoding > encode and decode should return same value > Uint8Array[]
  ✔️ base-32 encoding > encode and decode should return same value > Uint8Array[ 1 ]
  ✔️ base-32 encoding > encode and decode should return same value > Uint8Array[ 1, 2, 3, 4, 5, 6, 7, 8 ]
  ✔️ base-32 encoding > encode and decode should return same value > Uint8Array[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
  ✔️ base-32 encoding > encode and decode should return same value > Uint8Array[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]

✔️ tests/approvals.spec.ts

tests/approvals.spec.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/abi-decorators.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/accounts.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/arc-28-events.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/arc4-encode-decode.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/arc4-hybrid.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/arc4-method-selector.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/arc4-struct.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/arc4-types.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/array-destructuring.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/array-literals.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/assert-match.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/asset-proxy.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/avm11.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/biguint-expressions.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/boolean-conversions.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/boolean-expressions.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/box-enum-contract.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/box-proxies.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/byte-expressions.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/call-expressions.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/casting.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/conditional-expression.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/destructured-params.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/destructuring-iterators.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/do-loops.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/ensure-budget.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/extract-bytes.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/for-loops.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/for-of-loops.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/global-state.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/implicit-create.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/inheritance-a.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/inheritance-b.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/intrinsic-calls.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/itxn.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/jsdoc.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/local-state.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/logic-sig.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/match-expr.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/multi-inheritance.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/mutable-arrays.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/named-types.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/native-arrays.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/non-arc4.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/numeric-literal-expressions.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/object-destructuring.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/ops.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/pre-approved-sale.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/precompiled-apps.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/precompiled-factory.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/prefix-postfix-operators.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/property-ordering.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/reserve-scratch.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/shadowed-variables.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/state-totals.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/strings.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/super-calls.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/switch-statements.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/uint64-expressions.algo.ts
  ✔️ Approvals > Compile Unoptimized > tests/approvals/while-loops.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/abi-decorators.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/accounts.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/arc-28-events.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/arc4-encode-decode.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/arc4-hybrid.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/arc4-method-selector.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/arc4-struct.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/arc4-types.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/array-destructuring.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/array-literals.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/assert-match.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/asset-proxy.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/avm11.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/biguint-expressions.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/boolean-conversions.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/boolean-expressions.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/box-enum-contract.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/box-proxies.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/byte-expressions.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/call-expressions.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/casting.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/conditional-expression.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/destructured-params.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/destructuring-iterators.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/do-loops.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/ensure-budget.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/extract-bytes.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/for-loops.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/for-of-loops.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/global-state.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/implicit-create.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/inheritance-a.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/inheritance-b.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/intrinsic-calls.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/itxn.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/jsdoc.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/local-state.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/logic-sig.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/match-expr.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/multi-inheritance.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/mutable-arrays.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/named-types.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/native-arrays.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/non-arc4.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/numeric-literal-expressions.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/object-destructuring.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/ops.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/pre-approved-sale.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/precompiled-apps.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/precompiled-factory.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/prefix-postfix-operators.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/property-ordering.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/reserve-scratch.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/shadowed-variables.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/state-totals.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/strings.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/super-calls.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/switch-statements.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/uint64-expressions.algo.ts
  ✔️ Approvals > Compile O1 > tests/approvals/while-loops.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/abi-decorators.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/accounts.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/arc-28-events.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/arc4-encode-decode.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/arc4-hybrid.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/arc4-method-selector.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/arc4-struct.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/arc4-types.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/array-destructuring.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/array-literals.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/assert-match.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/asset-proxy.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/avm11.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/biguint-expressions.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/boolean-conversions.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/boolean-expressions.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/box-enum-contract.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/box-proxies.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/byte-expressions.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/call-expressions.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/casting.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/conditional-expression.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/destructured-params.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/destructuring-iterators.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/do-loops.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/ensure-budget.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/extract-bytes.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/for-loops.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/for-of-loops.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/global-state.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/implicit-create.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/inheritance-a.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/inheritance-b.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/intrinsic-calls.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/itxn.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/jsdoc.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/local-state.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/logic-sig.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/match-expr.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/multi-inheritance.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/mutable-arrays.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/named-types.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/native-arrays.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/non-arc4.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/numeric-literal-expressions.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/object-destructuring.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/ops.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/pre-approved-sale.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/precompiled-apps.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/precompiled-factory.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/prefix-postfix-operators.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/property-ordering.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/reserve-scratch.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/shadowed-variables.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/state-totals.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/strings.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/super-calls.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/switch-statements.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/uint64-expressions.algo.ts
  ✔️ Approvals > Compile O2 > tests/approvals/while-loops.algo.ts
  ✔️ Approvals > There should be no differences to committed changes

✔️ tests/check-version.spec.ts

tests/check-version.spec.ts
  ✔️ The puya version available for testing > must match the target version

✔️ tests/expected-output.spec.ts

tests/expected-output.spec.ts
  ✔️ Expected output > 'tests/expected-output/uint64-expressi…' > has expected output
  ✔️ Expected output > 'tests/expected-output/prefix-postfix-…' > has expected output
  ✔️ Expected output > 'tests/expected-output/object-destruct…' > has expected output
  ✔️ Expected output > 'tests/expected-output/numeric-literal…' > has expected output
  ✔️ Expected output > 'tests/expected-output/null-values.alg…' > has expected output
  ✔️ Expected output > 'tests/expected-output/not-supported.a…' > has expected output
  ✔️ Expected output > 'tests/expected-output/mutating-tuples…' > has expected output
  ✔️ Expected output > 'tests/expected-output/multi-inheritan…' > has expected output
  ✔️ Expected output > 'tests/expected-output/logic-sig.algo.…' > has expected output
  ✔️ Expected output > 'tests/expected-output/global-state.al…' > has expected output
  ✔️ Expected output > 'tests/expected-output/extract-bytes.a…' > has expected output
  ✔️ Expected output > 'tests/expected-output/dynamic-imports…' > has expected output
  ✔️ Expected output > 'tests/expected-output/conditional-exp…' > has expected output
  ✔️ Expected output > 'tests/expected-output/cant-create.alg…' > has expected output
  ✔️ Expected output > 'tests/expected-output/byte-expression…' > has expected output
  ✔️ Expected output > 'tests/expected-output/biguint-express…' > has expected output
  ✔️ Expected output > 'tests/expected-output/array-literals.…' > has expected output
  ✔️ Expected output > 'tests/expected-output/array-destructu…' > has expected output
  ✔️ Expected output > 'tests/expected-output/arc4-types.algo…' > has expected output
  ✔️ Expected output > 'tests/expected-output/arc4-struct.alg…' > has expected output
  ✔️ Expected output > 'tests/expected-output/arc4-method-sel…' > has expected output
  ✔️ Expected output > 'tests/expected-output/arc4-hybrid.alg…' > has expected output
  ✔️ Expected output > 'tests/expected-output/arc28-events.al…' > has expected output
  ✔️ Expected output > 'tests/expected-output/abi-decorators.…' > has expected output

✔️ tests/onchain/abi-decorators.spec.ts

tests/onchain/abi-decorators.spec.ts
  ✔️ abi-decorators > can be created
  ✔️ abi-decorators > methods can be called
  ✔️ abi-decorators > overloaded methods can be called
  ✔️ abi-decorators > overrided methods work as expected

✔️ tests/onchain/accounts.spec.ts

tests/onchain/accounts.spec.ts
  ✔️ accounts > returns account data

✔️ tests/onchain/arc-28-events.spec.ts

tests/onchain/arc-28-events.spec.ts
  ✔️ arc 28 events > It works with struct types
  ✔️ arc 28 events > It works with dynamic bytes

✔️ tests/onchain/arc4-hybrid.spec.ts

tests/onchain/arc4-hybrid.spec.ts
  ✔️ arc4-hybrid > works as expected

✔️ tests/onchain/arc4-method-selector.spec.ts

tests/onchain/arc4-method-selector.spec.ts
  ✔️ arc4 method selector > It gets the correct method selector
  ✔️ arc4 method selector > It gets the correct method selector when the method name is overridden in config

✔️ tests/onchain/arc4-types.spec.ts

tests/onchain/arc4-types.spec.ts
  ✔️ arc4-types > runs
  ✔️ arc4-struct > testVectorCreationAndEquality
  ✔️ arc4-struct > add vectors
  ✔️ arc4-struct > implicit casting and spreading
  ✔️ arc4-struct > to native
  ✔️ arc4-encode-decode > encoding
  ✔️ arc4-encode-decode > decoding

✔️ tests/onchain/array-destructuring.spec.ts

tests/onchain/array-destructuring.spec.ts
  ✔️ array destructuring > testNested
  ✔️ array destructuring > test
  ✔️ array destructuring > testLiteralDestructuring

✔️ tests/onchain/assert-match.spec.ts

tests/onchain/assert-match.spec.ts
  ✔️ assert match > it can be called

✔️ tests/onchain/asset-proxy.spec.ts

tests/onchain/asset-proxy.spec.ts
  ✔️ asset proxy contract > it runs

✔️ tests/onchain/box-enum-contract.spec.ts

tests/onchain/box-enum-contract.spec.ts
  ✔️ box-enum-contract > can store and load enums

✔️ tests/onchain/box-proxies.spec.ts

tests/onchain/box-proxies.spec.ts
  ✔️ BoxProxies > Should run

✔️ tests/onchain/byte-expressions.spec.ts

tests/onchain/byte-expressions.spec.ts
  ✔️ byte expressions > runs

✔️ tests/onchain/destructured-params.spec.ts

tests/onchain/destructured-params.spec.ts
  ✔️ destructed params > Works from abi
  ✔️ destructed params > Works internally

✔️ tests/onchain/do-loops.spec.ts

tests/onchain/do-loops.spec.ts
  ✔️ do loops > testDo runs
  ✔️ do loops > testDoBreak runs
  ✔️ do loops > testDoContinue runs

✔️ tests/onchain/extract-bytes.spec.ts

tests/onchain/extract-bytes.spec.ts
  ✔️ Extract bytes contract > runs

✔️ tests/onchain/for-loops.spec.ts

tests/onchain/for-loops.spec.ts
  ✔️ for loops > basic
  ✔️ for loops > break
  ✔️ for loops > continue
  ✔️ for loops > labelled break

✔️ tests/onchain/for-of-loops.spec.ts

tests/onchain/for-of-loops.spec.ts
  ✔️ for loops > test_for_of_loop_tuple
  ✔️ for loops > test_for_of_loop_arc4_dynamic_array
  ✔️ for loops > test_for_of_loop_arc4_static_array
  ✔️ for loops > test_for_of_loop_native_immutable_array
  ✔️ for loops > test_for_of_loop_native_mutable_array

✔️ tests/onchain/global-state.spec.ts

tests/onchain/global-state.spec.ts
  ✔️ global state base > test runs
  ✔️ global state arc4 > arc4 runs

✔️ tests/onchain/implicit-create.spec.ts

tests/onchain/implicit-create.spec.ts
  ✔️ implicit-create > NoBare can be created
  ✔️ implicit-create > NoNoOp can be created
  ✔️ implicit-create > ExplicitBareCreateFromBase can be created
  ✔️ implicit-create > ExplicitAbiCreateFromBase can't be created with bare
  ✔️ implicit-create > ExplicitAbiCreateFromBase can be created with abi

✔️ tests/onchain/inheritance.spec.ts

tests/onchain/inheritance.spec.ts
  ✔️ inheritance > non arc4 > Simple contract can be created
  ✔️ inheritance > arc4 > ARC4 contract can be created

✔️ tests/onchain/itxn.spec.ts

tests/onchain/itxn.spec.ts
  ✔️ itxn contract > test1 runs
  ✔️ itxn contract > test2 runs
  ✔️ itxn contract > test3 runs
  ✔️ itxn contract > test4 runs

✔️ tests/onchain/local-state.spec.ts

tests/onchain/local-state.spec.ts
  ✔️ local state > it runs

✔️ tests/onchain/match-expr.spec.ts

tests/onchain/match-expr.spec.ts
  ✔️ match expr > it runs

✔️ tests/onchain/multi-inheritance.spec.ts

tests/onchain/multi-inheritance.spec.ts
  ✔️ multi-inheritance > CommonBase has all state
  ✔️ multi-inheritance > BaseOne has all state
  ✔️ multi-inheritance > BaseTwo has all state
  ✔️ multi-inheritance > Multibase has all state
  ✔️ multi-inheritance > Multibase methods can all be called
  ✔️ multi-inheritance > MRO is depth first
  ✔️ multi-inheritance > super.class(...) can be used to target a specific base type

✔️ tests/onchain/mutable-arrays.spec.ts

tests/onchain/mutable-arrays.spec.ts
  ✔️ mutable arrays > it runs

✔️ tests/onchain/native-arrays.spec.ts

tests/onchain/native-arrays.spec.ts
  ✔️ native arrays > it runs
  ✔️ native arrays > works with arc4 values
  ✔️ native arrays > works with native structs

✔️ tests/onchain/ops.spec.ts

tests/onchain/ops.spec.ts
  ✔️ ops > runs

✔️ tests/onchain/precompiled.spec.ts

tests/onchain/precompiled.spec.ts
  ✔️ precompiled > Hello contract can be deployed
  ✔️ precompiled > HelloTemplate contract can be deployed
  ✔️ precompiled > HelloTemplateCustomPrefix contract can be deployed
  ✔️ precompiled > LargeProgram contract can be deployed

✔️ tests/onchain/prefix-postfix-operators.spec.ts

tests/onchain/prefix-postfix-operators.spec.ts
  ✔️ prefix postfix operators > it runs

✔️ tests/onchain/primitives.spec.ts

tests/onchain/primitives.spec.ts
  ✔️ primitives > boolean > it can be called
  ✔️ primitives > uint64 > can be created
  ✔️ primitives > biguint > can be created
  ✔️ primitives > bytes > can be created
  ✔️ primitives > strings > can be joined
  ✔️ primitives > strings > can be interpolated

✔️ tests/onchain/property-ordering.spec.ts

tests/onchain/property-ordering.spec.ts
  ✔️ Property ordering > it runs

✔️ tests/onchain/reserve-scratch.spec.ts

tests/onchain/reserve-scratch.spec.ts
  ✔️ reserve scratch > ReserveScratchAlgo works
  ✔️ reserve scratch > SubReserveScratchAlgo works

✔️ tests/onchain/shadowed-variables.spec.ts

tests/onchain/shadowed-variables.spec.ts
  ✔️ Shadowed variables > Should create and run

✔️ tests/onchain/state-totals.spec.ts

tests/onchain/state-totals.spec.ts
  ✔️ State totals > BaseWithState has correct totals
  ✔️ State totals > BaseWithState runs
  ✔️ State totals > SubClassWithState has correct totals
  ✔️ State totals > SubClassWithState runs
  ✔️ State totals > SubClassWithExplicitTotals has correct totals
  ✔️ State totals > ExtendsSubWithTotals has correct totals
  ✔️ State totals > ExtendsSubWithTotals runs

✔️ tests/onchain/super-calls.spec.ts

tests/onchain/super-calls.spec.ts
  ✔️ super calls > super contract runs
  ✔️ super calls > sub contract runs
  ✔️ super calls > sub sub contract runs
  ✔️ super calls > sub sub contract runs

✔️ tests/onchain/switch-statements.spec.ts

tests/onchain/switch-statements.spec.ts
  ✔️ switch statements > runs

✔️ tests/onchain/while-loops.spec.ts

tests/onchain/while-loops.spec.ts
  ✔️ while loops > runs