Releases: algorandfoundation/algokit-utils-ts
v8.0.1-beta.1
8.0.1-beta.1 (2024-12-06)
Bug Fixes
v7.0.1
v8.0.0
8.0.0 (2024-11-25)
⚠ BREAKING CHANGES
Whilst we aim to minimise breaking changes by slowly deprecating features, unfortunately there are situations where they are required. We have been diligent and provided JSDoc deprecations where we can, however there are some scenarios where we've needed to make breaking changes. These breaking changes, along with the migrations paths are documented in the migration guide, which we recommend using to help with your migration.
Details:
- Old indexer types deprecated and new types from algosdk@3 have breaking changes
- Many breaking changes due to updating to algosdk@3. See algosdk migration guide
Features
v8.0.0-beta.1
8.0.0-beta.1 (2024-11-25)
⚠ BREAKING CHANGES
- Old indexer types deprecated and new types breaking
- Many breaking changes per algosdk v3
Features
- algosdk@3 support (828af64)
- Allowing address type for local state access in app client (368ad31)
- Deprecating old indexer types (924bf9b)
Bug Fixes
- add algosdk package paths as externals (aa373f2)
Dependencies and Other Build Updates
- Fixing linting errors (3ed0148)
v7.0.0
7.0.0 (2024-11-25)
⚠ BREAKING CHANGES
Whilst we aim to minimise breaking changes by slowly deprecating features, unfortunately there are situations where they are required. We have been diligent and provided JSDoc deprecations where we can, however there are some scenarios where we've needed to make breaking changes. These breaking changes, along with the migrations paths are documented in the migration guide, which we recommend using to help with your migration.
Details:
- Changed AlgokitComposer from a default export to a named export
- Renamed AlgokitComposer to TransactionComposer
- Removed the default export for AlgorandClient
- ExecuteParams has been renamed to SendParam and moved from
/types/composer
to/types/transactions
- Renamed
algorand.setSuggestedParamsTimeout
toalgorand.setSuggestedParamsCacheTimeout
addMethodCall
andaddAppCall
on the TransactionComposer have been broken down into more specific versionspersistSourceMaps
takesappManager
rather thanclient
now- App call param
clearProgram
has been renamed toclearStateProgram
- App call param
extraPages
has been renamed toextraProgramPages
algorand.transactions.*
has been renamed toalgorand. createTransaction.*
algorand.send.*(params, executeOptions)
signature has been change to collapseexecuteOptions
into paramsalgorand.account.rekeyed
param order has been switched- All micro algo number values returned from
algorand.account.getInformation()
now return anAlgoAmount
type algorand.account.getInformation()
result returnsamount
andvalidAsOfRound
, instead ofbalance
andround
.algorand.account.getAssetInformation()
toalgorand.asset.getAccountInformation()
- The
algorand.client.getAppClientBy*()
methods return anAppClient
rather than anApplicationClient
Features
Deprecates the following in favour of new AlgorandClient
exposed functionality:
- algokit.createAsset
- algokit.assetOptIn
- algokit.assetOptOut
- algokit.assetBulkOptIn
- algokit.assetBulkOptOut
- algokit.ensureFunded
- algokit.transferAsset
- algokit.rekeyAccount
- algokit.transferAlgos
- createApp -> algorand.send.appCreate() / algorand.transactions.appCreate() / algorand.send.appCreateMethodCall() / algorand.transactions.appCreateMethodCall()
- updateApp -> algorand.send.appUpdate() / algorand.transactions.appUpdate() / algorand.send.appUpdateMethodCall() / algorand.transactions.appUpdateMethodCall()
- callApp -> algorand.send.appUpdate() / algorand.transactions.appUpdate() / algorand.send.appUpdateMethodCall() / algorand.transactions.appUpdateMethodCall()
- deployApp -> algorand.appDeployer.deploy
- getCreatorAppsByName -> algorand.appDeployer.getCreatorAppsByName
- getABIReturn -> AppManager.getABIReturn
- getAppGlobalState -> (await appManager.getById(appId)).globalState
- getAppLocalState -> algorand.app.getLocalState
- getAppBoxNames -> algorand.app.getBoxNames
- getAppBoxValue -> algorand.app.getBoxValue
- getAppBoxValues -> algorand.app.getBoxValues
- getAppBoxValueFromABIType -> algorand.app.getAppBoxValueFromABIType
- getBoxValueFromABIType -> algorand.app.getAppBoxValuesFromABIType
- decodeAppState -> AppManager.decodeAppState
- getBoxReference -> AppManager.getBoxReference
- getAppById -> algorand.app.getById
- compileTeal -> algorand.app.compileTeal
- performTemplateSubstitutionAndCompile -> algorand.appManager.compileTealTemplate
- replaceDeployTimeControlParams -> AppManager.replaceTealTemplateDeployTimeControlParams
- performTemplateSubstitution -> AppManager.replaceTealTemplateParams
- stripTealComments -> AppManager.stripTealComments
- getAppOnCompleteAction -> algosdk.OnApplicationComplete
- getABIMethodSignature -> abiMethod.getSignature() / new ABIMethod(abiMethodParams).getSignature()
- getAppArgsForTransaction
- getAppArgsForABICall
- isSchemaIsBroken
- getAppDeploymentTransactionNote
- getAppClient -> algorand.client.getAppClientById, algorand.client.getAppClientByCreatorAndName or algorand.client.getAppFactory (for create or deploy)
- getAppClientById -> algorand.client.getAppClientById or algorand.client.getAppFactory (for create or deploy)
- getAppClientByCreatorAndName -> algorand.client.getAppClientByCreatorAndName or algorand.client.getAppFactory (for create or deploy)
- encodeTransactionNote -> AlgoKitComposer.arc2Note for ARC-2 and let devs convert to string or Uint8Array themselves otherwise
- getSenderAddress -> Use algorand.client to interact with accounts, and use .addr to get the address and/or move from using SendTransactionFrom to TransactionSignerAccount and use .addr instead.
- getTransactionWithSigner -> Use AlgorandClient / AlgoKitComposer to construct transactions instead or construct an algosdk.TransactionWithSigner manually instead.
- getSenderTransactionSigner -> Use TransactionSignerAccount instead of SendTransactionFrom or use algosdk.makeBasicAccountTransactionSigner / algosdk.makeLogicSigAccountTransactionSigner.
- signTransaction -> Use AlgorandClient / AlgoKitComposer to sign transactions or use the relevant underlying account.signTxn / algosdk.signLogicSigTransactionObject / multiSigAccount.sign / TransactionSigner methods directly.
- sendTransaction -> Use AlgorandClient / AlgoKitComposer to send transactions.
- sendParams property in the input to sendAtomicTransactionComposer -> new executeParams property
- performAtomicTransactionComposerDryrun (deprecated Algorand feature)
- sendGroupOfTransactions -> Use AlgoKitComposer (algorand.newGroup()) or AtomicTransactionComposer to construct and send group transactions instead.
- capTransactionFee -> Use AlgoKitComposer and the maxFee field in the transaction params instead.
- controlFees -> Use AlgoKitComposer and the maxFee and staticFee fields in the transaction params instead.
- getTransactionParams -> Use suggestedParams ? { ...suggestedParams } : await algod.getTransactionParams().do() instead (AlgoKitComposer takes care of this for you so not likely to be needed anymore)
- getAtomicTransactionComposerTransactions -> Use atc.clone().buildGroup() instead.
- ApplicationClient -> AppClient and AppFactory
- algorand.client.getAppClientByCreatorAndName returns an AppClient rather than an ApplicationClient
- algorand.client.getAppClientById returns an AppClient rather than an ApplicationClient
Changes:
- Added ARC56 support
- Added support for asset and asset transfer related feature to the
AlgorandClient
abstractions and deprecate the older stateless functions - Added support for app management related feature to the
AlgorandClient
abstractions and deprecate the older stateless functions - Added support for app call related feature to the
AlgorandClient
abstractions and deprecate the older stateless functions - Implemented all other relevant
AlgorandClient
related abstractions - Updated utils to support puya debugging
Bug Fixes
- fixed various bugs in
AlgokitComposer
related to handling app call transactions - prevent base64 in a program from being detected as a comment that can be stripped (ee02a5d)
v7.0.0-beta.25
7.0.0-beta.25 (2024-11-25)
v7.0.0-beta.24
7.0.0-beta.24 (2024-11-22)
Features
- add support for offline key registration (fd98a1d)
Bug Fixes
- handle a voteFirst value of 0 (c9127c9)
v7.0.0-alpha.3
v7.0.0-alpha.2
v7.0.0-alpha.1
7.0.0-alpha.1 (2024-11-14)
⚠ BREAKING CHANGES
-
Old indexer types deprecated and new types breaking
-
Many breaking changes per algosdk v3
-
Technically this is a breaking change, but typed generator
was incorrectly classing them as number and otherwise people were using ABIValue
which doesn't specify the type so detection is ideally needed anyway so impact is likely low. -
AppClient.compile (and appClient.compile, and appFactory.compile) return
compiledApproval
andcompiledClear
again
This reverted the last commit after a reflection that the more explicit naming was actually confusing since it meant
the return of this method different from the return from create/update calls and consistency was better. The fact there is now jsdoc
comments means that the property names from the compile method are able to be quickly understood. -
ExecuteParams
has been moved fromtypes/composer
totypes/transaction
-
feat: Added
AppClient
as an ARC-56 compatible non-typed application client -
feat: Added
AppFactory
as an ARC-32/ARC-56 compatible mechanism to create and deploy apps and create app clients
test: Added test coverage of AppClient and AppFactory -
persistSourceMaps
takesappManager
rather thanclient
now -
docs: Added migration guide and app-client documentation
feat: Added appClient.params.fundAppAccount and appClient.transactions.fundAppAccount
fix: Allow extraProgramPages to be passed into create and deploy call as override -
feat: Proper ARC-56 struct support
feat: Added a number of methods and types to ARC-56 to make interacting with it easier -
Linting and PR review
-
feat: ARC-56 Typed client support
-
feat: Added logging when sending app calls
-
fix: Fixing minor bugs
-
fixes
-
feat: Finalised typed app client construction methods
-
PR feedback
-
feat: AlgoAmount microAlgo/s property now returns a bigint
-
microAlgo/s property in AlgoAmount now returns a bigint
-
Renamed
clearProgram
toclearStateProgram
andextraPages
toextraProgramPages
inAlgoKitComposer
to match algod api -
Numerous
Features
- add support for abi methods calls as default values (#339) (288b867)
- add support for cloning an app client (#336) (6a7750b)
- algosdk@3 support (828af64)
- Allowing address type for local state access in app client (368ad31)
- app client deprecation (#311) (0cd0743)
- Convert ABI return values that are uint<53 to number rather than bigint (#322) (ee8338a)
- Deprecate transfer and asset modules (#291) (b2c0f91)
- Deprecating old indexer types (924bf9b)
- Readonly calls from app client now don't invoke signing (#321) (9c3897e)
- support fixSigners in simulate (8d7e4d0)
- support latest ARC56 source mapping (including cblock offset) (#333) (cfa6518)
- V7 tweaks (#317) (eebb653)
Bug Fixes
- add app client support for nested method call (#330) (b538731)
- bigint template variables (#312) (5e63c0e)
- correct the readonly handling (65c4e36)
- map app call args in composer (#316) (7c1fabb)
- prevent base64 from being detected as a comment that can be stripped (ee02a5d)
- Solving problem with populate resources not working for readonly calls (#319) (ced7cb8)
Dependencies and Other Build Updates
- Fixing linting errors (3ed0148)