├── .eslintrc.js ├── .github └── workflows │ ├── ci.yml │ ├── release.yml │ └── win-smoketest.yml ├── .gitignore ├── .npmignore ├── .prettierrc.toml ├── FEATURES.md ├── LICENSE ├── README.md ├── bun.lockb ├── examples ├── __snapshots__ │ └── examples.test.ts.snap ├── amm │ ├── README.md │ ├── amm.algo.ts │ └── tealscript_artifacts │ │ ├── ConstantProductAMM.approval.teal │ │ ├── ConstantProductAMM.arc32.json │ │ ├── ConstantProductAMM.arc4.json │ │ ├── ConstantProductAMM.arc56.json │ │ ├── ConstantProductAMM.clear.teal │ │ └── ConstantProductAMM.src_map.json ├── arc58 │ ├── arc58.algo.ts │ └── artifacts │ │ ├── AbstractedAccount.approval.teal │ │ ├── AbstractedAccount.arc32.json │ │ ├── AbstractedAccount.arc4.json │ │ ├── AbstractedAccount.arc56.json │ │ ├── AbstractedAccount.clear.teal │ │ └── AbstractedAccount.src_map.json ├── arc72 │ ├── arc72.algo.ts │ └── artifacts │ │ ├── ARC72.approval.teal │ │ ├── ARC72.arc32.json │ │ ├── ARC72.arc4.json │ │ ├── ARC72.arc56.json │ │ ├── ARC72.clear.teal │ │ └── ARC72.src_map.json ├── arc75 │ ├── ARC75Client.ts │ ├── arc75.algo.ts │ ├── arc75.test.ts │ └── artifacts │ │ ├── ARC75.approval.teal │ │ ├── ARC75.arc32.json │ │ ├── ARC75.arc4.json │ │ ├── ARC75.arc56.json │ │ ├── ARC75.clear.teal │ │ └── ARC75.src_map.json ├── auction │ ├── README.md │ ├── auction.algo.ts │ └── tealscript_artifacts │ │ ├── Auction.approval.teal │ │ ├── Auction.arc32.json │ │ ├── Auction.arc4.json │ │ ├── Auction.arc56.json │ │ ├── Auction.clear.teal │ │ └── Auction.src_map.json ├── big_box │ ├── README.md │ ├── TEAL.pdf │ ├── artifacts │ │ ├── BigBox.approval.teal │ │ ├── BigBox.arc32.json │ │ ├── BigBox.arc4.json │ │ ├── BigBox.arc56.json │ │ ├── BigBox.clear.teal │ │ └── BigBox.src_map.json │ ├── big_box.algo.ts │ └── upload_client.test.ts ├── calculator │ ├── artifacts │ │ ├── Calculator.approval.teal │ │ ├── Calculator.arc32.json │ │ ├── Calculator.arc4.json │ │ ├── Calculator.arc56.json │ │ ├── Calculator.clear.teal │ │ └── Calculator.src_map.json │ ├── calculator.algo.ts │ └── calculator.ts ├── examples.test.ts ├── itxns │ ├── FactoryCallerClient.ts │ ├── README.md │ ├── artifacts │ │ ├── FactoryCaller.approval.teal │ │ ├── FactoryCaller.arc32.json │ │ ├── FactoryCaller.arc4.json │ │ ├── FactoryCaller.arc56.json │ │ ├── FactoryCaller.clear.teal │ │ ├── FactoryCaller.src_map.json │ │ ├── NFTFactory.approval.teal │ │ ├── NFTFactory.arc32.json │ │ ├── NFTFactory.arc4.json │ │ ├── NFTFactory.arc56.json │ │ ├── NFTFactory.clear.teal │ │ └── NFTFactory.src_map.json │ ├── demo.ts │ └── itxns.algo.ts ├── lsig_with_app │ ├── CreatorVerifierClient.ts │ ├── README.md │ ├── artifacts │ │ ├── CreatorVerifier.approval.teal │ │ ├── CreatorVerifier.arc32.json │ │ ├── CreatorVerifier.arc4.json │ │ ├── CreatorVerifier.arc56.json │ │ ├── CreatorVerifier.clear.teal │ │ ├── CreatorVerifier.src_map.json │ │ ├── OptInLsig.lsig.teal │ │ └── OptInLsig.src_map.json │ ├── lsig_with_app.algo.ts │ └── lsig_with_app.test.ts ├── merkle │ ├── MerkleTreeClient.ts │ ├── append.csv │ ├── artifacts │ │ ├── MerkleTree.approval.teal │ │ ├── MerkleTree.arc32.json │ │ ├── MerkleTree.arc4.json │ │ ├── MerkleTree.arc56.json │ │ ├── MerkleTree.clear.teal │ │ └── MerkleTree.src_map.json │ ├── demo.ts │ ├── merkle.algo.ts │ ├── update.csv │ ├── verify_appends.csv │ └── verify_updates.csv ├── non_abi │ ├── artifacts │ │ ├── NonABIExample.approval.teal │ │ ├── NonABIExample.arc32.json │ │ ├── NonABIExample.arc4.json │ │ ├── NonABIExample.arc56.json │ │ ├── NonABIExample.clear.teal │ │ └── NonABIExample.src_map.json │ └── non_abi.algo.ts ├── optin-lsig │ ├── artifacts │ │ ├── LsigExample.lsig.teal │ │ └── LsigExample.src_map.json │ └── lsig.algo.ts ├── reti │ ├── README.md │ ├── artifacts │ │ ├── StakingPool.approval.teal │ │ ├── StakingPool.arc32.json │ │ ├── StakingPool.arc4.json │ │ ├── StakingPool.arc56.json │ │ ├── StakingPool.clear.teal │ │ ├── StakingPool.src_map.json │ │ ├── ValidatorRegistry.approval.teal │ │ ├── ValidatorRegistry.arc32.json │ │ ├── ValidatorRegistry.arc4.json │ │ ├── ValidatorRegistry.arc56.json │ │ ├── ValidatorRegistry.clear.teal │ │ └── ValidatorRegistry.src_map.json │ ├── constants.algo.ts │ ├── stakingPool.algo.ts │ └── validatorRegistry.algo.ts ├── simple │ ├── SimpleClient.ts │ ├── artifacts │ │ ├── Simple.approval.teal │ │ ├── Simple.arc32.json │ │ ├── Simple.arc4.json │ │ ├── Simple.arc56.json │ │ ├── Simple.clear.teal │ │ └── Simple.src_map.json │ ├── index.ts │ └── simple.algo.ts ├── tsconfig.json └── tuple_in_box │ ├── ContactsAppClient.ts │ ├── app.algo.ts │ ├── client.ts │ └── tealscript_artifacts │ ├── ContactsApp.approval.teal │ ├── ContactsApp.arc32.json │ ├── ContactsApp.arc4.json │ ├── ContactsApp.arc56.json │ ├── ContactsApp.clear.teal │ └── ContactsApp.src_map.json ├── jest.config.js ├── package.json ├── scripts ├── compile_all.ts ├── generateFeatures.ts └── version.ts ├── src ├── bin │ └── tealscript.ts ├── lib │ ├── compiler.ts │ ├── contract.ts │ ├── index.ts │ ├── lsig.ts │ └── optimize.ts ├── static │ └── langspec.json ├── types │ └── arc56.d.ts └── version.ts ├── starlight ├── .gitignore ├── .vscode │ ├── extensions.json │ └── launch.json ├── README.md ├── astro.config.mjs ├── package-lock.json ├── package.json ├── public │ └── favicon.svg ├── src │ ├── assets │ │ └── houston.webp │ ├── content │ │ ├── config.ts │ │ └── docs │ │ │ ├── guides │ │ │ ├── Supported Types │ │ │ │ ├── arrays.md │ │ │ │ └── numbers.md │ │ │ ├── atomic_txn.md │ │ │ ├── features.md │ │ │ ├── getting_started.md │ │ │ ├── inner_transactions.md │ │ │ ├── lifecycle.md │ │ │ ├── math.md │ │ │ ├── methods.md │ │ │ ├── multiple_contracts.md │ │ │ ├── pyteal.md │ │ │ └── storage.md │ │ │ ├── index.mdx │ │ │ └── tutorials │ │ │ └── Hello World │ │ │ ├── 0001-intro.md │ │ │ ├── 0002-init.md │ │ │ ├── 0003-contract.md │ │ │ ├── 0004-artifacts.md │ │ │ ├── 0005-hello.md │ │ │ └── 0006-test.md │ └── env.d.ts └── tsconfig.json ├── test.ts ├── tests ├── __snapshots__ │ ├── account.test.ts.snap │ ├── binary.test.ts.snap │ ├── cblocks.test.ts.snap │ ├── functions.test.ts.snap │ ├── general.test.ts.snap │ ├── if.test.ts.snap │ ├── inheritance.test.ts.snap │ ├── itxns.test.ts.snap │ ├── loops.test.ts.snap │ ├── lsig.test.ts.snap │ ├── math.test.ts.snap │ ├── storage.test.ts.snap │ └── templates.test.ts.snap ├── abi.test.ts ├── account.test.ts ├── binary.test.ts ├── cblocks.test.ts ├── common.ts ├── contracts │ ├── abi.algo.ts │ ├── account.algo.ts │ ├── arc56.algo.ts │ ├── artifacts │ │ ├── A.approval.teal │ │ ├── A.arc32.json │ │ ├── A.arc4.json │ │ ├── A.arc56.json │ │ ├── A.clear.teal │ │ ├── ABITestAccesStringInTuple.approval.teal │ │ ├── ABITestAccesStringInTuple.arc32.json │ │ ├── ABITestAccesStringInTuple.arc4.json │ │ ├── ABITestAccesStringInTuple.arc56.json │ │ ├── ABITestAccesStringInTuple.clear.teal │ │ ├── ABITestAccessDynamicArrayElementInTuple.approval.teal │ │ ├── ABITestAccessDynamicArrayElementInTuple.arc32.json │ │ ├── ABITestAccessDynamicArrayElementInTuple.arc4.json │ │ ├── ABITestAccessDynamicArrayElementInTuple.arc56.json │ │ ├── ABITestAccessDynamicArrayElementInTuple.clear.teal │ │ ├── ABITestAccessDynamicArrayInMiddleOfTuple.approval.teal │ │ ├── ABITestAccessDynamicArrayInMiddleOfTuple.arc32.json │ │ ├── ABITestAccessDynamicArrayInMiddleOfTuple.arc4.json │ │ ├── ABITestAccessDynamicArrayInMiddleOfTuple.arc56.json │ │ ├── ABITestAccessDynamicArrayInMiddleOfTuple.clear.teal │ │ ├── ABITestAccessDynamicStringArray.approval.teal │ │ ├── ABITestAccessDynamicStringArray.arc32.json │ │ ├── ABITestAccessDynamicStringArray.arc4.json │ │ ├── ABITestAccessDynamicStringArray.arc56.json │ │ ├── ABITestAccessDynamicStringArray.clear.teal │ │ ├── ABITestAccessStaticArrayInBoxInVariable.approval.teal │ │ ├── ABITestAccessStaticArrayInBoxInVariable.arc32.json │ │ ├── ABITestAccessStaticArrayInBoxInVariable.arc4.json │ │ ├── ABITestAccessStaticArrayInBoxInVariable.arc56.json │ │ ├── ABITestAccessStaticArrayInBoxInVariable.clear.teal │ │ ├── ABITestAngularCasting.approval.teal │ │ ├── ABITestAngularCasting.arc32.json │ │ ├── ABITestAngularCasting.arc4.json │ │ ├── ABITestAngularCasting.arc56.json │ │ ├── ABITestAngularCasting.clear.teal │ │ ├── ABITestArrayInMethodCall.approval.teal │ │ ├── ABITestArrayInMethodCall.arc32.json │ │ ├── ABITestArrayInMethodCall.arc4.json │ │ ├── ABITestArrayInMethodCall.arc56.json │ │ ├── ABITestArrayInMethodCall.clear.teal │ │ ├── ABITestArrayInObjectInState.approval.teal │ │ ├── ABITestArrayInObjectInState.arc32.json │ │ ├── ABITestArrayInObjectInState.arc4.json │ │ ├── ABITestArrayInObjectInState.arc56.json │ │ ├── ABITestArrayInObjectInState.clear.teal │ │ ├── ABITestArrayInTuple.approval.teal │ │ ├── ABITestArrayInTuple.arc32.json │ │ ├── ABITestArrayInTuple.arc4.json │ │ ├── ABITestArrayInTuple.arc56.json │ │ ├── ABITestArrayInTuple.clear.teal │ │ ├── ABITestArrayLength.approval.teal │ │ ├── ABITestArrayLength.arc32.json │ │ ├── ABITestArrayLength.arc4.json │ │ ├── ABITestArrayLength.arc56.json │ │ ├── ABITestArrayLength.clear.teal │ │ ├── ABITestArrayPop.approval.teal │ │ ├── ABITestArrayPop.arc32.json │ │ ├── ABITestArrayPop.arc4.json │ │ ├── ABITestArrayPop.arc56.json │ │ ├── ABITestArrayPop.clear.teal │ │ ├── ABITestArrayPopValue.approval.teal │ │ ├── ABITestArrayPopValue.arc32.json │ │ ├── ABITestArrayPopValue.arc4.json │ │ ├── ABITestArrayPopValue.arc56.json │ │ ├── ABITestArrayPopValue.clear.teal │ │ ├── ABITestArrayPush.approval.teal │ │ ├── ABITestArrayPush.arc32.json │ │ ├── ABITestArrayPush.arc4.json │ │ ├── ABITestArrayPush.arc56.json │ │ ├── ABITestArrayPush.clear.teal │ │ ├── ABITestArrayRef.approval.teal │ │ ├── ABITestArrayRef.arc32.json │ │ ├── ABITestArrayRef.arc4.json │ │ ├── ABITestArrayRef.arc56.json │ │ ├── ABITestArrayRef.clear.teal │ │ ├── ABITestArraySplice.approval.teal │ │ ├── ABITestArraySplice.arc32.json │ │ ├── ABITestArraySplice.arc4.json │ │ ├── ABITestArraySplice.arc56.json │ │ ├── ABITestArraySplice.clear.teal │ │ ├── ABITestArraySpliceValue.approval.teal │ │ ├── ABITestArraySpliceValue.arc32.json │ │ ├── ABITestArraySpliceValue.arc4.json │ │ ├── ABITestArraySpliceValue.arc56.json │ │ ├── ABITestArraySpliceValue.clear.teal │ │ ├── ABITestBiggerByteCasting.approval.teal │ │ ├── ABITestBiggerByteCasting.arc32.json │ │ ├── ABITestBiggerByteCasting.arc4.json │ │ ├── ABITestBiggerByteCasting.arc56.json │ │ ├── ABITestBiggerByteCasting.clear.teal │ │ ├── ABITestBoolFirstInTuple.approval.teal │ │ ├── ABITestBoolFirstInTuple.arc32.json │ │ ├── ABITestBoolFirstInTuple.arc4.json │ │ ├── ABITestBoolFirstInTuple.arc56.json │ │ ├── ABITestBoolFirstInTuple.clear.teal │ │ ├── ABITestBoolInNestedTuple.approval.teal │ │ ├── ABITestBoolInNestedTuple.arc32.json │ │ ├── ABITestBoolInNestedTuple.arc4.json │ │ ├── ABITestBoolInNestedTuple.arc56.json │ │ ├── ABITestBoolInNestedTuple.clear.teal │ │ ├── ABITestBoolInObj.approval.teal │ │ ├── ABITestBoolInObj.arc32.json │ │ ├── ABITestBoolInObj.arc4.json │ │ ├── ABITestBoolInObj.arc56.json │ │ ├── ABITestBoolInObj.clear.teal │ │ ├── ABITestBoolTuple.approval.teal │ │ ├── ABITestBoolTuple.arc32.json │ │ ├── ABITestBoolTuple.arc4.json │ │ ├── ABITestBoolTuple.arc56.json │ │ ├── ABITestBoolTuple.clear.teal │ │ ├── ABITestBoolTupleAccess.approval.teal │ │ ├── ABITestBoolTupleAccess.arc32.json │ │ ├── ABITestBoolTupleAccess.arc4.json │ │ ├── ABITestBoolTupleAccess.arc56.json │ │ ├── ABITestBoolTupleAccess.clear.teal │ │ ├── ABITestBoolTupleUpdate.approval.teal │ │ ├── ABITestBoolTupleUpdate.arc32.json │ │ ├── ABITestBoolTupleUpdate.arc4.json │ │ ├── ABITestBoolTupleUpdate.arc56.json │ │ ├── ABITestBoolTupleUpdate.clear.teal │ │ ├── ABITestBoolUpdateInBox.approval.teal │ │ ├── ABITestBoolUpdateInBox.arc32.json │ │ ├── ABITestBoolUpdateInBox.arc4.json │ │ ├── ABITestBoolUpdateInBox.arc56.json │ │ ├── ABITestBoolUpdateInBox.clear.teal │ │ ├── ABITestBoolUpdateInObjectInBox.approval.teal │ │ ├── ABITestBoolUpdateInObjectInBox.arc32.json │ │ ├── ABITestBoolUpdateInObjectInBox.arc4.json │ │ ├── ABITestBoolUpdateInObjectInBox.arc56.json │ │ ├── ABITestBoolUpdateInObjectInBox.clear.teal │ │ ├── ABITestBooleanArgAndReturn.approval.teal │ │ ├── ABITestBooleanArgAndReturn.arc32.json │ │ ├── ABITestBooleanArgAndReturn.arc4.json │ │ ├── ABITestBooleanArgAndReturn.arc56.json │ │ ├── ABITestBooleanArgAndReturn.clear.teal │ │ ├── ABITestBooleanLastInObj.approval.teal │ │ ├── ABITestBooleanLastInObj.arc32.json │ │ ├── ABITestBooleanLastInObj.arc4.json │ │ ├── ABITestBooleanLastInObj.arc56.json │ │ ├── ABITestBooleanLastInObj.clear.teal │ │ ├── ABITestBytesCasting.approval.teal │ │ ├── ABITestBytesCasting.arc32.json │ │ ├── ABITestBytesCasting.arc4.json │ │ ├── ABITestBytesCasting.arc56.json │ │ ├── ABITestBytesCasting.clear.teal │ │ ├── ABITestBytesReturn.approval.teal │ │ ├── ABITestBytesReturn.arc32.json │ │ ├── ABITestBytesReturn.arc4.json │ │ ├── ABITestBytesReturn.arc56.json │ │ ├── ABITestBytesReturn.clear.teal │ │ ├── ABITestCastBytesFunction.approval.teal │ │ ├── ABITestCastBytesFunction.arc32.json │ │ ├── ABITestCastBytesFunction.arc4.json │ │ ├── ABITestCastBytesFunction.arc56.json │ │ ├── ABITestCastBytesFunction.clear.teal │ │ ├── ABITestChainedPropertyAfterTuple.approval.teal │ │ ├── ABITestChainedPropertyAfterTuple.arc32.json │ │ ├── ABITestChainedPropertyAfterTuple.arc4.json │ │ ├── ABITestChainedPropertyAfterTuple.arc56.json │ │ ├── ABITestChainedPropertyAfterTuple.clear.teal │ │ ├── ABITestCustomTypes.approval.teal │ │ ├── ABITestCustomTypes.arc32.json │ │ ├── ABITestCustomTypes.arc4.json │ │ ├── ABITestCustomTypes.arc56.json │ │ ├── ABITestCustomTypes.clear.teal │ │ ├── ABITestDisgusting.approval.teal │ │ ├── ABITestDisgusting.arc32.json │ │ ├── ABITestDisgusting.arc4.json │ │ ├── ABITestDisgusting.arc56.json │ │ ├── ABITestDisgusting.clear.teal │ │ ├── ABITestDynamicAccessOfDynamicElementInStaticArray.approval.teal │ │ ├── ABITestDynamicAccessOfDynamicElementInStaticArray.arc32.json │ │ ├── ABITestDynamicAccessOfDynamicElementInStaticArray.arc4.json │ │ ├── ABITestDynamicAccessOfDynamicElementInStaticArray.arc56.json │ │ ├── ABITestDynamicAccessOfDynamicElementInStaticArray.clear.teal │ │ ├── ABITestDynamicArray.approval.teal │ │ ├── ABITestDynamicArray.arc32.json │ │ ├── ABITestDynamicArray.arc4.json │ │ ├── ABITestDynamicArray.arc56.json │ │ ├── ABITestDynamicArray.clear.teal │ │ ├── ABITestDynamicArrayArg.approval.teal │ │ ├── ABITestDynamicArrayArg.arc32.json │ │ ├── ABITestDynamicArrayArg.arc4.json │ │ ├── ABITestDynamicArrayArg.arc56.json │ │ ├── ABITestDynamicArrayArg.clear.teal │ │ ├── ABITestDynamicArrayElements.approval.teal │ │ ├── ABITestDynamicArrayElements.arc32.json │ │ ├── ABITestDynamicArrayElements.arc4.json │ │ ├── ABITestDynamicArrayElements.arc56.json │ │ ├── ABITestDynamicArrayElements.clear.teal │ │ ├── ABITestDynamicArrayInMiddleOfTuple.approval.teal │ │ ├── ABITestDynamicArrayInMiddleOfTuple.arc32.json │ │ ├── ABITestDynamicArrayInMiddleOfTuple.arc4.json │ │ ├── ABITestDynamicArrayInMiddleOfTuple.arc56.json │ │ ├── ABITestDynamicArrayInMiddleOfTuple.clear.teal │ │ ├── ABITestDynamicArrayIteration.approval.teal │ │ ├── ABITestDynamicArrayIteration.arc32.json │ │ ├── ABITestDynamicArrayIteration.arc4.json │ │ ├── ABITestDynamicArrayIteration.arc56.json │ │ ├── ABITestDynamicArrayIteration.clear.teal │ │ ├── ABITestDynamicArrayLength.approval.teal │ │ ├── ABITestDynamicArrayLength.arc32.json │ │ ├── ABITestDynamicArrayLength.arc4.json │ │ ├── ABITestDynamicArrayLength.arc56.json │ │ ├── ABITestDynamicArrayLength.clear.teal │ │ ├── ABITestDynamicBoolArray.approval.teal │ │ ├── ABITestDynamicBoolArray.arc32.json │ │ ├── ABITestDynamicBoolArray.arc4.json │ │ ├── ABITestDynamicBoolArray.arc56.json │ │ ├── ABITestDynamicBoolArray.clear.teal │ │ ├── ABITestDynamicBoolArrayAccess.approval.teal │ │ ├── ABITestDynamicBoolArrayAccess.arc32.json │ │ ├── ABITestDynamicBoolArrayAccess.arc4.json │ │ ├── ABITestDynamicBoolArrayAccess.arc56.json │ │ ├── ABITestDynamicBoolArrayAccess.clear.teal │ │ ├── ABITestDynamicBoolArrayUpdate.approval.teal │ │ ├── ABITestDynamicBoolArrayUpdate.arc32.json │ │ ├── ABITestDynamicBoolArrayUpdate.arc4.json │ │ ├── ABITestDynamicBoolArrayUpdate.arc56.json │ │ ├── ABITestDynamicBoolArrayUpdate.clear.teal │ │ ├── ABITestDynamicTupleArray.approval.teal │ │ ├── ABITestDynamicTupleArray.arc32.json │ │ ├── ABITestDynamicTupleArray.arc4.json │ │ ├── ABITestDynamicTupleArray.arc56.json │ │ ├── ABITestDynamicTupleArray.clear.teal │ │ ├── ABITestEmptyDynamicArray.approval.teal │ │ ├── ABITestEmptyDynamicArray.arc32.json │ │ ├── ABITestEmptyDynamicArray.arc4.json │ │ ├── ABITestEmptyDynamicArray.arc56.json │ │ ├── ABITestEmptyDynamicArray.clear.teal │ │ ├── ABITestEmptyStaticArray.approval.teal │ │ ├── ABITestEmptyStaticArray.arc32.json │ │ ├── ABITestEmptyStaticArray.arc4.json │ │ ├── ABITestEmptyStaticArray.arc56.json │ │ ├── ABITestEmptyStaticArray.clear.teal │ │ ├── ABITestExtractUint.approval.teal │ │ ├── ABITestExtractUint.arc32.json │ │ ├── ABITestExtractUint.arc4.json │ │ ├── ABITestExtractUint.arc56.json │ │ ├── ABITestExtractUint.clear.teal │ │ ├── ABITestForEachReturn.approval.teal │ │ ├── ABITestForEachReturn.arc32.json │ │ ├── ABITestForEachReturn.arc4.json │ │ ├── ABITestForEachReturn.arc56.json │ │ ├── ABITestForEachReturn.clear.teal │ │ ├── ABITestForOfBreak.approval.teal │ │ ├── ABITestForOfBreak.arc32.json │ │ ├── ABITestForOfBreak.arc4.json │ │ ├── ABITestForOfBreak.arc56.json │ │ ├── ABITestForOfBreak.clear.teal │ │ ├── ABITestForOfContinue.approval.teal │ │ ├── ABITestForOfContinue.arc32.json │ │ ├── ABITestForOfContinue.arc4.json │ │ ├── ABITestForOfContinue.arc56.json │ │ ├── ABITestForOfContinue.clear.teal │ │ ├── ABITestGlobalMethodInChain.approval.teal │ │ ├── ABITestGlobalMethodInChain.arc32.json │ │ ├── ABITestGlobalMethodInChain.arc4.json │ │ ├── ABITestGlobalMethodInChain.arc56.json │ │ ├── ABITestGlobalMethodInChain.clear.teal │ │ ├── ABITestLargeNestedStaticForEachInBox.approval.teal │ │ ├── ABITestLargeNestedStaticForEachInBox.arc32.json │ │ ├── ABITestLargeNestedStaticForEachInBox.arc4.json │ │ ├── ABITestLargeNestedStaticForEachInBox.arc56.json │ │ ├── ABITestLargeNestedStaticForEachInBox.clear.teal │ │ ├── ABITestLargeNestedStaticForOfInBox.approval.teal │ │ ├── ABITestLargeNestedStaticForOfInBox.arc32.json │ │ ├── ABITestLargeNestedStaticForOfInBox.arc4.json │ │ ├── ABITestLargeNestedStaticForOfInBox.arc56.json │ │ ├── ABITestLargeNestedStaticForOfInBox.clear.teal │ │ ├── ABITestMaxPools.approval.teal │ │ ├── ABITestMaxPools.arc32.json │ │ ├── ABITestMaxPools.arc4.json │ │ ├── ABITestMaxPools.clear.teal │ │ ├── ABITestMaxUfixed.approval.teal │ │ ├── ABITestMaxUfixed.arc32.json │ │ ├── ABITestMaxUfixed.arc4.json │ │ ├── ABITestMaxUfixed.arc56.json │ │ ├── ABITestMaxUfixed.clear.teal │ │ ├── ABITestMixedArray.approval.teal │ │ ├── ABITestMixedArray.clear.teal │ │ ├── ABITestMixedStaticArray.approval.teal │ │ ├── ABITestMixedStaticArray.clear.teal │ │ ├── ABITestMixedStaticArrayElements.approval.teal │ │ ├── ABITestMixedStaticArrayElements.arc32.json │ │ ├── ABITestMixedStaticArrayElements.arc4.json │ │ ├── ABITestMixedStaticArrayElements.arc56.json │ │ ├── ABITestMixedStaticArrayElements.clear.teal │ │ ├── ABITestMultiBytesTuple.approval.teal │ │ ├── ABITestMultiBytesTuple.arc32.json │ │ ├── ABITestMultiBytesTuple.arc4.json │ │ ├── ABITestMultiBytesTuple.arc56.json │ │ ├── ABITestMultiBytesTuple.clear.teal │ │ ├── ABITestMultiNestedArrayRef.approval.teal │ │ ├── ABITestMultiNestedArrayRef.arc32.json │ │ ├── ABITestMultiNestedArrayRef.arc4.json │ │ ├── ABITestMultiNestedArrayRef.arc56.json │ │ ├── ABITestMultiNestedArrayRef.clear.teal │ │ ├── ABITestNamedTuple.approval.teal │ │ ├── ABITestNamedTuple.arc32.json │ │ ├── ABITestNamedTuple.arc4.json │ │ ├── ABITestNamedTuple.arc56.json │ │ ├── ABITestNamedTuple.clear.teal │ │ ├── ABITestNestedArrayAlongsideBoolean.approval.teal │ │ ├── ABITestNestedArrayAlongsideBoolean.arc32.json │ │ ├── ABITestNestedArrayAlongsideBoolean.arc4.json │ │ ├── ABITestNestedArrayAlongsideBoolean.arc56.json │ │ ├── ABITestNestedArrayAlongsideBoolean.clear.teal │ │ ├── ABITestNestedArrayInBox.approval.teal │ │ ├── ABITestNestedArrayInBox.arc32.json │ │ ├── ABITestNestedArrayInBox.arc4.json │ │ ├── ABITestNestedArrayInBox.arc56.json │ │ ├── ABITestNestedArrayInBox.clear.teal │ │ ├── ABITestNestedArrayInBoxLast.approval.teal │ │ ├── ABITestNestedArrayInBoxLast.arc32.json │ │ ├── ABITestNestedArrayInBoxLast.arc4.json │ │ ├── ABITestNestedArrayInBoxLast.arc56.json │ │ ├── ABITestNestedArrayInBoxLast.clear.teal │ │ ├── ABITestNestedArrayInBoxWithoutBool.approval.teal │ │ ├── ABITestNestedArrayInBoxWithoutBool.arc32.json │ │ ├── ABITestNestedArrayInBoxWithoutBool.arc4.json │ │ ├── ABITestNestedArrayInBoxWithoutBool.arc56.json │ │ ├── ABITestNestedArrayInBoxWithoutBool.clear.teal │ │ ├── ABITestNestedArrayLengthInObject.approval.teal │ │ ├── ABITestNestedArrayLengthInObject.arc32.json │ │ ├── ABITestNestedArrayLengthInObject.arc4.json │ │ ├── ABITestNestedArrayLengthInObject.arc56.json │ │ ├── ABITestNestedArrayLengthInObject.clear.teal │ │ ├── ABITestNestedArrayLengthInObjectVariable.approval.teal │ │ ├── ABITestNestedArrayLengthInObjectVariable.arc32.json │ │ ├── ABITestNestedArrayLengthInObjectVariable.arc4.json │ │ ├── ABITestNestedArrayLengthInObjectVariable.arc56.json │ │ ├── ABITestNestedArrayLengthInObjectVariable.clear.teal │ │ ├── ABITestNestedArrayRef.approval.teal │ │ ├── ABITestNestedArrayRef.arc32.json │ │ ├── ABITestNestedArrayRef.arc4.json │ │ ├── ABITestNestedArrayRef.arc56.json │ │ ├── ABITestNestedArrayRef.clear.teal │ │ ├── ABITestNestedEmptyArray.approval.teal │ │ ├── ABITestNestedEmptyArray.clear.teal │ │ ├── ABITestNestedObject.approval.teal │ │ ├── ABITestNestedObject.arc32.json │ │ ├── ABITestNestedObject.arc4.json │ │ ├── ABITestNestedObject.arc56.json │ │ ├── ABITestNestedObject.clear.teal │ │ ├── ABITestNestedObjectType.approval.teal │ │ ├── ABITestNestedObjectType.arc32.json │ │ ├── ABITestNestedObjectType.arc4.json │ │ ├── ABITestNestedObjectType.arc56.json │ │ ├── ABITestNestedObjectType.clear.teal │ │ ├── ABITestNestedStaticArray.approval.teal │ │ ├── ABITestNestedStaticArray.arc32.json │ │ ├── ABITestNestedStaticArray.arc4.json │ │ ├── ABITestNestedStaticArray.arc56.json │ │ ├── ABITestNestedStaticArray.clear.teal │ │ ├── ABITestNestedStaticArrayLength.approval.teal │ │ ├── ABITestNestedStaticArrayLength.arc32.json │ │ ├── ABITestNestedStaticArrayLength.arc4.json │ │ ├── ABITestNestedStaticArrayLength.arc56.json │ │ ├── ABITestNestedStaticArrayLength.clear.teal │ │ ├── ABITestNestedStaticForEach.approval.teal │ │ ├── ABITestNestedStaticForEach.arc32.json │ │ ├── ABITestNestedStaticForEach.arc4.json │ │ ├── ABITestNestedStaticForEach.arc56.json │ │ ├── ABITestNestedStaticForEach.clear.teal │ │ ├── ABITestNestedStaticForEachInBox.approval.teal │ │ ├── ABITestNestedStaticForEachInBox.arc32.json │ │ ├── ABITestNestedStaticForEachInBox.arc4.json │ │ ├── ABITestNestedStaticForEachInBox.arc56.json │ │ ├── ABITestNestedStaticForEachInBox.clear.teal │ │ ├── ABITestNestedStructInBoxMap.approval.teal │ │ ├── ABITestNestedStructInBoxMap.arc32.json │ │ ├── ABITestNestedStructInBoxMap.arc4.json │ │ ├── ABITestNestedStructInBoxMap.arc56.json │ │ ├── ABITestNestedStructInBoxMap.clear.teal │ │ ├── ABITestNestedTuple.approval.teal │ │ ├── ABITestNestedTuple.arc32.json │ │ ├── ABITestNestedTuple.arc4.json │ │ ├── ABITestNestedTuple.arc56.json │ │ ├── ABITestNestedTuple.clear.teal │ │ ├── ABITestNestedTypesInSignature.approval.teal │ │ ├── ABITestNestedTypesInSignature.arc32.json │ │ ├── ABITestNestedTypesInSignature.arc4.json │ │ ├── ABITestNestedTypesInSignature.arc56.json │ │ ├── ABITestNestedTypesInSignature.clear.teal │ │ ├── ABITestNonE2E.approval.teal │ │ ├── ABITestNonE2E.arc32.json │ │ ├── ABITestNonE2E.arc4.json │ │ ├── ABITestNonE2E.arc56.json │ │ ├── ABITestNonE2E.clear.teal │ │ ├── ABITestNonLiteralDynamicElementInTuple.approval.teal │ │ ├── ABITestNonLiteralDynamicElementInTuple.arc32.json │ │ ├── ABITestNonLiteralDynamicElementInTuple.arc4.json │ │ ├── ABITestNonLiteralDynamicElementInTuple.arc56.json │ │ ├── ABITestNonLiteralDynamicElementInTuple.clear.teal │ │ ├── ABITestNonLiteralNestedArrayRef.approval.teal │ │ ├── ABITestNonLiteralNestedArrayRef.arc32.json │ │ ├── ABITestNonLiteralNestedArrayRef.arc4.json │ │ ├── ABITestNonLiteralNestedArrayRef.arc56.json │ │ ├── ABITestNonLiteralNestedArrayRef.clear.teal │ │ ├── ABITestNonLiteralStaticArrayAccess.approval.teal │ │ ├── ABITestNonLiteralStaticArrayAccess.arc32.json │ │ ├── ABITestNonLiteralStaticArrayAccess.arc4.json │ │ ├── ABITestNonLiteralStaticArrayAccess.arc56.json │ │ ├── ABITestNonLiteralStaticArrayAccess.clear.teal │ │ ├── ABITestNonLiteralStaticArrayElements.approval.teal │ │ ├── ABITestNonLiteralStaticArrayElements.arc32.json │ │ ├── ABITestNonLiteralStaticArrayElements.arc4.json │ │ ├── ABITestNonLiteralStaticArrayElements.arc56.json │ │ ├── ABITestNonLiteralStaticArrayElements.clear.teal │ │ ├── ABITestObjectArrayRef.approval.teal │ │ ├── ABITestObjectArrayRef.arc32.json │ │ ├── ABITestObjectArrayRef.arc4.json │ │ ├── ABITestObjectArrayRef.arc56.json │ │ ├── ABITestObjectArrayRef.clear.teal │ │ ├── ABITestObjectInArgs.approval.teal │ │ ├── ABITestObjectInArgs.arc32.json │ │ ├── ABITestObjectInArgs.arc4.json │ │ ├── ABITestObjectInArgs.arc56.json │ │ ├── ABITestObjectInArgs.clear.teal │ │ ├── ABITestObjectRef.approval.teal │ │ ├── ABITestObjectRef.arc32.json │ │ ├── ABITestObjectRef.arc4.json │ │ ├── ABITestObjectRef.arc56.json │ │ ├── ABITestObjectRef.clear.teal │ │ ├── ABITestOpcodeParamFromObject.approval.teal │ │ ├── ABITestOpcodeParamFromObject.arc32.json │ │ ├── ABITestOpcodeParamFromObject.arc4.json │ │ ├── ABITestOpcodeParamFromObject.arc56.json │ │ ├── ABITestOpcodeParamFromObject.clear.teal │ │ ├── ABITestPartialStaticArray.approval.teal │ │ ├── ABITestPartialStaticArray.arc32.json │ │ ├── ABITestPartialStaticArray.arc4.json │ │ ├── ABITestPartialStaticArray.arc56.json │ │ ├── ABITestPartialStaticArray.clear.teal │ │ ├── ABITestPlusEqualsArrayValue.approval.teal │ │ ├── ABITestPlusEqualsArrayValue.arc32.json │ │ ├── ABITestPlusEqualsArrayValue.arc4.json │ │ ├── ABITestPlusEqualsArrayValue.arc56.json │ │ ├── ABITestPlusEqualsArrayValue.clear.teal │ │ ├── ABITestPlusEqualsObjValue.approval.teal │ │ ├── ABITestPlusEqualsObjValue.arc32.json │ │ ├── ABITestPlusEqualsObjValue.arc4.json │ │ ├── ABITestPlusEqualsObjValue.arc56.json │ │ ├── ABITestPlusEqualsObjValue.clear.teal │ │ ├── ABITestPlusEqualsObjValueInBox.approval.teal │ │ ├── ABITestPlusEqualsObjValueInBox.arc32.json │ │ ├── ABITestPlusEqualsObjValueInBox.arc4.json │ │ ├── ABITestPlusEqualsObjValueInBox.arc56.json │ │ ├── ABITestPlusEqualsObjValueInBox.clear.teal │ │ ├── ABITestPostBoolTupleOffset.approval.teal │ │ ├── ABITestPostBoolTupleOffset.arc32.json │ │ ├── ABITestPostBoolTupleOffset.arc4.json │ │ ├── ABITestPostBoolTupleOffset.arc56.json │ │ ├── ABITestPostBoolTupleOffset.clear.teal │ │ ├── ABITestPushToArrayInBox.approval.teal │ │ ├── ABITestPushToArrayInBox.arc32.json │ │ ├── ABITestPushToArrayInBox.arc4.json │ │ ├── ABITestPushToArrayInBox.arc56.json │ │ ├── ABITestPushToArrayInBox.clear.teal │ │ ├── ABITestRawBytesFunction.approval.teal │ │ ├── ABITestRawBytesFunction.arc32.json │ │ ├── ABITestRawBytesFunction.arc4.json │ │ ├── ABITestRawBytesFunction.arc56.json │ │ ├── ABITestRawBytesFunction.clear.teal │ │ ├── ABITestRefTypes.approval.teal │ │ ├── ABITestRefTypes.arc32.json │ │ ├── ABITestRefTypes.arc4.json │ │ ├── ABITestRefTypes.arc56.json │ │ ├── ABITestRefTypes.clear.teal │ │ ├── ABITestReturnByte.approval.teal │ │ ├── ABITestReturnByte.arc32.json │ │ ├── ABITestReturnByte.arc4.json │ │ ├── ABITestReturnByte.arc56.json │ │ ├── ABITestReturnByte.clear.teal │ │ ├── ABITestReturnDynamicArray.approval.teal │ │ ├── ABITestReturnDynamicArray.arc32.json │ │ ├── ABITestReturnDynamicArray.arc4.json │ │ ├── ABITestReturnDynamicArray.arc56.json │ │ ├── ABITestReturnDynamicArray.clear.teal │ │ ├── ABITestReturnDynamicArrayFromTuple.approval.teal │ │ ├── ABITestReturnDynamicArrayFromTuple.arc32.json │ │ ├── ABITestReturnDynamicArrayFromTuple.arc4.json │ │ ├── ABITestReturnDynamicArrayFromTuple.arc56.json │ │ ├── ABITestReturnDynamicArrayFromTuple.clear.teal │ │ ├── ABITestReturnStaticArray.approval.teal │ │ ├── ABITestReturnStaticArray.arc32.json │ │ ├── ABITestReturnStaticArray.arc4.json │ │ ├── ABITestReturnStaticArray.arc56.json │ │ ├── ABITestReturnStaticArray.clear.teal │ │ ├── ABITestReturnTuple.approval.teal │ │ ├── ABITestReturnTuple.arc32.json │ │ ├── ABITestReturnTuple.arc4.json │ │ ├── ABITestReturnTuple.arc56.json │ │ ├── ABITestReturnTuple.clear.teal │ │ ├── ABITestReturnTupleWithDyamicArray.approval.teal │ │ ├── ABITestReturnTupleWithDyamicArray.arc32.json │ │ ├── ABITestReturnTupleWithDyamicArray.arc4.json │ │ ├── ABITestReturnTupleWithDyamicArray.arc56.json │ │ ├── ABITestReturnTupleWithDyamicArray.clear.teal │ │ ├── ABITestSetStaticArrayElement.approval.teal │ │ ├── ABITestSetStaticArrayElement.arc32.json │ │ ├── ABITestSetStaticArrayElement.arc4.json │ │ ├── ABITestSetStaticArrayElement.arc56.json │ │ ├── ABITestSetStaticArrayElement.clear.teal │ │ ├── ABITestShortTypeNotation.approval.teal │ │ ├── ABITestShortTypeNotation.arc32.json │ │ ├── ABITestShortTypeNotation.arc4.json │ │ ├── ABITestShortTypeNotation.arc56.json │ │ ├── ABITestShortTypeNotation.clear.teal │ │ ├── ABITestShortenDynamicElementInTuple.approval.teal │ │ ├── ABITestShortenDynamicElementInTuple.arc32.json │ │ ├── ABITestShortenDynamicElementInTuple.arc4.json │ │ ├── ABITestShortenDynamicElementInTuple.arc56.json │ │ ├── ABITestShortenDynamicElementInTuple.clear.teal │ │ ├── ABITestSimpleTuple.approval.teal │ │ ├── ABITestSimpleTuple.arc32.json │ │ ├── ABITestSimpleTuple.arc4.json │ │ ├── ABITestSimpleTuple.arc56.json │ │ ├── ABITestSimpleTuple.clear.teal │ │ ├── ABITestSmallerByteCasting.approval.teal │ │ ├── ABITestSmallerByteCasting.arc32.json │ │ ├── ABITestSmallerByteCasting.arc4.json │ │ ├── ABITestSmallerByteCasting.arc56.json │ │ ├── ABITestSmallerByteCasting.clear.teal │ │ ├── ABITestSpliceFirstElement.approval.teal │ │ ├── ABITestSpliceFirstElement.arc32.json │ │ ├── ABITestSpliceFirstElement.arc4.json │ │ ├── ABITestSpliceFirstElement.arc56.json │ │ ├── ABITestSpliceFirstElement.clear.teal │ │ ├── ABITestSpliceFirstElementValue.approval.teal │ │ ├── ABITestSpliceFirstElementValue.arc32.json │ │ ├── ABITestSpliceFirstElementValue.arc4.json │ │ ├── ABITestSpliceFirstElementValue.arc56.json │ │ ├── ABITestSpliceFirstElementValue.clear.teal │ │ ├── ABITestSpliceLastElement.approval.teal │ │ ├── ABITestSpliceLastElement.arc32.json │ │ ├── ABITestSpliceLastElement.arc4.json │ │ ├── ABITestSpliceLastElement.arc56.json │ │ ├── ABITestSpliceLastElement.clear.teal │ │ ├── ABITestSpliceLastElementValue.approval.teal │ │ ├── ABITestSpliceLastElementValue.arc32.json │ │ ├── ABITestSpliceLastElementValue.arc4.json │ │ ├── ABITestSpliceLastElementValue.arc56.json │ │ ├── ABITestSpliceLastElementValue.clear.teal │ │ ├── ABITestStaticArray.approval.teal │ │ ├── ABITestStaticArray.arc32.json │ │ ├── ABITestStaticArray.arc4.json │ │ ├── ABITestStaticArray.arc56.json │ │ ├── ABITestStaticArray.clear.teal │ │ ├── ABITestStaticArrayArg.approval.teal │ │ ├── ABITestStaticArrayArg.arc32.json │ │ ├── ABITestStaticArrayArg.arc4.json │ │ ├── ABITestStaticArrayArg.arc56.json │ │ ├── ABITestStaticArrayArg.clear.teal │ │ ├── ABITestStaticArrayInStorageMap.approval.teal │ │ ├── ABITestStaticArrayInStorageMap.arc32.json │ │ ├── ABITestStaticArrayInStorageMap.arc4.json │ │ ├── ABITestStaticArrayInStorageMap.arc56.json │ │ ├── ABITestStaticArrayInStorageMap.clear.teal │ │ ├── ABITestStaticArrayInStorageRef.approval.teal │ │ ├── ABITestStaticArrayInStorageRef.arc32.json │ │ ├── ABITestStaticArrayInStorageRef.arc4.json │ │ ├── ABITestStaticArrayInStorageRef.arc56.json │ │ ├── ABITestStaticArrayInStorageRef.clear.teal │ │ ├── ABITestStaticArrayLength.approval.teal │ │ ├── ABITestStaticArrayLength.arc32.json │ │ ├── ABITestStaticArrayLength.arc4.json │ │ ├── ABITestStaticArrayLength.arc56.json │ │ ├── ABITestStaticArrayLength.clear.teal │ │ ├── ABITestStaticBoolArray.approval.teal │ │ ├── ABITestStaticBoolArray.arc32.json │ │ ├── ABITestStaticBoolArray.arc4.json │ │ ├── ABITestStaticBoolArray.arc56.json │ │ ├── ABITestStaticBoolArray.clear.teal │ │ ├── ABITestStaticBoolArrayAccess.approval.teal │ │ ├── ABITestStaticBoolArrayAccess.arc32.json │ │ ├── ABITestStaticBoolArrayAccess.arc4.json │ │ ├── ABITestStaticBoolArrayAccess.arc56.json │ │ ├── ABITestStaticBoolArrayAccess.clear.teal │ │ ├── ABITestStaticBoolArrayUpdate.approval.teal │ │ ├── ABITestStaticBoolArrayUpdate.arc32.json │ │ ├── ABITestStaticBoolArrayUpdate.arc4.json │ │ ├── ABITestStaticBoolArrayUpdate.arc56.json │ │ ├── ABITestStaticBoolArrayUpdate.clear.teal │ │ ├── ABITestStaticByteCasting.approval.teal │ │ ├── ABITestStaticByteCasting.arc32.json │ │ ├── ABITestStaticByteCasting.arc4.json │ │ ├── ABITestStaticByteCasting.arc56.json │ │ ├── ABITestStaticByteCasting.clear.teal │ │ ├── ABITestStaticForEach.approval.teal │ │ ├── ABITestStaticForEach.arc32.json │ │ ├── ABITestStaticForEach.arc4.json │ │ ├── ABITestStaticForEach.arc56.json │ │ ├── ABITestStaticForEach.clear.teal │ │ ├── ABITestStaticForOf.approval.teal │ │ ├── ABITestStaticForOf.arc32.json │ │ ├── ABITestStaticForOf.arc4.json │ │ ├── ABITestStaticForOf.arc56.json │ │ ├── ABITestStaticForOf.clear.teal │ │ ├── ABITestStaticStringArrayArg.approval.teal │ │ ├── ABITestStaticStringArrayArg.arc32.json │ │ ├── ABITestStaticStringArrayArg.arc4.json │ │ ├── ABITestStaticStringArrayArg.arc56.json │ │ ├── ABITestStaticStringArrayArg.clear.teal │ │ ├── ABITestStaticTypeInBox.approval.teal │ │ ├── ABITestStaticTypeInBox.arc32.json │ │ ├── ABITestStaticTypeInBox.arc4.json │ │ ├── ABITestStaticTypeInBox.arc56.json │ │ ├── ABITestStaticTypeInBox.clear.teal │ │ ├── ABITestStoragePropertyReferenceInBox.approval.teal │ │ ├── ABITestStoragePropertyReferenceInBox.arc32.json │ │ ├── ABITestStoragePropertyReferenceInBox.arc4.json │ │ ├── ABITestStoragePropertyReferenceInBox.arc56.json │ │ ├── ABITestStoragePropertyReferenceInBox.clear.teal │ │ ├── ABITestStorageRefAccount.approval.teal │ │ ├── ABITestStorageRefAccount.arc32.json │ │ ├── ABITestStorageRefAccount.arc4.json │ │ ├── ABITestStorageRefAccount.arc56.json │ │ ├── ABITestStorageRefAccount.clear.teal │ │ ├── ABITestStorageRefKey.approval.teal │ │ ├── ABITestStorageRefKey.arc32.json │ │ ├── ABITestStorageRefKey.arc4.json │ │ ├── ABITestStorageRefKey.arc56.json │ │ ├── ABITestStorageRefKey.clear.teal │ │ ├── ABITestStorageTypeHint.approval.teal │ │ ├── ABITestStorageTypeHint.arc32.json │ │ ├── ABITestStorageTypeHint.arc4.json │ │ ├── ABITestStorageTypeHint.arc56.json │ │ ├── ABITestStorageTypeHint.clear.teal │ │ ├── ABITestStringAccessor.approval.teal │ │ ├── ABITestStringAccessor.arc32.json │ │ ├── ABITestStringAccessor.arc4.json │ │ ├── ABITestStringAccessor.arc56.json │ │ ├── ABITestStringAccessor.clear.teal │ │ ├── ABITestStringArg.approval.teal │ │ ├── ABITestStringArg.arc32.json │ │ ├── ABITestStringArg.arc4.json │ │ ├── ABITestStringArg.arc56.json │ │ ├── ABITestStringArg.clear.teal │ │ ├── ABITestStringArray.approval.teal │ │ ├── ABITestStringArray.arc32.json │ │ ├── ABITestStringArray.arc4.json │ │ ├── ABITestStringArray.arc56.json │ │ ├── ABITestStringArray.clear.teal │ │ ├── ABITestStringInTuple.approval.teal │ │ ├── ABITestStringInTuple.arc32.json │ │ ├── ABITestStringInTuple.arc4.json │ │ ├── ABITestStringInTuple.arc56.json │ │ ├── ABITestStringInTuple.clear.teal │ │ ├── ABITestStringLength.approval.teal │ │ ├── ABITestStringLength.arc32.json │ │ ├── ABITestStringLength.arc4.json │ │ ├── ABITestStringLength.arc56.json │ │ ├── ABITestStringLength.clear.teal │ │ ├── ABITestStringReturn.approval.teal │ │ ├── ABITestStringReturn.arc32.json │ │ ├── ABITestStringReturn.arc4.json │ │ ├── ABITestStringReturn.arc56.json │ │ ├── ABITestStringReturn.clear.teal │ │ ├── ABITestThreeDimensionalUint16Array.approval.teal │ │ ├── ABITestThreeDimensionalUint16Array.arc32.json │ │ ├── ABITestThreeDimensionalUint16Array.arc4.json │ │ ├── ABITestThreeDimensionalUint16Array.arc56.json │ │ ├── ABITestThreeDimensionalUint16Array.clear.teal │ │ ├── ABITestTupleArg.approval.teal │ │ ├── ABITestTupleArg.arc32.json │ │ ├── ABITestTupleArg.arc4.json │ │ ├── ABITestTupleArg.arc56.json │ │ ├── ABITestTupleArg.clear.teal │ │ ├── ABITestTupleInArray.approval.teal │ │ ├── ABITestTupleInArray.arc32.json │ │ ├── ABITestTupleInArray.arc4.json │ │ ├── ABITestTupleInArray.arc56.json │ │ ├── ABITestTupleInArray.clear.teal │ │ ├── ABITestTupleInTuple.approval.teal │ │ ├── ABITestTupleInTuple.arc32.json │ │ ├── ABITestTupleInTuple.arc4.json │ │ ├── ABITestTupleInTuple.arc56.json │ │ ├── ABITestTupleInTuple.clear.teal │ │ ├── ABITestTxnTypes.approval.teal │ │ ├── ABITestTxnTypes.arc32.json │ │ ├── ABITestTxnTypes.arc4.json │ │ ├── ABITestTxnTypes.arc56.json │ │ ├── ABITestTxnTypes.clear.teal │ │ ├── ABITestTypedConst.approval.teal │ │ ├── ABITestTypedConst.arc32.json │ │ ├── ABITestTypedConst.arc4.json │ │ ├── ABITestTypedConst.arc56.json │ │ ├── ABITestTypedConst.clear.teal │ │ ├── ABITestTypedVarFromStorage.approval.teal │ │ ├── ABITestTypedVarFromStorage.arc32.json │ │ ├── ABITestTypedVarFromStorage.arc4.json │ │ ├── ABITestTypedVarFromStorage.arc56.json │ │ ├── ABITestTypedVarFromStorage.clear.teal │ │ ├── ABITestUfixed.approval.teal │ │ ├── ABITestUfixed.arc32.json │ │ ├── ABITestUfixed.arc4.json │ │ ├── ABITestUfixed.clear.teal │ │ ├── ABITestUint64Casting.approval.teal │ │ ├── ABITestUint64Casting.arc32.json │ │ ├── ABITestUint64Casting.arc4.json │ │ ├── ABITestUint64Casting.arc56.json │ │ ├── ABITestUint64Casting.clear.teal │ │ ├── ABITestUintCasting.approval.teal │ │ ├── ABITestUintCasting.arc32.json │ │ ├── ABITestUintCasting.arc4.json │ │ ├── ABITestUintCasting.arc56.json │ │ ├── ABITestUintCasting.clear.teal │ │ ├── ABITestUintNComparison.approval.teal │ │ ├── ABITestUintNComparison.arc32.json │ │ ├── ABITestUintNComparison.arc4.json │ │ ├── ABITestUintNComparison.arc56.json │ │ ├── ABITestUintNComparison.clear.teal │ │ ├── ABITestUpdateArrayRefInBoxStorage.approval.teal │ │ ├── ABITestUpdateArrayRefInBoxStorage.arc32.json │ │ ├── ABITestUpdateArrayRefInBoxStorage.arc4.json │ │ ├── ABITestUpdateArrayRefInBoxStorage.arc56.json │ │ ├── ABITestUpdateArrayRefInBoxStorage.clear.teal │ │ ├── ABITestUpdateDynamicArrayElement.approval.teal │ │ ├── ABITestUpdateDynamicArrayElement.arc32.json │ │ ├── ABITestUpdateDynamicArrayElement.arc4.json │ │ ├── ABITestUpdateDynamicArrayElement.arc56.json │ │ ├── ABITestUpdateDynamicArrayElement.clear.teal │ │ ├── ABITestUpdateDynamicArrayInMiddleOfTuple.approval.teal │ │ ├── ABITestUpdateDynamicArrayInMiddleOfTuple.arc32.json │ │ ├── ABITestUpdateDynamicArrayInMiddleOfTuple.arc4.json │ │ ├── ABITestUpdateDynamicArrayInMiddleOfTuple.arc56.json │ │ ├── ABITestUpdateDynamicArrayInMiddleOfTuple.clear.teal │ │ ├── ABITestUpdateDynamicArrayInTuple.approval.teal │ │ ├── ABITestUpdateDynamicArrayInTuple.arc32.json │ │ ├── ABITestUpdateDynamicArrayInTuple.arc4.json │ │ ├── ABITestUpdateDynamicArrayInTuple.arc56.json │ │ ├── ABITestUpdateDynamicArrayInTuple.clear.teal │ │ ├── ABITestUpdateDynamicElementInTupleWithSameLength.approval.teal │ │ ├── ABITestUpdateDynamicElementInTupleWithSameLength.arc32.json │ │ ├── ABITestUpdateDynamicElementInTupleWithSameLength.arc4.json │ │ ├── ABITestUpdateDynamicElementInTupleWithSameLength.arc56.json │ │ ├── ABITestUpdateDynamicElementInTupleWithSameLength.clear.teal │ │ ├── ABITestUpdateNamedTuple.approval.teal │ │ ├── ABITestUpdateNamedTuple.arc32.json │ │ ├── ABITestUpdateNamedTuple.arc4.json │ │ ├── ABITestUpdateNamedTuple.arc56.json │ │ ├── ABITestUpdateNamedTuple.clear.teal │ │ ├── ABITestUpdateNestedStaticArray.approval.teal │ │ ├── ABITestUpdateNestedStaticArray.arc32.json │ │ ├── ABITestUpdateNestedStaticArray.arc4.json │ │ ├── ABITestUpdateNestedStaticArray.arc56.json │ │ ├── ABITestUpdateNestedStaticArray.clear.teal │ │ ├── ABITestUpdateNestedStaticArrayElement.approval.teal │ │ ├── ABITestUpdateNestedStaticArrayElement.arc32.json │ │ ├── ABITestUpdateNestedStaticArrayElement.arc4.json │ │ ├── ABITestUpdateNestedStaticArrayElement.arc56.json │ │ ├── ABITestUpdateNestedStaticArrayElement.clear.teal │ │ ├── ABITestUpdateStaticArrayInStorageMap.approval.teal │ │ ├── ABITestUpdateStaticArrayInStorageMap.arc32.json │ │ ├── ABITestUpdateStaticArrayInStorageMap.arc4.json │ │ ├── ABITestUpdateStaticArrayInStorageMap.arc56.json │ │ ├── ABITestUpdateStaticArrayInStorageMap.clear.teal │ │ ├── ABITestUpdateStaticArrayInStorageRef.approval.teal │ │ ├── ABITestUpdateStaticArrayInStorageRef.arc32.json │ │ ├── ABITestUpdateStaticArrayInStorageRef.arc4.json │ │ ├── ABITestUpdateStaticArrayInStorageRef.arc56.json │ │ ├── ABITestUpdateStaticArrayInStorageRef.clear.teal │ │ ├── ABITestUpdateStaticFieldInDynamicObjectInBox.approval.teal │ │ ├── ABITestUpdateStaticFieldInDynamicObjectInBox.arc32.json │ │ ├── ABITestUpdateStaticFieldInDynamicObjectInBox.arc4.json │ │ ├── ABITestUpdateStaticFieldInDynamicObjectInBox.arc56.json │ │ ├── ABITestUpdateStaticFieldInDynamicObjectInBox.clear.teal │ │ ├── ABITestUpdateStringInTuple.approval.teal │ │ ├── ABITestUpdateStringInTuple.arc32.json │ │ ├── ABITestUpdateStringInTuple.arc4.json │ │ ├── ABITestUpdateStringInTuple.arc56.json │ │ ├── ABITestUpdateStringInTuple.clear.teal │ │ ├── ABITestUpdateTupleWithOnlyDynamicTypes.approval.teal │ │ ├── ABITestUpdateTupleWithOnlyDynamicTypes.arc32.json │ │ ├── ABITestUpdateTupleWithOnlyDynamicTypes.arc4.json │ │ ├── ABITestUpdateTupleWithOnlyDynamicTypes.arc56.json │ │ ├── ABITestUpdateTupleWithOnlyDynamicTypes.clear.teal │ │ ├── AD.approval.teal │ │ ├── AD.arc32.json │ │ ├── AD.arc4.json │ │ ├── AD.arc56.json │ │ ├── AD.clear.teal │ │ ├── ARC56Test.approval.teal │ │ ├── ARC56Test.arc32.json │ │ ├── ARC56Test.arc4.json │ │ ├── ARC56Test.arc56.json │ │ ├── ARC56Test.clear.teal │ │ ├── ARC56TestNoTemplateVars.approval.teal │ │ ├── ARC56TestNoTemplateVars.arc32.json │ │ ├── ARC56TestNoTemplateVars.arc4.json │ │ ├── ARC56TestNoTemplateVars.arc56.json │ │ ├── ARC56TestNoTemplateVars.clear.teal │ │ ├── AVM11.approval.teal │ │ ├── AVM11.arc32.json │ │ ├── AVM11.arc4.json │ │ ├── AVM11.arc56.json │ │ ├── AVM11.clear.teal │ │ ├── AccountTest.approval.teal │ │ ├── AccountTest.arc32.json │ │ ├── AccountTest.arc4.json │ │ ├── AccountTest.arc56.json │ │ ├── AccountTest.clear.teal │ │ ├── B.approval.teal │ │ ├── B.arc32.json │ │ ├── B.arc4.json │ │ ├── B.arc56.json │ │ ├── B.clear.teal │ │ ├── B2.approval.teal │ │ ├── B2.arc32.json │ │ ├── B2.arc4.json │ │ ├── B2.arc56.json │ │ ├── B2.clear.teal │ │ ├── BasicLsig.lsig.teal │ │ ├── BigComment.approval.teal │ │ ├── BigComment.arc32.json │ │ ├── BigComment.arc4.json │ │ ├── BigComment.arc56.json │ │ ├── BigComment.clear.teal │ │ ├── BinaryTest.approval.teal │ │ ├── BinaryTest.arc32.json │ │ ├── BinaryTest.arc4.json │ │ ├── BinaryTest.arc56.json │ │ ├── BinaryTest.clear.teal │ │ ├── BytecblockTest.approval.teal │ │ ├── BytecblockTest.arc32.json │ │ ├── BytecblockTest.arc4.json │ │ ├── BytecblockTest.arc56.json │ │ ├── BytecblockTest.clear.teal │ │ ├── C.approval.teal │ │ ├── C.arc32.json │ │ ├── C.arc4.json │ │ ├── C.arc56.json │ │ ├── C.clear.teal │ │ ├── CblocksTest.approval.teal │ │ ├── CblocksTest.arc32.json │ │ ├── CblocksTest.arc4.json │ │ ├── CblocksTest.arc56.json │ │ ├── CblocksTest.clear.teal │ │ ├── ContractWithCustomStruct.approval.teal │ │ ├── ContractWithCustomStruct.arc32.json │ │ ├── ContractWithCustomStruct.arc4.json │ │ ├── ContractWithCustomStruct.arc56.json │ │ ├── ContractWithCustomStruct.clear.teal │ │ ├── ContractWithLsigProgram.approval.teal │ │ ├── ContractWithLsigProgram.arc32.json │ │ ├── ContractWithLsigProgram.arc4.json │ │ ├── ContractWithLsigProgram.arc56.json │ │ ├── ContractWithLsigProgram.clear.teal │ │ ├── ContratWithLsigAddress.approval.teal │ │ ├── ContratWithLsigAddress.arc32.json │ │ ├── ContratWithLsigAddress.arc4.json │ │ ├── ContratWithLsigAddress.arc56.json │ │ ├── ContratWithLsigAddress.clear.teal │ │ ├── D.approval.teal │ │ ├── D.arc32.json │ │ ├── D.arc4.json │ │ ├── D.arc56.json │ │ ├── D.clear.teal │ │ ├── DummyContract.approval.teal │ │ ├── DummyContract.arc32.json │ │ ├── DummyContract.arc4.json │ │ ├── DummyContract.arc56.json │ │ ├── DummyContract.clear.teal │ │ ├── E.approval.teal │ │ ├── E.arc32.json │ │ ├── E.arc4.json │ │ ├── E.arc56.json │ │ ├── E.clear.teal │ │ ├── ExternalContract.approval.teal │ │ ├── ExternalContract.arc32.json │ │ ├── ExternalContract.arc4.json │ │ ├── ExternalContract.arc56.json │ │ ├── ExternalContract.clear.teal │ │ ├── F.approval.teal │ │ ├── F.arc32.json │ │ ├── F.arc4.json │ │ ├── F.arc56.json │ │ ├── F.clear.teal │ │ ├── Foo.approval.teal │ │ ├── Foo.arc32.json │ │ ├── Foo.arc4.json │ │ ├── Foo.clear.teal │ │ ├── FunctionsTest.approval.teal │ │ ├── FunctionsTest.arc32.json │ │ ├── FunctionsTest.arc4.json │ │ ├── FunctionsTest.arc56.json │ │ ├── FunctionsTest.clear.teal │ │ ├── G.approval.teal │ │ ├── G.arc32.json │ │ ├── G.arc4.json │ │ ├── G.arc56.json │ │ ├── G.clear.teal │ │ ├── GeneralTest.approval.teal │ │ ├── GeneralTest.arc32.json │ │ ├── GeneralTest.arc4.json │ │ ├── GeneralTest.arc56.json │ │ ├── GeneralTest.clear.teal │ │ ├── IfTest.approval.teal │ │ ├── IfTest.arc32.json │ │ ├── IfTest.arc4.json │ │ ├── IfTest.arc56.json │ │ ├── IfTest.clear.teal │ │ ├── IntcblockTest.approval.teal │ │ ├── IntcblockTest.arc32.json │ │ ├── IntcblockTest.arc4.json │ │ ├── IntcblockTest.arc56.json │ │ ├── IntcblockTest.clear.teal │ │ ├── ItxnsTest.approval.teal │ │ ├── ItxnsTest.arc32.json │ │ ├── ItxnsTest.arc4.json │ │ ├── ItxnsTest.arc56.json │ │ ├── ItxnsTest.clear.teal │ │ ├── LoopsTest.approval.teal │ │ ├── LoopsTest.arc32.json │ │ ├── LoopsTest.arc4.json │ │ ├── LoopsTest.arc56.json │ │ ├── LoopsTest.clear.teal │ │ ├── LsigWithArgs.lsig.teal │ │ ├── LsigWithPrivateMethod.lsig.teal │ │ ├── LsigWithPrivateMethodWithArgs.lsig.teal │ │ ├── LsigWithPrivateMethodWithArgs.lsig.unop.teal │ │ ├── MathTest.approval.teal │ │ ├── MathTest.arc32.json │ │ ├── MathTest.arc4.json │ │ ├── MathTest.arc56.json │ │ ├── MathTest.clear.teal │ │ ├── MultiInheritance.approval.teal │ │ ├── MultiInheritance.arc32.json │ │ ├── MultiInheritance.arc4.json │ │ ├── MultiInheritance.arc56.json │ │ ├── MultiInheritance.clear.teal │ │ ├── MultiInheritanceProgram.approval.teal │ │ ├── MultiInheritanceProgram.arc32.json │ │ ├── MultiInheritanceProgram.arc4.json │ │ ├── MultiInheritanceProgram.arc56.json │ │ ├── MultiInheritanceProgram.clear.teal │ │ ├── ProgramVersion.approval.teal │ │ ├── ProgramVersion.arc32.json │ │ ├── ProgramVersion.arc4.json │ │ ├── ProgramVersion.arc56.json │ │ ├── ProgramVersion.clear.teal │ │ ├── SchemaContract.approval.teal │ │ ├── SchemaContract.arc32.json │ │ ├── SchemaContract.arc4.json │ │ ├── SchemaContract.arc56.json │ │ ├── SchemaContract.clear.teal │ │ ├── StorageTest.approval.teal │ │ ├── StorageTest.arc32.json │ │ ├── StorageTest.arc4.json │ │ ├── StorageTest.arc56.json │ │ ├── StorageTest.clear.teal │ │ ├── Templates.approval.teal │ │ ├── Templates.arc32.json │ │ ├── Templates.arc4.json │ │ ├── Templates.arc56.json │ │ └── Templates.clear.teal │ ├── avm11.algo.ts │ ├── big_comment.algo.ts │ ├── binary.algo.ts │ ├── cblocks.algo.ts │ ├── functions-external.algo.ts │ ├── functions.algo.ts │ ├── general.algo.ts │ ├── if.algo.ts │ ├── inheritance-external.algo.ts │ ├── inheritance.algo.ts │ ├── itxns.algo.ts │ ├── loops.algo.ts │ ├── lsig.algo.ts │ ├── lsig_compile_errors.algo.ts │ ├── math.algo.ts │ ├── math_compile_errors.algo.ts │ ├── storage.algo.ts │ ├── storage_compile_errors.algo.ts │ └── tsconfig.json ├── functions.test.ts ├── general.test.ts ├── if.test.ts ├── inheritance.test.ts ├── itxns.test.ts ├── loops.test.ts ├── lsig.test.ts ├── math.test.ts ├── storage.test.ts ├── templates.test.ts ├── test_package │ ├── .gitignore │ ├── README.md │ ├── bun.lockb │ ├── index.ts │ ├── package.json │ └── tsconfig.json └── web │ ├── goldfile.ts │ ├── index.html │ ├── index.ts │ ├── playwright.config.ts │ ├── server.ts │ ├── tsconfig.json │ ├── web.playwright.ts │ └── webpack.config.js ├── tsconfig.json └── types └── global.d.ts /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: TEALScript CI 2 | on: 3 | pull_request: 4 | branches: [ main, dev ] 5 | jobs: 6 | test: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@v3 10 | 11 | - name: Run algokit localnet 12 | run: pipx install algokit && algokit localnet start 13 | 14 | - name: Install bun 15 | run: npm i -g bun 16 | 17 | - name: Install modules 18 | run: bun install --frozen-lockfile 19 | 20 | - name: Ensure version constant is up-to-date 21 | run: bun scripts/version.ts 22 | 23 | - name: Run TypeScript 24 | run: bun tsc --noEmit 25 | 26 | - name: Run ESLint 27 | run: bun lint 28 | 29 | - name: Run tests 30 | run: bun test --timeout 30000 31 | 32 | - name: Run examples 33 | run: bun run-examples 34 | 35 | - name: Compile all 36 | run: bun compile-all 37 | 38 | - name: Web test 39 | run: bunx playwright install && bun web-test 40 | 41 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Publish Package to npmjs 2 | on: 3 | release: 4 | types: [published] 5 | jobs: 6 | npm-publish: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@v3 10 | # Setup .npmrc file to publish to npm 11 | - uses: actions/setup-node@v3 12 | with: 13 | node-version: '16.x' 14 | registry-url: 'https://registry.npmjs.org' 15 | - run: npm i -g bun 16 | - run: bun install --frozen-lockfile 17 | - run: npm publish 18 | env: 19 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} -------------------------------------------------------------------------------- /.github/workflows/win-smoketest.yml: -------------------------------------------------------------------------------- 1 | name: TEALScript CI 2 | on: 3 | pull_request: 4 | branches: [ main, dev ] 5 | jobs: 6 | windows-smoketest: 7 | runs-on: windows-latest 8 | steps: 9 | - uses: actions/checkout@v3 10 | 11 | - name: Install tsx and dependencies 12 | run: npm i -g tsx && npm i 13 | 14 | - name: Test binary 15 | run: tsx src/bin/tealscript.ts --skip-algod ./examples/**/*.algo.ts ./ 16 | 17 | - name: Compile all 18 | env: 19 | SKIP_ALGOD: 'true' 20 | run: tsx scripts/compile_all.ts 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.js 2 | node_modules/ 3 | .idea/ 4 | dist/ 5 | __pycache__/ 6 | .venv/ 7 | !.eslintrc.js 8 | coverage/ 9 | .DS_Store 10 | yarn-error.log 11 | *.tgz 12 | !*.config.js 13 | tests/contracts/artifacts/*.src_map.json -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | examples/ 2 | tests/ 3 | src/ 4 | .github/ 5 | coverage/ 6 | .eslintrc.js 7 | *.tgz 8 | docs/ 9 | yarn-error.log 10 | .idea/ 11 | .venv/ 12 | docusaurus/ 13 | scripts/ 14 | .prettierrc.toml 15 | bun.lockb -------------------------------------------------------------------------------- /.prettierrc.toml: -------------------------------------------------------------------------------- 1 | # .prettierrc.toml 2 | trailingComma = "es5" 3 | tabWidth = 2 4 | semi = true 5 | singleQuote = true 6 | printWidth = 120 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2022 Joe Polny 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/TEALScript/bd09db64e4be104eba984fd55964b58671b0cbe1/bun.lockb -------------------------------------------------------------------------------- /examples/__snapshots__/examples.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Bun Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Examples ConstantProductAMM Artifacts Maintains program size 1`] = `1086`; 4 | 5 | exports[`Examples ARC75 Artifacts Maintains program size 1`] = `736`; 6 | 7 | exports[`Examples Auction Artifacts Maintains program size 1`] = `553`; 8 | 9 | exports[`Examples FactoryCaller Artifacts Maintains program size 1`] = `422`; 10 | 11 | exports[`Examples NFTFactory Artifacts Maintains program size 1`] = `173`; 12 | 13 | exports[`Examples Simple Artifacts Maintains program size 1`] = `288`; 14 | 15 | exports[`Examples ContactsApp Artifacts Maintains program size 1`] = `635`; 16 | 17 | exports[`Examples Calculator Artifacts Maintains program size 1`] = `196`; 18 | 19 | exports[`Examples MerkleTree Artifacts Maintains program size 1`] = `584`; 20 | -------------------------------------------------------------------------------- /examples/amm/README.md: -------------------------------------------------------------------------------- 1 | This is an example implementation of an AMM in TEALScript. The TEALScript-generated contract is not yet tested, but serves to provide a comparison of the Beaker implementation vs TEALScript. 2 | 3 | Original source: https://github.com/algorandfoundation/beaker/blob/931cd25e17454874b9d23b481d0db4df9fd802b7/examples/amm/amm.py -------------------------------------------------------------------------------- /examples/amm/tealscript_artifacts/ConstantProductAMM.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /examples/arc58/artifacts/AbstractedAccount.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /examples/arc72/artifacts/ARC72.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /examples/arc75/artifacts/ARC75.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /examples/auction/README.md: -------------------------------------------------------------------------------- 1 | Port of Beaker auction contract to TEALScript. Original source: https://github.com/algorandfoundation/beaker-auction/tree/7e1fe62b852c0d819954a931f10cf39d841cbc02 2 | 3 | 4 | -------------------------------------------------------------------------------- /examples/auction/tealscript_artifacts/Auction.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /examples/big_box/README.md: -------------------------------------------------------------------------------- 1 | # Big Box Example 2 | 3 | This is an example contract that is designed to make uploading large amounts of data into box storage easy. 4 | 5 | [big_box.algo.ts](./big_box.algo.ts) is the contract that is used to store the data. The process of uploading data is as follows: 6 | 7 | 1. Call the `startUpload` method with the following arguments and an atomic MBR payment for the boxes 8 | 1. A unique identifier for the data 9 | 2. The number of boxes the data will take up 10 | 3. The size of the last box 11 | 2. Chunk the data into 32768-byte chunks 12 | 3. Chunk the 32kb chunks into smaller 1964-byte chunks 13 | 4. Start uploading the 1964-byte chunks via the `upload` method 14 | 5. Once all data is uploaded, call `setStatus` to signify the data is `READY` or `IMMUTABLE` 15 | 16 | This is demonstrated in the test file [upload_client.test.ts](./upload_client.test.ts) 17 | 18 | # Missing Features 19 | 20 | Right now there is no way to resize data. This could be done by deleting existing boxes, reserving a new slice of boxes, and then uploading the new data. This could also include some sort of refund mechanism for the reduced box MBR. 21 | -------------------------------------------------------------------------------- /examples/big_box/TEAL.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/TEALScript/bd09db64e4be104eba984fd55964b58671b0cbe1/examples/big_box/TEAL.pdf -------------------------------------------------------------------------------- /examples/big_box/artifacts/BigBox.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /examples/calculator/artifacts/Calculator.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Calculator", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "doMath", 7 | "desc": "A method that takes two numbers and does either addition or subtraction", 8 | "args": [ 9 | { 10 | "name": "a", 11 | "type": "uint64", 12 | "desc": "The first number" 13 | }, 14 | { 15 | "name": "b", 16 | "type": "uint64", 17 | "desc": "The second number" 18 | }, 19 | { 20 | "name": "operation", 21 | "type": "string", 22 | "desc": "The operation to perform. Can be either 'sum' or 'difference'" 23 | } 24 | ], 25 | "returns": { 26 | "type": "uint64", 27 | "desc": "The result of the operation" 28 | } 29 | }, 30 | { 31 | "name": "createApplication", 32 | "args": [], 33 | "returns": { 34 | "type": "void" 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /examples/calculator/artifacts/Calculator.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /examples/calculator/calculator.algo.ts: -------------------------------------------------------------------------------- 1 | import { Contract } from '../../src/lib/index'; 2 | 3 | // eslint-disable-next-line no-unused-vars 4 | class Calculator extends Contract { 5 | /** 6 | * Calculates the sum of two numbers 7 | * 8 | * @param a 9 | * @param b 10 | * @returns The sum of a and b 11 | */ 12 | private getSum(a: uint64, b: uint64): uint64 { 13 | return a + b; 14 | } 15 | 16 | /** 17 | * Calculates the difference between two numbers 18 | * 19 | * @param a 20 | * @param b 21 | * @returns The difference between a and b. 22 | */ 23 | private getDifference(a: uint64, b: uint64): uint64 { 24 | return a >= b ? a - b : b - a; 25 | } 26 | 27 | /** 28 | * A method that takes two numbers and does either addition or subtraction 29 | * 30 | * @param a The first number 31 | * @param b The second number 32 | * @param operation The operation to perform. Can be either 'sum' or 'difference' 33 | * 34 | * @returns The result of the operation 35 | */ 36 | doMath(a: uint64, b: uint64, operation: string): uint64 { 37 | let result: uint64; 38 | 39 | if (operation === 'sum') { 40 | result = this.getSum(a, b); 41 | } else if (operation === 'difference') { 42 | result = this.getDifference(a, b); 43 | } else throw Error('Invalid operation'); 44 | 45 | return result; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /examples/calculator/calculator.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-console */ 2 | /* eslint-disable class-methods-use-this */ 3 | 4 | class Calculator { 5 | /** 6 | * Calculates the sum of two numbers 7 | * 8 | * @param a 9 | * @param b 10 | * @returns The sum of a and b 11 | */ 12 | private getSum(a: number, b: number): number { 13 | return a + b; 14 | } 15 | 16 | /** 17 | * Calculates the difference between two numbers 18 | * 19 | * @param a 20 | * @param b 21 | * @returns The difference between a and b. 22 | */ 23 | private getDifference(a: number, b: number): number { 24 | return a >= b ? a - b : b - a; 25 | } 26 | 27 | /** 28 | * A method that takes two numbers and does either addition or subtraction 29 | * 30 | * @param a The first number 31 | * @param b The second number 32 | * @param operation The operation to perform. Can be either 'sum' or 'difference' 33 | * 34 | * @returns The result of the operation 35 | */ 36 | doMath(a: number, b: number, operation: string): number { 37 | let result: number; 38 | 39 | if (operation === 'sum') { 40 | result = this.getSum(a, b); 41 | } else if (operation === 'difference') { 42 | result = this.getDifference(a, b); 43 | } else throw Error('Invalid operation'); 44 | 45 | return result; 46 | } 47 | } 48 | 49 | const calculator = new Calculator(); 50 | 51 | console.log(calculator.doMath(5, 7, 'difference')); 52 | -------------------------------------------------------------------------------- /examples/examples.test.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-unused-expressions */ 2 | /* eslint-disable func-names */ 3 | /* eslint-disable prefer-arrow-callback */ 4 | import { describe } from '@jest/globals'; 5 | import { artifactsTest } from '../tests/common'; 6 | 7 | describe('Examples', function () { 8 | artifactsTest('examples/amm/amm.algo.ts', 'examples/amm/tealscript_artifacts/', 'ConstantProductAMM'); 9 | 10 | artifactsTest('examples/arc75/arc75.algo.ts', 'examples/arc75/artifacts/', 'ARC75'); 11 | 12 | artifactsTest('examples/auction/auction.algo.ts', 'examples/auction/tealscript_artifacts/', 'Auction'); 13 | 14 | ['FactoryCaller', 'NFTFactory'].forEach((className) => { 15 | artifactsTest('examples/itxns/itxns.algo.ts', 'examples/itxns/artifacts/', className); 16 | }); 17 | 18 | artifactsTest('examples/simple/simple.algo.ts', 'examples/simple/artifacts/', 'Simple'); 19 | 20 | artifactsTest('examples/tuple_in_box/app.algo.ts', 'examples/tuple_in_box/tealscript_artifacts/', 'ContactsApp'); 21 | 22 | artifactsTest('examples/calculator/calculator.algo.ts', 'examples/calculator/artifacts/', 'Calculator'); 23 | 24 | artifactsTest('examples/merkle/merkle.algo.ts', 'examples/merkle/artifacts/', 'MerkleTree'); 25 | }); 26 | -------------------------------------------------------------------------------- /examples/itxns/README.md: -------------------------------------------------------------------------------- 1 | To compile `itxns.ts`, generate the algokit client, and run `demo.ts` run `yarn itxns` -------------------------------------------------------------------------------- /examples/itxns/artifacts/FactoryCaller.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "FactoryCaller", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "mintAndGetAsset", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /examples/itxns/artifacts/FactoryCaller.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /examples/itxns/artifacts/NFTFactory.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "NFTFactory", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "createNFT", 7 | "args": [ 8 | { 9 | "name": "name", 10 | "type": "string" 11 | }, 12 | { 13 | "name": "unitName", 14 | "type": "string" 15 | } 16 | ], 17 | "returns": { 18 | "type": "uint64" 19 | } 20 | }, 21 | { 22 | "name": "transferNFT", 23 | "args": [ 24 | { 25 | "name": "asset", 26 | "type": "uint64" 27 | }, 28 | { 29 | "name": "receiver", 30 | "type": "address" 31 | } 32 | ], 33 | "returns": { 34 | "type": "void" 35 | } 36 | }, 37 | { 38 | "name": "createApplication", 39 | "args": [], 40 | "returns": { 41 | "type": "void" 42 | } 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /examples/itxns/artifacts/NFTFactory.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /examples/itxns/demo.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-console */ 2 | 3 | import * as algosdk from 'algosdk'; 4 | import * as algokit from '@algorandfoundation/algokit-utils'; 5 | import { FactoryCallerClient } from './FactoryCallerClient'; 6 | 7 | (async () => { 8 | const algodClient = new algosdk.Algodv2('a'.repeat(64), 'http://localhost', 4001); 9 | const kmdClient = new algosdk.Kmd('a'.repeat(64), 'http://localhost', 4002); 10 | const sender = await algokit.getLocalNetDispenserAccount(algodClient, kmdClient); 11 | 12 | const factoryCaller = new FactoryCallerClient( 13 | { 14 | sender, 15 | resolveBy: 'id', 16 | id: 0, 17 | }, 18 | algodClient 19 | ); 20 | 21 | await factoryCaller.create.createApplication({}); 22 | 23 | const { appAddress } = await factoryCaller.appClient.getAppReference(); 24 | 25 | await factoryCaller.appClient.fundAppAccount(algokit.microAlgos(500_000)); 26 | 27 | const asset = Number( 28 | ( 29 | await factoryCaller.mintAndGetAsset( 30 | {}, 31 | { 32 | sendParams: { fee: algokit.microAlgos(8_000) }, 33 | } 34 | ) 35 | ).return?.valueOf() 36 | ); 37 | 38 | const assetHolding = await algodClient.accountAssetInformation(appAddress, asset).do(); 39 | 40 | console.log(`factoryCaller asset holding: ${JSON.stringify(assetHolding)}`); 41 | 42 | const assetInfo = await algodClient.getAssetByID(asset).do(); 43 | 44 | console.log(`Asset info: ${JSON.stringify(assetInfo)}`); 45 | })(); 46 | -------------------------------------------------------------------------------- /examples/lsig_with_app/README.md: -------------------------------------------------------------------------------- 1 | [lsig_with_app.algo.ts](./lsig_with_app.algo.ts) contains the source code for the application and the logic signature 2 | 3 | [lsig_with_app.test.ts](./lsig_with_app.test.ts) contains the code for compiling and using the delegated logic signature -------------------------------------------------------------------------------- /examples/lsig_with_app/artifacts/CreatorVerifier.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CreatorVerifier", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "allowOptInsFrom", 7 | "desc": "Allow anyone to use the lsig to opt in the txn sender into an asset created by the creator", 8 | "args": [ 9 | { 10 | "name": "creator", 11 | "type": "address" 12 | } 13 | ], 14 | "returns": { 15 | "type": "void" 16 | } 17 | }, 18 | { 19 | "name": "disableOptInsFrom", 20 | "desc": "Disable opt-ins for ASAs from the given creator", 21 | "args": [ 22 | { 23 | "name": "creator", 24 | "type": "address" 25 | } 26 | ], 27 | "returns": { 28 | "type": "void" 29 | } 30 | }, 31 | { 32 | "name": "verifyCreator", 33 | "args": [ 34 | { 35 | "name": "optIn", 36 | "type": "axfer" 37 | } 38 | ], 39 | "returns": { 40 | "type": "void" 41 | } 42 | }, 43 | { 44 | "name": "createApplication", 45 | "args": [], 46 | "returns": { 47 | "type": "void" 48 | } 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /examples/lsig_with_app/artifacts/CreatorVerifier.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /examples/merkle/artifacts/MerkleTree.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "MerkleTree", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "deleteApplication", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | }, 19 | { 20 | "name": "verify", 21 | "args": [ 22 | { 23 | "name": "data", 24 | "type": "byte[]" 25 | }, 26 | { 27 | "name": "path", 28 | "type": "byte[33][3]" 29 | } 30 | ], 31 | "returns": { 32 | "type": "void" 33 | } 34 | }, 35 | { 36 | "name": "appendLeaf", 37 | "args": [ 38 | { 39 | "name": "data", 40 | "type": "byte[]" 41 | }, 42 | { 43 | "name": "path", 44 | "type": "byte[33][3]" 45 | } 46 | ], 47 | "returns": { 48 | "type": "void" 49 | } 50 | }, 51 | { 52 | "name": "updateLeaf", 53 | "args": [ 54 | { 55 | "name": "oldData", 56 | "type": "byte[]" 57 | }, 58 | { 59 | "name": "newData", 60 | "type": "byte[]" 61 | }, 62 | { 63 | "name": "path", 64 | "type": "byte[33][3]" 65 | } 66 | ], 67 | "returns": { 68 | "type": "void" 69 | } 70 | } 71 | ] 72 | } -------------------------------------------------------------------------------- /examples/merkle/artifacts/MerkleTree.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /examples/non_abi/artifacts/NonABIExample.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "NonABIExample", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "abiAdd", 7 | "args": [ 8 | { 9 | "name": "x", 10 | "type": "uint64" 11 | }, 12 | { 13 | "name": "y", 14 | "type": "uint64" 15 | } 16 | ], 17 | "returns": { 18 | "type": "uint64" 19 | } 20 | }, 21 | { 22 | "name": "createApplication", 23 | "args": [], 24 | "returns": { 25 | "type": "void" 26 | } 27 | } 28 | ] 29 | } -------------------------------------------------------------------------------- /examples/non_abi/artifacts/NonABIExample.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /examples/non_abi/non_abi.algo.ts: -------------------------------------------------------------------------------- 1 | import { Contract } from '../../src/lib/index'; 2 | 3 | // eslint-disable-next-line no-unused-vars 4 | class NonABIExample extends Contract { 5 | private add(x: uint64, y: uint64): uint64 { 6 | return x + y; 7 | } 8 | 9 | abiAdd(x: uint64, y: uint64): uint64 { 10 | return this.add(x, y); 11 | } 12 | 13 | @nonABIRouterFallback.call('NoOp') 14 | nonAbiAdd(): void { 15 | const x = btoi(this.txn.applicationArgs![0]); 16 | const y = btoi(this.txn.applicationArgs![1]); 17 | log(itob(this.add(x, y))); 18 | } 19 | 20 | @nonABIRouterFallback.call('UpdateApplication') 21 | nonAbiUpdate(): void { 22 | log('Updated!'); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /examples/optin-lsig/lsig.algo.ts: -------------------------------------------------------------------------------- 1 | import { LogicSig } from '../../src/lib/index'; 2 | 3 | // eslint-disable-next-line no-unused-vars 4 | class LsigExample extends LogicSig { 5 | /** Verify this is an opt in transaction */ 6 | logic(): void { 7 | verifyAssetTransferTxn(this.txn, { 8 | assetAmount: 0, 9 | assetReceiver: this.txn.sender, 10 | fee: 0, 11 | rekeyTo: globals.zeroAddress, 12 | assetCloseTo: globals.zeroAddress, 13 | }); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /examples/reti/README.md: -------------------------------------------------------------------------------- 1 | Reti contracts from https://github.com/TxnLab/reti/tree/2567018024ab8c2b3c59142e26cb55ce78bd2414 2 | -------------------------------------------------------------------------------- /examples/reti/artifacts/StakingPool.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /examples/reti/artifacts/ValidatorRegistry.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /examples/reti/constants.algo.ts: -------------------------------------------------------------------------------- 1 | export const MAX_STAKERS_PER_POOL = 200; // *64 (size of StakeInfo) = 12,800 bytes 2 | export const MIN_ALGO_STAKE_PER_POOL = 1_000_000; // 1 ALGO 3 | 4 | export const MAX_VALIDATOR_SOFT_PCT_OF_ONLINE_1DECIMAL = 100; // this is 10.0%, not 100... and represents the SOFT cap where validator is considered saturated 5 | export const MAX_VALIDATOR_HARD_PCT_OF_ONLINE_1DECIMAL = 150; // 15% is HARD cap - no new stake if this reached 6 | 7 | export const MIN_PCT_TO_VALIDATOR = 0; // minimum percentage is 0 - let the market decide 8 | export const MAX_PCT_TO_VALIDATOR = 1000000; // 100% w/ four decimals (would be someone's own node for eg) 9 | 10 | export const ALGORAND_ACCOUNT_MIN_BALANCE = 100000; 11 | // values taken from: https://developer.algorand.org/docs/features/asc1/stateful/#minimum-balance-requirement-for-a-smart-contract 12 | export const APPLICATION_BASE_FEE = 100000; // base fee for creating or opt-in to application 13 | export const ASSET_HOLDING_FEE = 100000; // creation/holding fee for asset 14 | export const SSC_VALUE_UINT = 28500; // cost for value as uint64 15 | export const SSC_VALUE_BYTES = 50000; // cost for value as bytes 16 | 17 | export const GATING_TYPE_NONE = 0; 18 | export const GATING_TYPE_ASSETS_CREATED_BY = 1; 19 | export const GATING_TYPE_ASSET_ID = 2; 20 | export const GATING_TYPE_CREATED_BY_NFD_ADDRESSES = 3; 21 | export const GATING_TYPE_SEGMENT_OF_NFD = 4; 22 | // This constant needs to always be set to the highest value of the constants 23 | export const GATING_TYPE_CONST_MAX = 4; 24 | -------------------------------------------------------------------------------- /examples/simple/artifacts/Simple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Simple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "incr", 7 | "args": [ 8 | { 9 | "name": "i", 10 | "type": "uint64" 11 | } 12 | ], 13 | "returns": { 14 | "type": "void" 15 | } 16 | }, 17 | { 18 | "name": "decr", 19 | "args": [ 20 | { 21 | "name": "i", 22 | "type": "uint64" 23 | } 24 | ], 25 | "returns": { 26 | "type": "void" 27 | } 28 | }, 29 | { 30 | "name": "add", 31 | "args": [ 32 | { 33 | "name": "a", 34 | "type": "uint256" 35 | }, 36 | { 37 | "name": "b", 38 | "type": "uint256" 39 | } 40 | ], 41 | "returns": { 42 | "type": "uint256" 43 | } 44 | }, 45 | { 46 | "name": "sub", 47 | "args": [ 48 | { 49 | "name": "a", 50 | "type": "uint256" 51 | }, 52 | { 53 | "name": "b", 54 | "type": "uint256" 55 | } 56 | ], 57 | "returns": { 58 | "type": "uint256" 59 | } 60 | }, 61 | { 62 | "name": "createApplication", 63 | "args": [], 64 | "returns": { 65 | "type": "void" 66 | } 67 | } 68 | ] 69 | } -------------------------------------------------------------------------------- /examples/simple/artifacts/Simple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 2 | 3 | // examples/simple/simple.algo.ts:27 4 | // this.incrementCounter(1) 5 | intcblock 1 6 | bytecblock 0x636f756e746572 7 | intc 0 // 1 8 | callsub incrementCounter 9 | intc 0 // 1 10 | return 11 | 12 | // incrementCounter(i: uint64): void 13 | incrementCounter: 14 | proto 1 0 15 | 16 | // examples/simple/simple.algo.ts:7 17 | // this.counter.value = this.counter.value + i 18 | bytec 0 // "counter" 19 | dup 20 | app_global_get 21 | frame_dig -1 // i: uint64 22 | + 23 | app_global_put 24 | retsub -------------------------------------------------------------------------------- /examples/simple/simple.algo.ts: -------------------------------------------------------------------------------- 1 | import { Contract } from '../../src/lib/index'; 2 | 3 | export default class Simple extends Contract { 4 | counter = GlobalStateKey({ key: 'counter' }); 5 | 6 | private incrementCounter(i: uint64): void { 7 | this.counter.value = this.counter.value + i; 8 | } 9 | 10 | incr(i: uint64): void { 11 | this.incrementCounter(i); 12 | } 13 | 14 | decr(i: uint64): void { 15 | this.counter.value = this.counter.value - i; 16 | } 17 | 18 | add(a: uint256, b: uint256): uint256 { 19 | return a + b; 20 | } 21 | 22 | sub(a: uint256, b: uint256): uint256 { 23 | return a - b; 24 | } 25 | 26 | clearState(): void { 27 | this.incrementCounter(1); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /examples/tuple_in_box/app.algo.ts: -------------------------------------------------------------------------------- 1 | import { Contract } from '../../src/lib/index'; 2 | 3 | type Contact = { name: string; company: string }; 4 | 5 | // eslint-disable-next-line no-unused-vars 6 | class ContactsApp extends Contract { 7 | contacts = BoxMap(); 8 | 9 | myContact = GlobalStateKey(); 10 | 11 | setMyContact(name: string, company: string): void { 12 | const contact: Contact = { name: name, company: company }; 13 | 14 | this.myContact.value = contact; 15 | this.contacts(this.txn.sender).value = contact; 16 | } 17 | 18 | addContact(name: string, company: string, address: Address): void { 19 | const contact: Contact = { name: name, company: company }; 20 | this.contacts(address).value = contact; 21 | } 22 | 23 | updateContactField(field: string, value: string, address: Address): void { 24 | if (field === 'name') { 25 | this.contacts(address).value.name = value; 26 | } else if (field === 'company') { 27 | this.contacts(address).value.company = value; 28 | } else throw Error('Invalid field'); 29 | } 30 | 31 | verifyContactName(name: string, address: Address): void { 32 | assert(this.contacts(address).value.name === name); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /examples/tuple_in_box/tealscript_artifacts/ContactsApp.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('ts-jest').JestConfigWithTsJest} */ 2 | module.exports = { 3 | preset: 'ts-jest', 4 | testEnvironment: 'node', 5 | testPathIgnorePatterns: ['/node_modules/'], 6 | coveragePathIgnorePatterns: ['/node_modules/', '/tests/'], 7 | testTimeout: 30_000, 8 | workerThreads: true, // https://github.com/jestjs/jest/issues/11617#issuecomment-1458155552 9 | }; 10 | -------------------------------------------------------------------------------- /scripts/version.ts: -------------------------------------------------------------------------------- 1 | import { writeFileSync } from 'fs'; 2 | import packageJson from '../package.json'; 3 | 4 | const { version } = packageJson; 5 | writeFileSync('./src/version.ts', `export const VERSION = '${version}';\n`); 6 | -------------------------------------------------------------------------------- /src/lib/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Contract, PendingGroup } from './contract'; 2 | export { default as LogicSig } from './lsig'; 3 | 4 | /** @internal */ 5 | export { default as Compiler } from './compiler'; 6 | 7 | /** @internal */ 8 | export { Project } from 'ts-morph'; 9 | -------------------------------------------------------------------------------- /src/lib/lsig.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable max-classes-per-file */ 2 | /* eslint-disable class-methods-use-this */ 3 | /* eslint-disable no-unused-vars */ 4 | /* eslint-disable @typescript-eslint/no-explicit-any */ 5 | /* eslint-disable no-undef */ 6 | /// 7 | import { classes } from 'polytype'; 8 | 9 | export default abstract class LogicSig { 10 | /** 11 | * Create a contract class that inherits from the given contracts. Inheritance is in order of arguments. 12 | */ 13 | static extend: typeof classes; 14 | 15 | static address: () => Address; 16 | 17 | static program: () => bytes; 18 | 19 | txn!: Txn; 20 | 21 | txnGroup!: Txn[]; 22 | 23 | /** The program version to use in the generated TEAL. This is the number used in the "#pragma version" directive */ 24 | programVersion = 9; 25 | 26 | abstract logic(...args: any[]): void; 27 | } 28 | -------------------------------------------------------------------------------- /src/version.ts: -------------------------------------------------------------------------------- 1 | export const VERSION = '0.106.3'; 2 | -------------------------------------------------------------------------------- /starlight/.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | # generated types 4 | .astro/ 5 | 6 | # dependencies 7 | node_modules/ 8 | 9 | # logs 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | pnpm-debug.log* 14 | 15 | 16 | # environment variables 17 | .env 18 | .env.production 19 | 20 | # macOS-specific files 21 | .DS_Store 22 | 23 | /src/content/docs/api/ -------------------------------------------------------------------------------- /starlight/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["astro-build.astro-vscode"], 3 | "unwantedRecommendations": [] 4 | } 5 | -------------------------------------------------------------------------------- /starlight/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "command": "./node_modules/.bin/astro dev", 6 | "name": "Development server", 7 | "request": "launch", 8 | "type": "node-terminal" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /starlight/astro.config.mjs: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'astro/config'; 2 | import starlight from '@astrojs/starlight'; 3 | import starlightTypeDoc, { typeDocSidebarGroup } from 'starlight-typedoc'; 4 | 5 | // https://astro.build/config 6 | export default defineConfig({ 7 | integrations: [ 8 | starlight({ 9 | title: 'TEALScript', 10 | social: { 11 | discord: 'https://discord.gg/algorand', 12 | twitter: 'https://twitter.com/algodevs', 13 | github: 'https://github.com/algorandfoundation/tealscript', 14 | }, 15 | plugins: [ 16 | // Generate the documentation. 17 | starlightTypeDoc({ 18 | entryPoints: ['../src/lib/index.ts', '../types/global.d.ts'], 19 | tsconfig: '../tsconfig.json', 20 | typeDoc: { 21 | plugin: ['typedoc-plugin-merge-modules'], 22 | }, 23 | sidebar: { collapsed: true }, 24 | }), 25 | ], 26 | sidebar: [ 27 | { 28 | label: 'Guides', 29 | collapsed: true, 30 | autogenerate: { directory: 'guides' }, 31 | }, 32 | { 33 | label: 'Tutorials', 34 | collapsed: true, 35 | autogenerate: { directory: 'tutorials' }, 36 | }, 37 | // Add the generated sidebar group to the sidebar. 38 | typeDocSidebarGroup, 39 | ], 40 | }), 41 | ], 42 | }); 43 | -------------------------------------------------------------------------------- /starlight/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "starlight", 3 | "type": "module", 4 | "version": "0.0.1", 5 | "scripts": { 6 | "dev": "astro dev", 7 | "start": "astro dev", 8 | "build": "astro check && astro build", 9 | "preview": "astro preview", 10 | "astro": "astro" 11 | }, 12 | "dependencies": { 13 | "@astrojs/check": "^0.5.5", 14 | "@astrojs/starlight": "^0.19.1", 15 | "astro": "^4.3.5", 16 | "sharp": "^0.32.5", 17 | "starlight-typedoc": "^0.9.0", 18 | "typedoc": "^0.25.8", 19 | "typedoc-plugin-markdown": "^4.0.0-next.53", 20 | "typedoc-plugin-merge-modules": "^5.1.0", 21 | "typescript": "^5.3.3" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /starlight/public/favicon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /starlight/src/assets/houston.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/TEALScript/bd09db64e4be104eba984fd55964b58671b0cbe1/starlight/src/assets/houston.webp -------------------------------------------------------------------------------- /starlight/src/content/config.ts: -------------------------------------------------------------------------------- 1 | import { defineCollection } from 'astro:content'; 2 | import { docsSchema } from '@astrojs/starlight/schema'; 3 | 4 | export const collections = { 5 | docs: defineCollection({ schema: docsSchema() }), 6 | }; 7 | -------------------------------------------------------------------------------- /starlight/src/content/docs/guides/atomic_txn.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Atomic Transaciton Arguments 3 | --- 4 | 5 | ## Argument Types 6 | 7 | If you are writing a method that must be accompanied by an atomic trasnaction, you can set the argument type to one of the following types: `PayTxn`, `AssetTransferTxn`, `AppCallTxn`, `KeyRegTxn`, `AssetConfigTxn`, or `AssetFreezeTxn` 8 | 9 | ## Verifying An Atomic Transaction 10 | 11 | Simply having an atomic trasnsaction as an argument doesn't gurantee anything about the transaction itself. As such, it's important to verify the fields of the transaction to ensure it is doing what you want. There are multiple methods for verifying the different types of transactions: `verifyPayTxn`, `verifyAssetConfigTxn`, `verifyAssetTransferTxn`, `verifyAppCallTxn`, and `verifyKeyRegTxn`. If you the transaction could be multiple different types, use the `verifyTxn` method. 12 | 13 | ### Example 14 | 15 | ```ts 16 | fundContractAccount(payment: PayTxn): void { 17 | verifyPayTxn({ 18 | receiver: this.app.address, 19 | amount: { greaterThan: 100_000 } 20 | }) 21 | } 22 | ``` 23 | -------------------------------------------------------------------------------- /starlight/src/content/docs/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: TEALScript 3 | description: The home of TEALScript documentation 4 | template: splash 5 | hero: 6 | tagline: A language for writing Algorand Smart Contracts in TypeScript 7 | image: 8 | file: ../../assets/houston.webp 9 | actions: 10 | - text: Learn TEALScript 11 | link: /tutorials/hello-world/0001-intro/ 12 | icon: right-arrow 13 | variant: primary 14 | - text: Learn more about Algorand 15 | link: https://developer.algorand.org 16 | icon: external 17 | --- 18 | -------------------------------------------------------------------------------- /starlight/src/content/docs/tutorials/Hello World/0001-intro.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 1. Intro and Prerequisites 3 | --- 4 | 5 | This tutorial will go over the basics of how to use Algokit to initialize a TEALScript project and modify it to create and test a hello world contract. 6 | 7 | ## Prerequisites 8 | 9 | Before beginning, make sure you have Algokit installed. Go [here](https://developer.algorand.org/docs/get-started/algokit/) for a quick start guide. -------------------------------------------------------------------------------- /starlight/src/content/docs/tutorials/Hello World/0005-hello.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "5. Hello World Method" 3 | --- 4 | 5 | For this tutorial, we are going to write a method and returns `"Hello, NAME"` with `NAME` being an argument to the method. 6 | 7 | ## Modifying the Contract 8 | 9 | ```ts 10 | import { Contract } from "@algorandfoundation/tealscript"; 11 | 12 | // eslint-disable-next-line no-unused-vars 13 | class HelloWorld extends Contract { 14 | /** 15 | * @param name The name of the caller 16 | * 17 | * @returns A greeting string 18 | */ 19 | hello(name: string): string { 20 | return "Hello, " + name; 21 | } 22 | } 23 | ``` 24 | 25 | ## Compile New Contract 26 | 27 | To compile the contract, run `npm run build`. This should update all of the files in `contracts/artifacts` and `contracts/clients` 28 | 29 | ## Template Literals 30 | 31 | It should be noted that TEALScript does not currently support string literals. For example, the following syntax is not yet supported: 32 | 33 | ```ts 34 | return `Hello, ${name}` 35 | ``` 36 | -------------------------------------------------------------------------------- /starlight/src/content/docs/tutorials/Hello World/0006-test.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "6. Writing a Test" 3 | --- 4 | 5 | Now we need to go `__test__/hello_world.test.ts` and modify our test to properly call our contract. 6 | 7 | We can do so by removing `test("sum")` and `test("difference")` and write our own test: 8 | 9 | ```ts 10 | test("helloWorld", async () => { 11 | const message = await appClient.hello({ name: "AlgoDev" }); 12 | expect(message.return?.valueOf()).toBe("Hello, AlgoDev"); 13 | }); 14 | ``` 15 | 16 | The important thing here is that `await appClient.doMath` was changed to `await appClient.hello` and the argument was changed to `{ name: "AlgoDev" }`. Finally, we changed the test to expect `"Hello, AlgoDev"` since the argument we passed in was `"AlgoDev"`. 17 | 18 | 19 | ## Running The Test 20 | 21 | To run the test, run the script `npm run test`, which should show all tests passing: 22 | 23 | ```bash 24 | PASS __test__/hello_world.test.ts 25 | HelloWorld 26 | ✓ helloWorld (766 ms) 27 | 28 | Test Suites: 1 passed, 1 total 29 | Tests: 1 passed, 1 total 30 | ``` -------------------------------------------------------------------------------- /starlight/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /starlight/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "astro/tsconfigs/strict" 3 | } -------------------------------------------------------------------------------- /test.ts: -------------------------------------------------------------------------------- 1 | let i = 0; 2 | 3 | for (let j = 0; j < 10; j += 1) { 4 | if (i === 5) { 5 | i = 1337; 6 | continue; 7 | } 8 | i += 1; 9 | } 10 | 11 | console.log(i); 12 | -------------------------------------------------------------------------------- /tests/__snapshots__/account.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Bun Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Account AccountTest Artifacts Maintains program size 1`] = `565`; 4 | -------------------------------------------------------------------------------- /tests/__snapshots__/binary.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Bun Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Binary Expressions BinaryTest Artifacts Maintains program size 1`] = `333`; 4 | -------------------------------------------------------------------------------- /tests/__snapshots__/cblocks.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Bun Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`bytecblock BytecblockTest Artifacts Maintains program size 1`] = `1915`; 4 | 5 | exports[`intcblock IntcblockTest Artifacts Maintains program size 1`] = `984`; 6 | -------------------------------------------------------------------------------- /tests/__snapshots__/functions.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Bun Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Functions FunctionsTest Artifacts Maintains program size 1`] = `204`; 4 | -------------------------------------------------------------------------------- /tests/__snapshots__/general.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Bun Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`General GeneralTest Artifacts Maintains program size 1`] = `4461`; 4 | -------------------------------------------------------------------------------- /tests/__snapshots__/if.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Bun Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`If IfTest Artifacts Maintains program size 1`] = `1024`; 4 | -------------------------------------------------------------------------------- /tests/__snapshots__/inheritance.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Bun Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Inheritance A Artifacts Maintains program size 1`] = `86`; 4 | 5 | exports[`Inheritance B Artifacts Maintains program size 1`] = `116`; 6 | 7 | exports[`Inheritance C Artifacts Maintains program size 1`] = `143`; 8 | 9 | exports[`Inheritance D Artifacts Maintains program size 1`] = `85`; 10 | 11 | exports[`Inheritance AD Artifacts Maintains program size 1`] = `138`; 12 | 13 | exports[`Inheritance E Artifacts Maintains program size 1`] = `205`; 14 | -------------------------------------------------------------------------------- /tests/__snapshots__/itxns.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Bun Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Inner Transactions ItxnsTest Artifacts Maintains program size 1`] = `646`; 4 | -------------------------------------------------------------------------------- /tests/__snapshots__/loops.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Bun Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loops LoopsTest Artifacts Maintains program size 1`] = `579`; 4 | -------------------------------------------------------------------------------- /tests/__snapshots__/lsig.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Bun Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Logic Signatures BasicLsig Artifacts Maintains program size 1`] = `18`; 4 | 5 | exports[`Logic Signatures LsigWithArgs Artifacts Maintains program size 1`] = `39`; 6 | 7 | exports[`Logic Signatures LsigWithPrivateMethod Artifacts Maintains program size 1`] = `25`; 8 | -------------------------------------------------------------------------------- /tests/__snapshots__/math.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Bun Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Math MathTest Artifacts Maintains program size 1`] = `2411`; 4 | -------------------------------------------------------------------------------- /tests/__snapshots__/storage.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Bun Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Storage StorageTest Artifacts Maintains program size 1`] = `1220`; 4 | -------------------------------------------------------------------------------- /tests/__snapshots__/templates.test.ts.snap: -------------------------------------------------------------------------------- 1 | // Bun Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Template Variables Templates Artifacts Maintains program size 1`] = `259`; 4 | -------------------------------------------------------------------------------- /tests/cblocks.test.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable func-names */ 2 | /* eslint-disable prefer-arrow-callback */ 3 | 4 | import * as algokit from '@algorandfoundation/algokit-utils'; 5 | import { describe, test, expect } from '@jest/globals'; 6 | import { artifactsTest, compileAndCreate, runMethod, algodClient, kmdClient } from './common'; 7 | 8 | const PATH = 'tests/contracts/cblocks.algo.ts'; 9 | const ARTIFACTS_DIR = 'tests/contracts/artifacts/'; 10 | 11 | describe('bytecblock', function () { 12 | const NAME = 'BytecblockTest'; 13 | artifactsTest(PATH, ARTIFACTS_DIR, NAME); 14 | 15 | describe('E2E', function () { 16 | const sender = algokit.getLocalNetDispenserAccount(algodClient, kmdClient); 17 | 18 | test('largeBytecblock', async function () { 19 | const { appClient } = await compileAndCreate(await sender, PATH, ARTIFACTS_DIR, NAME); 20 | expect(await runMethod({ appClient, method: 'largeBytecblock', fee: 2_000 })).toBe('1257'); 21 | }); 22 | }); 23 | }); 24 | 25 | describe('intcblock', function () { 26 | const NAME = 'IntcblockTest'; 27 | artifactsTest(PATH, ARTIFACTS_DIR, NAME); 28 | 29 | describe('E2E', function () { 30 | const sender = algokit.getLocalNetDispenserAccount(algodClient, kmdClient); 31 | 32 | test('largeBytecblock', async function () { 33 | const { appClient } = await compileAndCreate(await sender, PATH, ARTIFACTS_DIR, NAME); 34 | expect(await runMethod({ appClient, method: 'largeIntcblock' })).toBe(258n); 35 | }); 36 | }); 37 | }); 38 | -------------------------------------------------------------------------------- /tests/contracts/artifacts/A.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "A", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "a", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/A.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestAccesStringInTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestAccesStringInTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "accesStringInTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "string" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestAccesStringInTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestAccessDynamicArrayElementInTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "accessDynamicArrayElementInTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "uint8" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestAccessDynamicArrayElementInTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestAccessDynamicArrayInMiddleOfTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "accessDynamicArrayInMiddleOfTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "uint8[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestAccessDynamicArrayInMiddleOfTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestAccessDynamicStringArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestAccessDynamicStringArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "accessDynamicStringArray", 7 | "args": [], 8 | "returns": { 9 | "type": "string" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestAccessDynamicStringArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestAccessStaticArrayInBoxInVariable.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestAccessStaticArrayInBoxInVariable", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "accessStaticArrayInBoxInVariable", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestAccessStaticArrayInBoxInVariable.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestAngularCasting.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestAngularCasting", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "angularCasting", 7 | "args": [], 8 | "returns": { 9 | "type": "uint256" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestAngularCasting.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayInMethodCall.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestArrayInMethodCall", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "arrayInMethodCall", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayInMethodCall.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayInObjectInState.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestArrayInObjectInState", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "arrayInObjectInState", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayInObjectInState.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayInTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestArrayInTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "arrayInTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayInTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayLength.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestArrayLength", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "arrayLength", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayLength.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayPop.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestArrayPop", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "arrayPop", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayPop.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayPopValue.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestArrayPopValue", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "arrayPopValue", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayPopValue.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayPush.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestArrayPush", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "arrayPush", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayPush.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayRef.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestArrayRef", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "arrayRef", 7 | "args": [], 8 | "returns": { 9 | "type": "uint8[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArrayRef.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArraySplice.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestArraySplice", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "arraySplice", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArraySplice.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArraySpliceValue.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestArraySpliceValue", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "arraySpliceValue", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestArraySpliceValue.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBiggerByteCasting.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestBiggerByteCasting", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "biggerByteCasting", 7 | "args": [ 8 | { 9 | "name": "a", 10 | "type": "byte[2]" 11 | } 12 | ], 13 | "returns": { 14 | "type": "byte[4]" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBiggerByteCasting.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolFirstInTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestBoolFirstInTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "boolFirstInTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "(bool,uint64,uint64)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolFirstInTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolInNestedTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestBoolInNestedTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "boolInNestedTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "bool" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolInNestedTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolInObj.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestBoolInObj", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "boolInObj", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolInObj.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestBoolTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "boolTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "(bool,bool,bool,bool,bool,bool,bool,bool,bool)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolTupleAccess.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestBoolTupleAccess", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "boolTupleAccess", 7 | "args": [], 8 | "returns": { 9 | "type": "bool" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolTupleAccess.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolTupleUpdate.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestBoolTupleUpdate", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "boolTupleUpdate", 7 | "args": [], 8 | "returns": { 9 | "type": "(bool,bool,bool,bool,bool,bool,bool,bool,bool)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolTupleUpdate.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolUpdateInBox.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestBoolUpdateInBox", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "boolUpdateInBox", 7 | "args": [ 8 | { 9 | "name": "id", 10 | "type": "uint64" 11 | } 12 | ], 13 | "returns": { 14 | "type": "void" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolUpdateInBox.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolUpdateInObjectInBox.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestBoolUpdateInObjectInBox", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "boolUpdateInObjectInBox", 7 | "args": [], 8 | "returns": { 9 | "type": "bool" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBoolUpdateInObjectInBox.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBooleanArgAndReturn.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestBooleanArgAndReturn", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "booleanArgAndReturn", 7 | "args": [ 8 | { 9 | "name": "a", 10 | "type": "bool" 11 | } 12 | ], 13 | "returns": { 14 | "type": "bool" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBooleanArgAndReturn.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBooleanLastInObj.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestBooleanLastInObj", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "booleanLastInObj", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint64,bool)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBooleanLastInObj.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBytesCasting.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestBytesCasting", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "bytesCasting", 7 | "args": [ 8 | { 9 | "name": "a", 10 | "type": "byte[]" 11 | } 12 | ], 13 | "returns": { 14 | "type": "byte[2]" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBytesCasting.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBytesReturn.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestBytesReturn", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "bytesReturn", 7 | "args": [], 8 | "returns": { 9 | "type": "byte[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestBytesReturn.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestCastBytesFunction.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestCastBytesFunction", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "castBytesFunction", 7 | "args": [], 8 | "returns": { 9 | "type": "uint8[3]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestCastBytesFunction.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestChainedPropertyAfterTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "chainedPropertyAfterTuple", 7 | "args": [ 8 | { 9 | "name": "asa", 10 | "type": "uint64" 11 | } 12 | ], 13 | "returns": { 14 | "type": "void" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestChainedPropertyAfterTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestCustomTypes.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestCustomTypes", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "customTypes", 7 | "args": [], 8 | "returns": { 9 | "type": "string" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestCustomTypes.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDisgusting.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestDisgusting", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "disgusting", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDisgusting.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestDynamicAccessOfDynamicElementInStaticArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "dynamicAccessOfDynamicElementInStaticArray", 7 | "args": [ 8 | { 9 | "name": "a", 10 | "type": "string[3]" 11 | } 12 | ], 13 | "returns": { 14 | "type": "string" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestDynamicArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "dynamicArray", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicArrayArg.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestDynamicArrayArg", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "dynamicArrayArg", 7 | "args": [ 8 | { 9 | "name": "a", 10 | "type": "uint64[]" 11 | } 12 | ], 13 | "returns": { 14 | "type": "uint64" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicArrayArg.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicArrayElements.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestDynamicArrayElements", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "dynamicArrayElements", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicArrayElements.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestDynamicArrayInMiddleOfTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "dynamicArrayInMiddleOfTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint16,uint8[],uint16)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicArrayInMiddleOfTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicArrayIteration.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestDynamicArrayIteration", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "dynamicArrayIteration", 7 | "args": [], 8 | "returns": { 9 | "type": "string" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicArrayIteration.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicArrayLength.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestDynamicArrayLength", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "dynamicArrayLength", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicArrayLength.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicBoolArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestDynamicBoolArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "dynamicBoolArray", 7 | "args": [], 8 | "returns": { 9 | "type": "bool[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicBoolArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestDynamicBoolArrayAccess", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "dynamicBoolArrayAccess", 7 | "args": [], 8 | "returns": { 9 | "type": "bool" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicBoolArrayAccess.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestDynamicBoolArrayUpdate", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "dynamicBoolArrayUpdate", 7 | "args": [], 8 | "returns": { 9 | "type": "bool[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicBoolArrayUpdate.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicTupleArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestDynamicTupleArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "dynamicTupleArray", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestDynamicTupleArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestEmptyDynamicArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestEmptyDynamicArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "emptyDynamicArray", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestEmptyDynamicArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestEmptyStaticArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestEmptyStaticArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "emptyStaticArray", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16[3]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestEmptyStaticArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestExtractUint.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestExtractUint", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "extractUint", 7 | "args": [ 8 | { 9 | "name": "arg", 10 | "type": "uint64" 11 | } 12 | ], 13 | "returns": { 14 | "type": "uint8" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestExtractUint.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestForEachReturn.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestForEachReturn", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "forEachReturn", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestForEachReturn.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestForOfBreak.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestForOfBreak", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "forOfBreak", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestForOfBreak.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestForOfContinue.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestForOfContinue", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "forOfContinue", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestForOfContinue.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestGlobalMethodInChain.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestGlobalMethodInChain", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "globalMethodInChain", 7 | "args": [], 8 | "returns": { 9 | "type": "uint8" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestGlobalMethodInChain.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestLargeNestedStaticForEachInBox", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "largeNestedStaticForEachInBox", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestLargeNestedStaticForEachInBox.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestLargeNestedStaticForOfInBox.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestLargeNestedStaticForOfInBox", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "largeNestedStaticForOfInBox", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestLargeNestedStaticForOfInBox.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestMaxPools.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestMaxPools", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "maxPools", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestMaxPools.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 9 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestMaxUfixed.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestMaxUfixed", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "maxUfixed", 7 | "args": [], 8 | "returns": { 9 | "type": "ufixed64x2" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestMaxUfixed.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestMixedArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 9 2 | int 1 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestMixedStaticArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 9 2 | int 1 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestMixedStaticArrayElements.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestMixedStaticArrayElements", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "mixedStaticArrayElements", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestMixedStaticArrayElements.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestMultiBytesTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestMultiBytesTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "multiBytesTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "(byte[],byte[])" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestMultiBytesTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestMultiNestedArrayRef.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestMultiNestedArrayRef", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "multiNestedArrayRef", 7 | "args": [], 8 | "returns": { 9 | "type": "uint8[2][2][2]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestMultiNestedArrayRef.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNamedTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNamedTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "namedTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "string" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNamedTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedArrayAlongsideBoolean.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedArrayAlongsideBoolean", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedArrayAlongsideBoolean", 7 | "args": [], 8 | "returns": { 9 | "type": "(byte[4][],uint64,uint64,uint64,bool)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedArrayAlongsideBoolean.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedArrayInBox.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedArrayInBox", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedArrayInBox", 7 | "args": [], 8 | "returns": { 9 | "type": "(byte[4][],uint64,uint64,uint64,bool)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedArrayInBox.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedArrayInBoxLast.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedArrayInBoxLast", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedArrayInBoxLast", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint64,uint64,uint64,bool,byte[4][])" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedArrayInBoxLast.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedArrayInBoxWithoutBool.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedArrayInBoxWithoutBool", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedArrayInBoxWithoutBool", 7 | "args": [], 8 | "returns": { 9 | "type": "(byte[4][],uint64,uint64,uint64)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedArrayInBoxWithoutBool.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedArrayLengthInObject.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedArrayLengthInObject", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedArrayLengthInObject", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedArrayLengthInObject.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedArrayLengthInObjectVariable", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedArrayLengthInObjectVariable", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedArrayLengthInObjectVariable.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedArrayRef.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedArrayRef", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedArrayRef", 7 | "args": [], 8 | "returns": { 9 | "type": "uint8[2][2]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedArrayRef.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedEmptyArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 9 2 | int 1 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedObject.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedObject", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedObject", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedObject.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedObjectType.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedObjectType", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedObjectType", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedObjectType.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedStaticArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedStaticArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedStaticArray", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedStaticArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedStaticArrayLength.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedStaticArrayLength", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedStaticArrayLength", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedStaticArrayLength.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedStaticForEach.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedStaticForEach", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedStaticForEach", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedStaticForEach.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedStaticForEachInBox.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedStaticForEachInBox", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedStaticForEachInBox", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedStaticForEachInBox.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedStructInBoxMap.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedStructInBoxMap", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedStructInBoxMap", 7 | "args": [], 8 | "returns": { 9 | "type": "((uint8))" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedStructInBoxMap.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint16,(uint8,string),(uint16,string))" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedTypesInSignature.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNestedTypesInSignature", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nestedTypesInSignature", 7 | "args": [], 8 | "returns": { 9 | "type": "((uint64,uint64),uint64)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNestedTypesInSignature.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNonE2E.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNonE2E", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "typeWithComments", 7 | "args": [], 8 | "returns": { 9 | "type": "(string,uint64,uint64)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNonE2E.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNonLiteralDynamicElementInTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nonLiteralDynamicElementInTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint8,uint16,uint8[],uint16[],uint8[])" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNonLiteralNestedArrayRef", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nonLiteralNestedArrayRef", 7 | "args": [], 8 | "returns": { 9 | "type": "uint8[2][2]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNonLiteralNestedArrayRef.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNonLiteralStaticArrayAccess", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nonLiteralStaticArrayAccess", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestNonLiteralStaticArrayElements", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "nonLiteralStaticArrayElements", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestObjectArrayRef.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestObjectArrayRef", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "objectArrayRef", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint8[2][2])" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestObjectArrayRef.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestObjectInArgs.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestObjectInArgs", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "objectInArgs", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestObjectInArgs.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestObjectRef.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestObjectRef", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "objectRef", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint64)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestObjectRef.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestOpcodeParamFromObject.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestOpcodeParamFromObject", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "opcodeParamFromObject", 7 | "args": [], 8 | "returns": { 9 | "type": "address" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestOpcodeParamFromObject.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestPartialStaticArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestPartialStaticArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "partialStaticArray", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16[3]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestPartialStaticArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestPlusEqualsArrayValue.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestPlusEqualsArrayValue", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "plusEqualsArrayValue", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64[2]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestPlusEqualsArrayValue.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestPlusEqualsObjValue.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestPlusEqualsObjValue", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "plusEqualsObjValue", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint64,uint64)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestPlusEqualsObjValue.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestPlusEqualsObjValueInBox", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "plusEqualsObjValueInBox", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint64,uint64)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestPlusEqualsObjValueInBox.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestPostBoolTupleOffset.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestPostBoolTupleOffset", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "postBoolTupleOffset", 7 | "args": [], 8 | "returns": { 9 | "type": "(bool,uint64,uint64)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestPostBoolTupleOffset.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestPushToArrayInBox.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestPushToArrayInBox", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "pushToArrayInBox", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestPushToArrayInBox.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestRawBytesFunction.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestRawBytesFunction", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "rawBytesFunction", 7 | "args": [], 8 | "returns": { 9 | "type": "string" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestRawBytesFunction.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestRefTypes.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestRefTypes", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "refTypes", 7 | "args": [ 8 | { 9 | "name": "acct", 10 | "type": "account" 11 | }, 12 | { 13 | "name": "app", 14 | "type": "application" 15 | }, 16 | { 17 | "name": "asa", 18 | "type": "asset" 19 | } 20 | ], 21 | "returns": { 22 | "type": "void" 23 | } 24 | }, 25 | { 26 | "name": "createApplication", 27 | "args": [], 28 | "returns": { 29 | "type": "void" 30 | } 31 | } 32 | ] 33 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestRefTypes.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestReturnByte.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestReturnByte", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "returnByte", 7 | "args": [], 8 | "returns": { 9 | "type": "byte" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestReturnByte.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestReturnDynamicArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestReturnDynamicArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "returnDynamicArray", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestReturnDynamicArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestReturnDynamicArrayFromTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "returnDynamicArrayFromTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "uint8[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestReturnDynamicArrayFromTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestReturnStaticArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestReturnStaticArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "returnStaticArray", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64[3]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestReturnStaticArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestReturnTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestReturnTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "returnTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint64,uint16,uint64)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestReturnTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestReturnTupleWithDyamicArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "returnTupleWithDyamicArray", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint64,uint16,uint64[],uint16[])" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestReturnTupleWithDyamicArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestSetStaticArrayElement.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestSetStaticArrayElement", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "setStaticArrayElement", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestSetStaticArrayElement.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestShortTypeNotation.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestShortTypeNotation", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "shortTypeNotation", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestShortTypeNotation.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestShortenDynamicElementInTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "shortenDynamicElementInTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint16[],uint16[],uint16[])" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestShortenDynamicElementInTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestSimpleTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestSimpleTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "simpleTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestSimpleTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestSmallerByteCasting.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestSmallerByteCasting", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "smallerByteCasting", 7 | "args": [ 8 | { 9 | "name": "a", 10 | "type": "byte[4]" 11 | } 12 | ], 13 | "returns": { 14 | "type": "byte[2]" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestSmallerByteCasting.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestSpliceFirstElement.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestSpliceFirstElement", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "spliceFirstElement", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestSpliceFirstElement.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestSpliceFirstElementValue.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestSpliceFirstElementValue", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "spliceFirstElementValue", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestSpliceFirstElementValue.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestSpliceLastElement.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestSpliceLastElement", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "spliceLastElement", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestSpliceLastElement.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestSpliceLastElementValue.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestSpliceLastElementValue", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "spliceLastElementValue", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16[]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestSpliceLastElementValue.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStaticArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "staticArray", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticArrayArg.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStaticArrayArg", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "staticArrayArg", 7 | "args": [ 8 | { 9 | "name": "a", 10 | "type": "uint64[3]" 11 | } 12 | ], 13 | "returns": { 14 | "type": "uint64" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticArrayArg.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticArrayInStorageMap.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStaticArrayInStorageMap", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "staticArrayInStorageMap", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64[3]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticArrayInStorageMap.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticArrayInStorageRef.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStaticArrayInStorageRef", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "staticArrayInStorageRef", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64[3]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticArrayInStorageRef.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticArrayLength.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStaticArrayLength", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "staticArrayLength", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticArrayLength.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticBoolArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStaticBoolArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "staticBoolArray", 7 | "args": [], 8 | "returns": { 9 | "type": "bool[9]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticBoolArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticBoolArrayAccess.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStaticBoolArrayAccess", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "staticBoolArrayAccess", 7 | "args": [], 8 | "returns": { 9 | "type": "bool" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticBoolArrayAccess.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStaticBoolArrayUpdate", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "staticBoolArrayUpdate", 7 | "args": [], 8 | "returns": { 9 | "type": "bool[9]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticBoolArrayUpdate.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticByteCasting.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStaticByteCasting", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "staticByteCasting", 7 | "args": [], 8 | "returns": { 9 | "type": "byte[5]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticByteCasting.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticForEach.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStaticForEach", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "staticForEach", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticForEach.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticForOf.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStaticForOf", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "staticForOf", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticForOf.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticStringArrayArg.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStaticStringArrayArg", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "staticStringArrayArg", 7 | "args": [ 8 | { 9 | "name": "a", 10 | "type": "string[3]" 11 | } 12 | ], 13 | "returns": { 14 | "type": "string" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticStringArrayArg.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticTypeInBox.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStaticTypeInBox", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "staticTypeInBox", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStaticTypeInBox.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStoragePropertyReferenceInBox.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStoragePropertyReferenceInBox", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "storagePropertyReferenceInBox", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStoragePropertyReferenceInBox.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStorageRefAccount.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStorageRefAccount", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "storageRefAccount", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStorageRefAccount.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStorageRefKey.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStorageRefKey", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "storageRefKey", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStorageRefKey.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStorageTypeHint.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStorageTypeHint", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "partialStaticArray", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16[3]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStorageTypeHint.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStringAccessor.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStringAccessor", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "stringAccessor", 7 | "args": [], 8 | "returns": { 9 | "type": "string" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStringAccessor.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStringArg.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStringArg", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "stringArg", 7 | "args": [ 8 | { 9 | "name": "s", 10 | "type": "string" 11 | } 12 | ], 13 | "returns": { 14 | "type": "void" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStringArg.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStringArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStringArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "stringArray", 7 | "args": [ 8 | { 9 | "name": "a", 10 | "type": "string[]" 11 | } 12 | ], 13 | "returns": { 14 | "type": "void" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStringArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStringInTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStringInTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "stringInTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint16,uint8[],string,uint8[])" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStringInTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStringLength.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStringLength", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "stringLength", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStringLength.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStringReturn.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestStringReturn", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "stringReturn", 7 | "args": [], 8 | "returns": { 9 | "type": "string" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestStringReturn.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestThreeDimensionalUint16Array", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "threeDimensionalUint16Array", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestThreeDimensionalUint16Array.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestTupleArg.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestTupleArg", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "tupleArg", 7 | "args": [ 8 | { 9 | "name": "a", 10 | "type": "(uint64,uint16,uint64)" 11 | } 12 | ], 13 | "returns": { 14 | "type": "uint16" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestTupleArg.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestTupleInArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestTupleInArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "tupleInArray", 7 | "args": [], 8 | "returns": { 9 | "type": "uint16" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestTupleInArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestTupleInTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestTupleInTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "tupleInTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestTupleInTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestTxnTypes.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestTxnTypes", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "txnTypes", 7 | "args": [ 8 | { 9 | "name": "t", 10 | "type": "txn" 11 | }, 12 | { 13 | "name": "a", 14 | "type": "appl" 15 | }, 16 | { 17 | "name": "ac", 18 | "type": "acfg" 19 | }, 20 | { 21 | "name": "af", 22 | "type": "afrz" 23 | }, 24 | { 25 | "name": "at", 26 | "type": "axfer" 27 | }, 28 | { 29 | "name": "kr", 30 | "type": "keyreg" 31 | }, 32 | { 33 | "name": "p", 34 | "type": "pay" 35 | } 36 | ], 37 | "returns": { 38 | "type": "void" 39 | } 40 | }, 41 | { 42 | "name": "createApplication", 43 | "args": [], 44 | "returns": { 45 | "type": "void" 46 | } 47 | } 48 | ] 49 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestTxnTypes.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestTypedConst.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestTypedConst", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "maxPools", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestTypedConst.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestTypedVarFromStorage.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestTypedVarFromStorage", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "typedVarFromStorage", 7 | "args": [ 8 | { 9 | "name": "key", 10 | "type": "uint32" 11 | } 12 | ], 13 | "returns": { 14 | "type": "byte[32]" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestTypedVarFromStorage.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUfixed.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUfixed", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "ufixed", 7 | "args": [], 8 | "returns": { 9 | "type": "ufixed64x2" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUfixed.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUint64Casting.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUint64Casting", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "uint64Casting", 7 | "args": [ 8 | { 9 | "name": "a", 10 | "type": "uint256" 11 | } 12 | ], 13 | "returns": { 14 | "type": "uint64" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUint64Casting.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUintCasting.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUintCasting", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "uintCasting", 7 | "args": [ 8 | { 9 | "name": "a", 10 | "type": "uint8" 11 | } 12 | ], 13 | "returns": { 14 | "type": "uint256" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUintCasting.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUintNComparison.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUintNComparison", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "uintNComparison", 7 | "args": [ 8 | { 9 | "name": "x", 10 | "type": "uint256" 11 | }, 12 | { 13 | "name": "y", 14 | "type": "uint256" 15 | } 16 | ], 17 | "returns": { 18 | "type": "bool" 19 | } 20 | }, 21 | { 22 | "name": "createApplication", 23 | "args": [], 24 | "returns": { 25 | "type": "void" 26 | } 27 | } 28 | ] 29 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUintNComparison.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUpdateArrayRefInBoxStorage", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "updateArrayRefInBoxStorage", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint8,uint64)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateArrayRefInBoxStorage.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUpdateDynamicArrayElement", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "updateDynamicArrayElement", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateDynamicArrayElement.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUpdateDynamicArrayInMiddleOfTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "updateDynamicArrayInMiddleOfTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint16,uint8[],uint16)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateDynamicArrayInMiddleOfTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUpdateDynamicArrayInTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "updateDynamicArrayInTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint8,uint16[],uint8[],uint16[],uint8[])" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateDynamicArrayInTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUpdateDynamicElementInTupleWithSameLength", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "updateDynamicElementInTupleWithSameLength", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint16,uint8[],uint16,uint8[],uint16)" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateDynamicElementInTupleWithSameLength.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateNamedTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUpdateNamedTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "updateNamedTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "string" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateNamedTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateNestedStaticArray.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUpdateNestedStaticArray", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "updateNestedStaticArray", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateNestedStaticArray.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUpdateNestedStaticArrayElement", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "updateNestedStaticArrayElement", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateNestedStaticArrayElement.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUpdateStaticArrayInStorageMap", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "updateStaticArrayInStorageMap", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64[3]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUpdateStaticArrayInStorageRef", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "updateStaticArrayInStorageRef", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64[3]" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateStaticFieldInDynamicObjectInBox.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUpdateStaticFieldInDynamicObjectInBox", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "updateStaticFieldInDynamicObjectInBox", 7 | "args": [], 8 | "returns": { 9 | "type": "string" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateStaticFieldInDynamicObjectInBox.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateStringInTuple.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUpdateStringInTuple", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "updateStringInTuple", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint8,uint16[],string,uint16[],uint8[])" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateStringInTuple.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ABITestUpdateTupleWithOnlyDynamicTypes", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "updateTupleWithOnlyDynamicTypes", 7 | "args": [], 8 | "returns": { 9 | "type": "(uint16[],uint16[],uint16[])" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ABITestUpdateTupleWithOnlyDynamicTypes.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/AD.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "AD", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "a", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "d", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | }, 19 | { 20 | "name": "ad", 21 | "args": [], 22 | "returns": { 23 | "type": "void" 24 | } 25 | }, 26 | { 27 | "name": "createApplication", 28 | "args": [], 29 | "returns": { 30 | "type": "void" 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/AD.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ARC56Test.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ARC56Test", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "customStructMethod", 7 | "args": [ 8 | { 9 | "name": "input", 10 | "type": "(uint64)" 11 | } 12 | ], 13 | "returns": { 14 | "type": "(uint64)" 15 | } 16 | }, 17 | { 18 | "name": "foo", 19 | "args": [ 20 | { 21 | "name": "inputs", 22 | "type": "((uint64,uint64),(uint64,uint64))" 23 | } 24 | ], 25 | "returns": { 26 | "type": "(uint64,uint64)" 27 | } 28 | }, 29 | { 30 | "name": "optInToApplication", 31 | "args": [], 32 | "returns": { 33 | "type": "void" 34 | } 35 | }, 36 | { 37 | "name": "customType", 38 | "args": [ 39 | { 40 | "name": "input", 41 | "type": "(uint64)" 42 | } 43 | ], 44 | "returns": { 45 | "type": "(uint64)" 46 | } 47 | }, 48 | { 49 | "name": "createApplication", 50 | "args": [], 51 | "returns": { 52 | "type": "void" 53 | } 54 | } 55 | ] 56 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ARC56Test.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ARC56TestNoTemplateVars.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ARC56TestNoTemplateVars", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "createApplication", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ARC56TestNoTemplateVars.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/AVM11.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "AVM11", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "voterOpcodes", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "incentiveGlobals", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | }, 19 | { 20 | "name": "onlineStakeOp", 21 | "args": [], 22 | "returns": { 23 | "type": "void" 24 | } 25 | }, 26 | { 27 | "name": "accountParams", 28 | "args": [], 29 | "returns": { 30 | "type": "void" 31 | } 32 | }, 33 | { 34 | "name": "blockParams", 35 | "args": [], 36 | "returns": { 37 | "type": "void" 38 | } 39 | }, 40 | { 41 | "name": "createApplication", 42 | "args": [], 43 | "returns": { 44 | "type": "void" 45 | } 46 | } 47 | ] 48 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/AVM11.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 11 -------------------------------------------------------------------------------- /tests/contracts/artifacts/AccountTest.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/B.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "B", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "a", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "b", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | }, 19 | { 20 | "name": "createApplication", 21 | "args": [], 22 | "returns": { 23 | "type": "void" 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/B.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/B2.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "B2", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "a", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "b2", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | }, 19 | { 20 | "name": "createApplication", 21 | "args": [], 22 | "returns": { 23 | "type": "void" 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/B2.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/BasicLsig.lsig.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 2 | //#pragma mode logicsig 3 | intcblock 1 4 | 5 | // This TEAL was generated by TEALScript v0.106.3 6 | // https://github.com/algorandfoundation/TEALScript 7 | 8 | // The address of this logic signature is XBBFEDSZ6KEUC76ZFV5LUYHAYYRKAXRJ7FYUSBWIBTNA4HUYLMHGKGYXPU 9 | 10 | b *route_logic 11 | 12 | // logic()void 13 | *route_logic: 14 | // execute logic()void 15 | callsub logic 16 | intc 0 // 1 17 | return 18 | 19 | // logic(): void 20 | logic: 21 | proto 0 0 22 | 23 | // tests/contracts/lsig.algo.ts:6 24 | // assert(true) 25 | intc 0 // 1 26 | assert 27 | retsub -------------------------------------------------------------------------------- /tests/contracts/artifacts/BigComment.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BigComment", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "loremIpsum", 7 | "args": [], 8 | "returns": { 9 | "type": "string" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/BigComment.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 11 -------------------------------------------------------------------------------- /tests/contracts/artifacts/BinaryTest.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/BytecblockTest.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BytecblockTest", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "largeBytecblock", 7 | "args": [], 8 | "returns": { 9 | "type": "string" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/BytecblockTest.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/C.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "C", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "a", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "b", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | }, 19 | { 20 | "name": "c", 21 | "args": [], 22 | "returns": { 23 | "type": "void" 24 | } 25 | }, 26 | { 27 | "name": "createApplication", 28 | "args": [], 29 | "returns": { 30 | "type": "void" 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/C.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/CblocksTest.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CblocksTest", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "largeIntcblock", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "largeBytecblock", 14 | "args": [], 15 | "returns": { 16 | "type": "byte[]" 17 | } 18 | }, 19 | { 20 | "name": "createApplication", 21 | "args": [], 22 | "returns": { 23 | "type": "void" 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/CblocksTest.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ContractWithCustomStruct.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ContractWithCustomStruct", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "customStructMethod", 7 | "args": [ 8 | { 9 | "name": "input", 10 | "type": "(uint64)" 11 | } 12 | ], 13 | "returns": { 14 | "type": "(uint64)" 15 | } 16 | }, 17 | { 18 | "name": "createApplication", 19 | "args": [], 20 | "returns": { 21 | "type": "void" 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ContractWithCustomStruct.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ContractWithLsigProgram.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ContractWithLsigProgram", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "createApplication", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ContractWithLsigProgram.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ContratWithLsigAddress.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ContratWithLsigAddress", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "createApplication", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ContratWithLsigAddress.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/D.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "D", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "d", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/D.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/DummyContract.approval.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 2 | 3 | // This TEAL was generated by TEALScript v0.106.3 4 | // https://github.com/algorandfoundation/TEALScript 5 | 6 | // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] 7 | 8 | // The following ten lines of TEAL handle initial program flow 9 | // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed 10 | // Here, action refers to the OnComplete in combination with whether the app is being created or called 11 | // Every possible action for this contract is represented in the switch statement 12 | // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" 13 | txn ApplicationID 14 | ! 15 | pushint 6 16 | * 17 | txn OnCompletion 18 | + 19 | switch *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED 20 | 21 | *NOT_IMPLEMENTED: 22 | // The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID? 23 | err 24 | 25 | *abi_route_createApplication: 26 | pushint 1 27 | return 28 | 29 | *create_NoOp: 30 | pushbytes 0xb8447b36 // method "createApplication()void" 31 | txna ApplicationArgs 0 32 | match *abi_route_createApplication 33 | 34 | // this contract does not implement the given ABI method for create NoOp 35 | err -------------------------------------------------------------------------------- /tests/contracts/artifacts/DummyContract.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DummyContract", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "createApplication", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/DummyContract.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/E.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "E", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "externalMethod", 7 | "args": [], 8 | "returns": { 9 | "type": "uint8" 10 | } 11 | }, 12 | { 13 | "name": "e", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | }, 19 | { 20 | "name": "createApplication", 21 | "args": [], 22 | "returns": { 23 | "type": "void" 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/E.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ExternalContract.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ExternalContract", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "externalMethod", 7 | "args": [], 8 | "returns": { 9 | "type": "uint8" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ExternalContract.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/F.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "F", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "publicMethod", 7 | "args": [], 8 | "returns": { 9 | "type": "string" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/F.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/Foo.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Foo", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "a", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "b", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | }, 19 | { 20 | "name": "b2", 21 | "args": [], 22 | "returns": { 23 | "type": "void" 24 | } 25 | }, 26 | { 27 | "name": "foo", 28 | "args": [], 29 | "returns": { 30 | "type": "void" 31 | } 32 | }, 33 | { 34 | "name": "createApplication", 35 | "args": [], 36 | "returns": { 37 | "type": "void" 38 | } 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/Foo.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/FunctionsTest.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "FunctionsTest", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "callNonClassFunction", 7 | "args": [ 8 | { 9 | "name": "a", 10 | "type": "uint64" 11 | }, 12 | { 13 | "name": "b", 14 | "type": "uint64" 15 | } 16 | ], 17 | "returns": { 18 | "type": "uint64" 19 | } 20 | }, 21 | { 22 | "name": "callExternalFunction", 23 | "args": [ 24 | { 25 | "name": "a", 26 | "type": "uint64" 27 | }, 28 | { 29 | "name": "b", 30 | "type": "uint64" 31 | } 32 | ], 33 | "returns": { 34 | "type": "uint64" 35 | } 36 | }, 37 | { 38 | "name": "callPackageFunction", 39 | "args": [ 40 | { 41 | "name": "a", 42 | "type": "uint64" 43 | }, 44 | { 45 | "name": "b", 46 | "type": "uint64" 47 | } 48 | ], 49 | "returns": { 50 | "type": "uint64" 51 | } 52 | }, 53 | { 54 | "name": "createApplication", 55 | "args": [], 56 | "returns": { 57 | "type": "void" 58 | } 59 | } 60 | ] 61 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/FunctionsTest.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/G.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "G", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "publicMethod", 7 | "args": [], 8 | "returns": { 9 | "type": "string" 10 | } 11 | }, 12 | { 13 | "name": "g", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | }, 19 | { 20 | "name": "createApplication", 21 | "args": [], 22 | "returns": { 23 | "type": "void" 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/G.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/GeneralTest.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/IfTest.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/IntcblockTest.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "IntcblockTest", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "largeIntcblock", 7 | "args": [], 8 | "returns": { 9 | "type": "uint64" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/IntcblockTest.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ItxnsTest.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/LoopsTest.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/LsigWithArgs.lsig.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 2 | //#pragma mode logicsig 3 | intcblock 1 4 | 5 | // This TEAL was generated by TEALScript v0.106.3 6 | // https://github.com/algorandfoundation/TEALScript 7 | 8 | // The address of this logic signature is W6DDEFBKZB2HZYJ6WYJ3S3RSK57IRNV4LACOOLBGVDEWJ524RQWF5EBMTU 9 | 10 | b *route_logic 11 | 12 | // logic(uint64,uint64[])void 13 | *route_logic: 14 | // b: uint64[] 15 | intc 0 // 1 16 | args 17 | extract 2 0 18 | 19 | // a: uint64 20 | pushint 0 21 | args 22 | btoi 23 | 24 | // execute logic(uint64,uint64[])void 25 | callsub logic 26 | intc 0 // 1 27 | return 28 | 29 | // logic(a: AssetID, b: uint64[]): void 30 | logic: 31 | proto 2 0 32 | 33 | // tests/contracts/lsig.algo.ts:13 34 | // assert(a) 35 | frame_dig -1 // a: AssetID 36 | assert 37 | 38 | // tests/contracts/lsig.algo.ts:14 39 | // assert(b[2]) 40 | frame_dig -2 // b: uint64[] 41 | store 255 // full array 42 | load 255 // full array 43 | extract 16 8 44 | btoi 45 | assert 46 | retsub -------------------------------------------------------------------------------- /tests/contracts/artifacts/LsigWithPrivateMethod.lsig.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 2 | //#pragma mode logicsig 3 | intcblock 1 4 | 5 | // This TEAL was generated by TEALScript v0.106.3 6 | // https://github.com/algorandfoundation/TEALScript 7 | 8 | // The address of this logic signature is 2G7X6ZCAOFJOVGTOAGVL2ZKKJSLUSV2XFG4SKH3JRUIZ7EY7JWY3T7EQGI 9 | 10 | b *route_logic 11 | 12 | // privateMethod(): boolean 13 | privateMethod: 14 | proto 0 1 15 | 16 | // tests/contracts/lsig.algo.ts:21 17 | // return true; 18 | intc 0 // 1 19 | retsub 20 | 21 | // logic()void 22 | *route_logic: 23 | // execute logic()void 24 | callsub logic 25 | intc 0 // 1 26 | return 27 | 28 | // logic(): void 29 | logic: 30 | proto 0 0 31 | 32 | // tests/contracts/lsig.algo.ts:25 33 | // assert(this.privateMethod()) 34 | callsub privateMethod 35 | assert 36 | retsub -------------------------------------------------------------------------------- /tests/contracts/artifacts/MathTest.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/MultiInheritance.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "MultiInheritance", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "a", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "b", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | }, 19 | { 20 | "name": "b2", 21 | "args": [], 22 | "returns": { 23 | "type": "void" 24 | } 25 | }, 26 | { 27 | "name": "foo", 28 | "args": [], 29 | "returns": { 30 | "type": "void" 31 | } 32 | }, 33 | { 34 | "name": "createApplication", 35 | "args": [], 36 | "returns": { 37 | "type": "void" 38 | } 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/MultiInheritance.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/MultiInheritanceProgram.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "MultiInheritanceProgram", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "prog", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "createApplication", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/MultiInheritanceProgram.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/ProgramVersion.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ProgramVersion", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "createApplication", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/ProgramVersion.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 8 -------------------------------------------------------------------------------- /tests/contracts/artifacts/SchemaContract.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SchemaContract", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "createApplication", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/SchemaContract.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/StorageTest.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/artifacts/Templates.arc4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Templates", 3 | "desc": "", 4 | "methods": [ 5 | { 6 | "name": "tmpl", 7 | "args": [], 8 | "returns": { 9 | "type": "void" 10 | } 11 | }, 12 | { 13 | "name": "specificLengthTemplateVar", 14 | "args": [], 15 | "returns": { 16 | "type": "void" 17 | } 18 | }, 19 | { 20 | "name": "throwError", 21 | "args": [], 22 | "returns": { 23 | "type": "void" 24 | } 25 | }, 26 | { 27 | "name": "itobTemplateVar", 28 | "args": [], 29 | "returns": { 30 | "type": "byte[]" 31 | } 32 | }, 33 | { 34 | "name": "createApplication", 35 | "args": [], 36 | "returns": { 37 | "type": "void" 38 | } 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /tests/contracts/artifacts/Templates.clear.teal: -------------------------------------------------------------------------------- 1 | #pragma version 10 -------------------------------------------------------------------------------- /tests/contracts/avm11.algo.ts: -------------------------------------------------------------------------------- 1 | import { Contract } from '../../src/lib'; 2 | 3 | export class AVM11 extends Contract { 4 | programVersion = 11; 5 | 6 | voterOpcodes() { 7 | assert(this.txn.sender.voterBalance); 8 | // voter_params_get IncentiveEligible covered by incentiveEligible acct_param 9 | } 10 | 11 | incentiveGlobals() { 12 | assert(globals.payoutsEnabled); 13 | assert(globals.payoutsGoOnlineFee); 14 | assert(globals.payoutsPercent); 15 | assert(globals.payoutsMinBalance); 16 | assert(globals.payoutsMaxBalance); 17 | } 18 | 19 | onlineStakeOp() { 20 | assert(onlineStake()); 21 | } 22 | 23 | accountParams() { 24 | assert(this.txn.sender.incentiveEligible); 25 | assert(this.txn.sender.lastHeartbeat); 26 | assert(this.txn.sender.lastProposed); 27 | } 28 | 29 | blockParams() { 30 | log(blocks[globals.round - 1].proposer); 31 | assert(blocks[globals.round - 1].feesCollected); 32 | assert(blocks[globals.round - 1].bonus); 33 | log(blocks[globals.round - 1].branch); 34 | log(blocks[globals.round - 1].feeSink); 35 | log(blocks[globals.round - 1].protocol); 36 | assert(blocks[globals.round - 1].txnCounter); 37 | assert(blocks[globals.round - 1].proposerPayout); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /tests/contracts/binary.algo.ts: -------------------------------------------------------------------------------- 1 | import { Contract } from '../../src/lib/index'; 2 | 3 | // eslint-disable-next-line no-unused-vars 4 | class BinaryTest extends Contract { 5 | and(a: uint64, b: uint64): void { 6 | assert(a && b); 7 | } 8 | 9 | or(a: uint64, b: uint64): void { 10 | assert(a || b); 11 | } 12 | 13 | equal(a: uint64, b: uint64): void { 14 | assert(a === b); 15 | } 16 | 17 | notEqual(a: uint64, b: uint64): void { 18 | assert(a !== b); 19 | } 20 | 21 | bitAnd(a: uint64, b: uint64): void { 22 | assert(a & b); 23 | } 24 | 25 | bitOr(a: uint64, b: uint64): void { 26 | assert(a | b); 27 | } 28 | 29 | bitXor(a: uint64, b: uint64): void { 30 | assert(a ^ b); 31 | } 32 | 33 | combo(a: uint64, b: uint64, c: uint64): void { 34 | assert(a || (b && c)); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /tests/contracts/functions-external.algo.ts: -------------------------------------------------------------------------------- 1 | export function externalFunction(a: uint64, b: uint64): uint64 { 2 | return a + b; 3 | } 4 | -------------------------------------------------------------------------------- /tests/contracts/functions.algo.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line import/no-extraneous-dependencies 2 | import { packageFunction } from 'tealscript_test_package'; 3 | import { Contract } from '../../src/lib/index'; 4 | import { externalFunction } from './functions-external.algo'; 5 | 6 | function nonClassFunction(a: uint64, b: uint64): uint64 { 7 | return a + b; 8 | } 9 | 10 | export class FunctionsTest extends Contract { 11 | callNonClassFunction(a: uint64, b: uint64): uint64 { 12 | return nonClassFunction(a, b); 13 | } 14 | 15 | callExternalFunction(a: uint64, b: uint64): uint64 { 16 | return externalFunction(a, b); 17 | } 18 | 19 | callPackageFunction(a: uint64, b: uint64): uint64 { 20 | return packageFunction(a, b); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tests/contracts/inheritance-external.algo.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable max-classes-per-file */ 2 | import { Contract } from '../../src/lib/index'; 3 | 4 | export type CustomType = uint<8>; 5 | export const MY_CONST = 654; 6 | 7 | export class ExternalContract extends Contract { 8 | externalKey = GlobalStateKey(); 9 | 10 | externalMethod(): CustomType { 11 | this.externalKey.value = 123; 12 | return this.externalKey.value; 13 | } 14 | } 15 | 16 | export type CustomStruct = { a: uint64 }; 17 | export type AnotherCustomStruct = { b: uint64 }; 18 | 19 | export class ContractWithCustomStruct extends Contract { 20 | customStructMethod(input: AnotherCustomStruct): AnotherCustomStruct { 21 | return input; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tests/contracts/lsig.algo.ts: -------------------------------------------------------------------------------- 1 | import { LogicSig, Contract } from '../../src/lib/index'; 2 | 3 | // eslint-disable-next-line no-unused-vars 4 | class BasicLsig extends LogicSig { 5 | logic(): void { 6 | assert(true); 7 | } 8 | } 9 | 10 | // eslint-disable-next-line no-unused-vars 11 | class LsigWithArgs extends LogicSig { 12 | logic(a: AssetID, b: uint64[]): void { 13 | assert(a); 14 | assert(b[2]); 15 | } 16 | } 17 | 18 | // eslint-disable-next-line no-unused-vars 19 | class LsigWithPrivateMethod extends LogicSig { 20 | private privateMethod(): boolean { 21 | return true; 22 | } 23 | 24 | logic(): void { 25 | assert(this.privateMethod()); 26 | } 27 | } 28 | 29 | // eslint-disable-next-line no-unused-vars 30 | class ContractWithLsigProgram extends Contract { 31 | createApplication(): void { 32 | log(BasicLsig.program()); 33 | } 34 | } 35 | 36 | // eslint-disable-next-line no-unused-vars 37 | class ContratWithLsigAddress extends Contract { 38 | createApplication(): void { 39 | log(BasicLsig.address()); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /tests/contracts/lsig_compile_errors.algo.ts: -------------------------------------------------------------------------------- 1 | import { LogicSig } from '../../src/lib/index'; 2 | 3 | // eslint-disable-next-line no-unused-vars 4 | class LsigInnerTxn extends LogicSig { 5 | logic(): void { 6 | sendPayment({ 7 | receiver: this.txn.sender, 8 | amount: 0, 9 | }); 10 | } 11 | } 12 | 13 | // eslint-disable-next-line no-unused-vars 14 | class LsigInnerLog extends LogicSig { 15 | logic(): void { 16 | log('foo'); 17 | } 18 | } 19 | 20 | // eslint-disable-next-line no-unused-vars 21 | class LsigMultipleMethods extends LogicSig { 22 | foo(): void { 23 | assert(true); 24 | } 25 | 26 | logic(): void { 27 | assert(true); 28 | } 29 | } 30 | 31 | // eslint-disable-next-line no-unused-vars 32 | class LsigNonVoid extends LogicSig { 33 | logic(): uint64 { 34 | return 1; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /tests/contracts/math_compile_errors.algo.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable class-methods-use-this */ 2 | import { Contract } from '../../src/lib/index'; 3 | 4 | // eslint-disable-next-line no-unused-vars 5 | class Uint8Exp extends Contract { 6 | uint8exp(a: uint256, b: uint256): uint256 { 7 | return a ** b; 8 | } 9 | } 10 | 11 | // eslint-disable-next-line no-unused-vars 12 | class BytesComparison extends Contract { 13 | bytesComparison(a: string, b: string): boolean { 14 | return a <= b; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/contracts/storage_compile_errors.algo.ts: -------------------------------------------------------------------------------- 1 | import { Contract } from '../../src/lib/index'; 2 | 3 | // eslint-disable-next-line no-unused-vars 4 | class KeyCollisionWithMap extends Contract { 5 | globalMap = GlobalStateMap({ maxKeys: 1 }); 6 | 7 | globalKey = GlobalStateKey(); 8 | } 9 | 10 | // eslint-disable-next-line no-unused-vars 11 | class MapCollisionWithKey extends Contract { 12 | globalKey = BoxKey(); 13 | 14 | globalMap = BoxMap(); 15 | } 16 | 17 | // eslint-disable-next-line no-unused-vars 18 | class MapSizeCollision extends Contract { 19 | uint8s = BoxMap<[uint<8>, uint<8>], bytes>(); 20 | 21 | uint16 = BoxMap(); 22 | } 23 | -------------------------------------------------------------------------------- /tests/functions.test.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable func-names */ 2 | /* eslint-disable prefer-arrow-callback */ 3 | 4 | import * as algokit from '@algorandfoundation/algokit-utils'; 5 | import { describe, test, expect } from '@jest/globals'; 6 | import { artifactsTest, compileAndCreate, runMethod, algodClient, kmdClient } from './common'; 7 | 8 | const NAME = 'FunctionsTest'; 9 | const PATH = 'tests/contracts/functions.algo.ts'; 10 | const ARTIFACTS_DIR = 'tests/contracts/artifacts/'; 11 | 12 | describe('Functions', function () { 13 | artifactsTest(PATH, ARTIFACTS_DIR, NAME); 14 | 15 | describe('E2E', function () { 16 | const sender = algokit.getLocalNetDispenserAccount(algodClient, kmdClient); 17 | 18 | test('callNonClassFunction', async function () { 19 | const { appClient } = await compileAndCreate(await sender, PATH, ARTIFACTS_DIR, NAME); 20 | expect(await runMethod({ appClient, method: 'callNonClassFunction', methodArgs: [1n, 2n] })).toBe(3n); 21 | }); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /tests/itxns.test.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-unused-expressions */ 2 | /* eslint-disable func-names */ 3 | /* eslint-disable prefer-arrow-callback */ 4 | import { describe } from '@jest/globals'; 5 | import { artifactsTest } from './common'; 6 | 7 | describe('Inner Transactions', function () { 8 | artifactsTest('tests/contracts/itxns.algo.ts', 'tests/contracts/artifacts/', 'ItxnsTest'); 9 | }); 10 | -------------------------------------------------------------------------------- /tests/test_package/README.md: -------------------------------------------------------------------------------- 1 | This is a simple package that is used to test importing things from npm packages. 2 | -------------------------------------------------------------------------------- /tests/test_package/bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/algorandfoundation/TEALScript/bd09db64e4be104eba984fd55964b58671b0cbe1/tests/test_package/bun.lockb -------------------------------------------------------------------------------- /tests/test_package/index.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-undef */ 2 | // @ts-expect-error We're not importing TEALScript so uint64 is not defined 3 | export function packageFunction(a: uint64, b: uint64): uint64 { 4 | return a + b; 5 | } 6 | -------------------------------------------------------------------------------- /tests/test_package/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tealscript_test_package", 3 | "module": "index.ts", 4 | "type": "module", 5 | "version": "0.2.0" 6 | } 7 | -------------------------------------------------------------------------------- /tests/test_package/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | // Enable latest features 4 | "lib": ["ESNext", "DOM"], 5 | "target": "ESNext", 6 | "module": "ESNext", 7 | "moduleDetection": "force", 8 | "jsx": "react-jsx", 9 | "allowJs": true, 10 | 11 | // Bundler mode 12 | "moduleResolution": "bundler", 13 | "allowImportingTsExtensions": true, 14 | "verbatimModuleSyntax": true, 15 | "noEmit": true, 16 | 17 | // Best practices 18 | "strict": true, 19 | "skipLibCheck": true, 20 | "noFallthroughCasesInSwitch": true, 21 | 22 | // Some stricter flags (disabled by default) 23 | "noUnusedLocals": false, 24 | "noUnusedParameters": false, 25 | "noPropertyAccessFromIndexSignature": false 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /tests/web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | -------------------------------------------------------------------------------- /tests/web/playwright.config.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line import/no-extraneous-dependencies 2 | import { defineConfig } from '@playwright/test'; 3 | 4 | export default defineConfig({ 5 | testMatch: '*.playwright.ts', 6 | webServer: { 7 | command: 'bun server.ts', 8 | url: 'http://127.0.0.1:3000', 9 | stdout: 'ignore', 10 | stderr: 'pipe', 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /tests/web/server.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line import/no-extraneous-dependencies 2 | import express from 'express'; 3 | 4 | export default function serveApp(port: number) { 5 | const app = express(); 6 | app.use(express.static('./')); 7 | 8 | const server = app.listen(port); 9 | 10 | return server; 11 | } 12 | 13 | serveApp(3000); 14 | -------------------------------------------------------------------------------- /tests/web/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2020", 4 | "module": "commonjs", 5 | "resolveJsonModule": true, 6 | "esModuleInterop": true, 7 | } 8 | } -------------------------------------------------------------------------------- /tests/web/web.playwright.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable func-names */ 2 | /* eslint-disable prefer-arrow-callback */ 3 | 4 | // eslint-disable-next-line import/no-extraneous-dependencies 5 | // eslint-disable-next-line import/no-extraneous-dependencies 6 | import { test, expect } from '@playwright/test'; 7 | import { TEAL } from './goldfile'; 8 | 9 | test.describe('Web', () => { 10 | test('TEAL', async ({ page }) => { 11 | await page.goto('http://127.0.0.1:3000/'); 12 | 13 | const teal = page.locator('#teal'); 14 | 15 | await teal.waitFor({ state: 'visible', timeout: 5000 }); 16 | 17 | expect((await teal.innerHTML()).replace(/>/g, '>')).toBe(TEAL); 18 | }); 19 | }); 20 | -------------------------------------------------------------------------------- /tests/web/webpack.config.js: -------------------------------------------------------------------------------- 1 | // Generated using webpack-cli https://github.com/webpack/webpack-cli 2 | 3 | const path = require('path'); 4 | const webpack = require('webpack'); 5 | const { spawnSync } = require('child_process'); 6 | 7 | const config = { 8 | entry: path.resolve(__dirname, 'index.ts'), 9 | output: { 10 | path: path.resolve(__dirname, 'dist'), 11 | }, 12 | module: { 13 | rules: [ 14 | { 15 | test: /\.(ts|tsx)$/i, 16 | loader: 'ts-loader', 17 | exclude: ['/node_modules/'], 18 | }, 19 | ], 20 | noParse: [require.resolve('@ts-morph/common/dist/typescript.js')], 21 | }, 22 | plugins: [ 23 | new webpack.ProvidePlugin({ 24 | Buffer: ['buffer', 'Buffer'], 25 | }), 26 | new webpack.DefinePlugin({ 27 | TEALSCRIPT_REF: JSON.stringify(spawnSync('git', ['rev-parse', 'HEAD']).stdout.toString().trim()), 28 | }), 29 | ], 30 | resolve: { 31 | extensions: ['.tsx', '.ts', '.jsx', '.js', '...'], 32 | fallback: { 33 | fs: false, 34 | path: require.resolve('path-browserify'), 35 | buffer: require.resolve('buffer/'), 36 | }, 37 | }, 38 | }; 39 | 40 | module.exports = () => { 41 | config.mode = 'development'; 42 | 43 | return config; 44 | }; 45 | --------------------------------------------------------------------------------