diff --git a/docs/code/README.md b/docs/code/README.md index 53ece411..1383595d 100644 --- a/docs/code/README.md +++ b/docs/code/README.md @@ -36,12 +36,14 @@ - [types/client-manager](modules/types_client_manager.md) - [types/client-manager.spec](modules/types_client_manager_spec.md) - [types/composer](modules/types_composer.md) +- [types/composer.spec](modules/types_composer_spec.md) - [types/config](modules/types_config.md) - [types/debugging](modules/types_debugging.md) - [types/dispenser-client](modules/types_dispenser_client.md) - [types/dispenser-client.spec](modules/types_dispenser_client_spec.md) - [types/expand](modules/types_expand.md) - [types/indexer](modules/types_indexer.md) +- [types/instance-of](modules/types_instance_of.md) - [types/kmd-account-manager](modules/types_kmd_account_manager.md) - [types/lifecycle-events](modules/types_lifecycle_events.md) - [types/logging](modules/types_logging.md) diff --git a/docs/code/classes/types_algorand_client.AlgorandClient.md b/docs/code/classes/types_algorand_client.AlgorandClient.md index f2ef1ad5..a1f66e7a 100644 --- a/docs/code/classes/types_algorand_client.AlgorandClient.md +++ b/docs/code/classes/types_algorand_client.AlgorandClient.md @@ -23,6 +23,7 @@ A client that brokers easy access to Algorand functionality. - [\_cachedSuggestedParamsTimeout](types_algorand_client.AlgorandClient.md#_cachedsuggestedparamstimeout) - [\_clientManager](types_algorand_client.AlgorandClient.md#_clientmanager) - [\_defaultValidityWindow](types_algorand_client.AlgorandClient.md#_defaultvaliditywindow) +- [\_errorTransformers](types_algorand_client.AlgorandClient.md#_errortransformers) - [\_transactionCreator](types_algorand_client.AlgorandClient.md#_transactioncreator) - [\_transactionSender](types_algorand_client.AlgorandClient.md#_transactionsender) @@ -40,12 +41,14 @@ A client that brokers easy access to Algorand functionality. - [getSuggestedParams](types_algorand_client.AlgorandClient.md#getsuggestedparams) - [newGroup](types_algorand_client.AlgorandClient.md#newgroup) +- [registerErrorTransformer](types_algorand_client.AlgorandClient.md#registererrortransformer) - [setDefaultSigner](types_algorand_client.AlgorandClient.md#setdefaultsigner) - [setDefaultValidityWindow](types_algorand_client.AlgorandClient.md#setdefaultvaliditywindow) - [setSigner](types_algorand_client.AlgorandClient.md#setsigner) - [setSignerFromAccount](types_algorand_client.AlgorandClient.md#setsignerfromaccount) - [setSuggestedParamsCache](types_algorand_client.AlgorandClient.md#setsuggestedparamscache) - [setSuggestedParamsCacheTimeout](types_algorand_client.AlgorandClient.md#setsuggestedparamscachetimeout) +- [unregisterErrorTransformer](types_algorand_client.AlgorandClient.md#unregistererrortransformer) - [defaultLocalNet](types_algorand_client.AlgorandClient.md#defaultlocalnet) - [fromClients](types_algorand_client.AlgorandClient.md#fromclients) - [fromConfig](types_algorand_client.AlgorandClient.md#fromconfig) @@ -71,7 +74,7 @@ A client that brokers easy access to Algorand functionality. #### Defined in -[src/types/algorand-client.ts:33](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L33) +[src/types/algorand-client.ts:40](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L40) ## Properties @@ -165,6 +168,20 @@ ___ ___ +### \_errorTransformers + +• `Private` **\_errorTransformers**: `Set`\<[`ErrorTransformer`](../modules/types_composer.md#errortransformer)\> + +A set of error transformers to use when an error is caught in simulate or execute +`registerErrorTransformer` and `unregisterErrorTransformer` can be used to add and remove +error transformers from the set. + +#### Defined in + +[src/types/algorand-client.ts:38](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L38) + +___ + ### \_transactionCreator • `Private` **\_transactionCreator**: [`AlgorandClientTransactionCreator`](types_algorand_client_transaction_creator.AlgorandClientTransactionCreator.md) @@ -205,7 +222,7 @@ const accountManager = AlgorandClient.mainNet().account; #### Defined in -[src/types/algorand-client.ts:175](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L175) +[src/types/algorand-client.ts:182](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L182) ___ @@ -229,7 +246,7 @@ const appManager = AlgorandClient.mainNet().app; #### Defined in -[src/types/algorand-client.ts:195](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L195) +[src/types/algorand-client.ts:202](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L202) ___ @@ -253,7 +270,7 @@ const deployer = AlgorandClient.mainNet().appDeployer; #### Defined in -[src/types/algorand-client.ts:205](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L205) +[src/types/algorand-client.ts:212](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L212) ___ @@ -277,7 +294,7 @@ const assetManager = AlgorandClient.mainNet().asset; #### Defined in -[src/types/algorand-client.ts:185](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L185) +[src/types/algorand-client.ts:192](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L192) ___ @@ -301,7 +318,7 @@ const clientManager = AlgorandClient.mainNet().client; #### Defined in -[src/types/algorand-client.ts:165](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L165) +[src/types/algorand-client.ts:172](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L172) ___ @@ -329,7 +346,7 @@ const payment = await AlgorandClient.mainNet().createTransaction.payment({ #### Defined in -[src/types/algorand-client.ts:250](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L250) +[src/types/algorand-client.ts:269](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L269) ___ @@ -357,7 +374,7 @@ const result = await AlgorandClient.mainNet().send.payment({ #### Defined in -[src/types/algorand-client.ts:236](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L236) +[src/types/algorand-client.ts:255](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L255) ## Methods @@ -381,7 +398,7 @@ const params = await AlgorandClient.mainNet().getSuggestedParams(); #### Defined in -[src/types/algorand-client.ts:144](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L144) +[src/types/algorand-client.ts:151](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L151) ___ @@ -406,7 +423,30 @@ const result = await composer.addTransaction(payment).send() #### Defined in -[src/types/algorand-client.ts:216](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L216) +[src/types/algorand-client.ts:234](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L234) + +___ + +### registerErrorTransformer + +▸ **registerErrorTransformer**(`transformer`): `void` + +Register a function that will be used to transform an error caught when simulating or executing +composed transaction groups made from `newGroup` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `transformer` | [`ErrorTransformer`](../modules/types_composer.md#errortransformer) | + +#### Returns + +`void` + +#### Defined in + +[src/types/algorand-client.ts:220](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L220) ___ @@ -437,7 +477,7 @@ const algorand = AlgorandClient.mainNet().setDefaultSigner(signer) #### Defined in -[src/types/algorand-client.ts:67](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L67) +[src/types/algorand-client.ts:74](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L74) ___ @@ -467,7 +507,7 @@ const algorand = AlgorandClient.mainNet().setDefaultValidityWindow(1000); #### Defined in -[src/types/algorand-client.ts:52](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L52) +[src/types/algorand-client.ts:59](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L59) ___ @@ -499,7 +539,7 @@ const algorand = AlgorandClient.mainNet().setSigner(signer.addr, signer.signer) #### Defined in -[src/types/algorand-client.ts:103](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L103) +[src/types/algorand-client.ts:110](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L110) ___ @@ -534,7 +574,7 @@ const accountManager = AlgorandClient.mainNet() #### Defined in -[src/types/algorand-client.ts:87](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L87) +[src/types/algorand-client.ts:94](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L94) ___ @@ -565,7 +605,7 @@ const algorand = AlgorandClient.mainNet().setSuggestedParamsCache(suggestedParam #### Defined in -[src/types/algorand-client.ts:118](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L118) +[src/types/algorand-client.ts:125](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L125) ___ @@ -595,7 +635,27 @@ const algorand = AlgorandClient.mainNet().setSuggestedParamsCacheTimeout(10_000) #### Defined in -[src/types/algorand-client.ts:133](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L133) +[src/types/algorand-client.ts:140](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L140) + +___ + +### unregisterErrorTransformer + +▸ **unregisterErrorTransformer**(`transformer`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `transformer` | [`ErrorTransformer`](../modules/types_composer.md#errortransformer) | + +#### Returns + +`void` + +#### Defined in + +[src/types/algorand-client.ts:224](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L224) ___ @@ -619,7 +679,7 @@ const algorand = AlgorandClient.defaultLocalNet(); #### Defined in -[src/types/algorand-client.ts:262](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L262) +[src/types/algorand-client.ts:281](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L281) ___ @@ -649,7 +709,7 @@ const algorand = AlgorandClient.fromClients({ algod, indexer, kmd }); #### Defined in -[src/types/algorand-client.ts:305](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L305) +[src/types/algorand-client.ts:324](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L324) ___ @@ -679,7 +739,7 @@ const client = AlgorandClient.fromConfig({ algodConfig, indexerConfig, kmdConfig #### Defined in -[src/types/algorand-client.ts:339](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L339) +[src/types/algorand-client.ts:358](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L358) ___ @@ -716,7 +776,7 @@ const client = AlgorandClient.fromEnvironment(); #### Defined in -[src/types/algorand-client.ts:328](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L328) +[src/types/algorand-client.ts:347](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L347) ___ @@ -740,7 +800,7 @@ const algorand = AlgorandClient.mainNet(); #### Defined in -[src/types/algorand-client.ts:290](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L290) +[src/types/algorand-client.ts:309](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L309) ___ @@ -764,4 +824,4 @@ const algorand = AlgorandClient.testNet(); #### Defined in -[src/types/algorand-client.ts:276](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L276) +[src/types/algorand-client.ts:295](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/algorand-client.ts#L295) diff --git a/docs/code/classes/types_app_client.AppClient.md b/docs/code/classes/types_app_client.AppClient.md index 2853c55c..cc3e71c8 100644 --- a/docs/code/classes/types_app_client.AppClient.md +++ b/docs/code/classes/types_app_client.AppClient.md @@ -316,7 +316,7 @@ A reference to the underlying `AlgorandClient` this app client is using. #### Defined in -[src/types/app-client.ts:678](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L678) +[src/types/app-client.ts:679](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L679) ___ @@ -332,7 +332,7 @@ The app address of the app instance this client is linked to. #### Defined in -[src/types/app-client.ts:663](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L663) +[src/types/app-client.ts:664](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L664) ___ @@ -348,7 +348,7 @@ The ID of the app instance this client is linked to. #### Defined in -[src/types/app-client.ts:658](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L658) +[src/types/app-client.ts:659](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L659) ___ @@ -364,7 +364,7 @@ The name of the app (from the ARC-32 / ARC-56 app spec or override). #### Defined in -[src/types/app-client.ts:668](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L668) +[src/types/app-client.ts:669](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L669) ___ @@ -380,7 +380,7 @@ The ARC-56 app spec being used #### Defined in -[src/types/app-client.ts:673](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L673) +[src/types/app-client.ts:674](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L674) ___ @@ -396,7 +396,7 @@ Create transactions for the current app #### Defined in -[src/types/app-client.ts:702](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L702) +[src/types/app-client.ts:703](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L703) ___ @@ -429,7 +429,7 @@ await appClient.send.call({method: 'my_method2', args: [myMethodCall]}) #### Defined in -[src/types/app-client.ts:697](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L697) +[src/types/app-client.ts:698](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L698) ___ @@ -445,7 +445,7 @@ Send transactions to the current app #### Defined in -[src/types/app-client.ts:707](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L707) +[src/types/app-client.ts:708](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L708) ___ @@ -475,7 +475,7 @@ Get state (local, global, box) from the current app #### Defined in -[src/types/app-client.ts:712](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L712) +[src/types/app-client.ts:713](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L713) ## Methods @@ -511,7 +511,7 @@ const appClient2 = appClient.clone({ defaultSender: 'NEW_SENDER_ADDRESS' }) #### Defined in -[src/types/app-client.ts:566](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L566) +[src/types/app-client.ts:567](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L567) ___ @@ -541,7 +541,7 @@ The compiled code and any compilation results (including source maps) #### Defined in -[src/types/app-client.ts:943](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L943) +[src/types/app-client.ts:944](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L944) ___ @@ -559,7 +559,7 @@ The source maps #### Defined in -[src/types/app-client.ts:882](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L882) +[src/types/app-client.ts:883](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L883) ___ @@ -585,7 +585,7 @@ The new error, or if there was no logic error or source map then the wrapped err #### Defined in -[src/types/app-client.ts:860](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L860) +[src/types/app-client.ts:861](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L861) ___ @@ -634,7 +634,7 @@ await appClient.fundAppAccount({ amount: algo(1) }) #### Defined in -[src/types/app-client.ts:741](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L741) +[src/types/app-client.ts:742](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L742) ___ @@ -661,7 +661,7 @@ It does this by replacing any `undefined` values with the equivalent default val #### Defined in -[src/types/app-client.ts:1101](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1101) +[src/types/app-client.ts:1102](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1102) ___ @@ -685,7 +685,7 @@ A tuple with: [ARC-56 `Method`, algosdk `ABIMethod`] #### Defined in -[src/types/app-client.ts:910](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L910) +[src/types/app-client.ts:911](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L911) ___ @@ -713,7 +713,7 @@ ___ #### Defined in -[src/types/app-client.ts:1551](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1551) +[src/types/app-client.ts:1542](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1542) ___ @@ -736,7 +736,7 @@ ___ #### Defined in -[src/types/app-client.ts:1213](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1213) +[src/types/app-client.ts:1214](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1214) ___ @@ -764,7 +764,7 @@ ___ #### Defined in -[src/types/app-client.ts:1538](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1538) +[src/types/app-client.ts:1529](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1529) ___ @@ -787,7 +787,7 @@ ___ #### Defined in -[src/types/app-client.ts:1178](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1178) +[src/types/app-client.ts:1179](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1179) ___ @@ -810,7 +810,7 @@ ___ #### Defined in -[src/types/app-client.ts:1242](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1242) +[src/types/app-client.ts:1243](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1243) ___ @@ -831,7 +831,7 @@ ___ #### Defined in -[src/types/app-client.ts:1592](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1592) +[src/types/app-client.ts:1584](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1584) ___ @@ -855,7 +855,7 @@ const boxNames = await appClient.getBoxNames() #### Defined in -[src/types/app-client.ts:778](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L778) +[src/types/app-client.ts:779](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L779) ___ @@ -885,7 +885,7 @@ const boxValue = await appClient.getBoxValue('boxName') #### Defined in -[src/types/app-client.ts:791](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L791) +[src/types/app-client.ts:792](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L792) ___ @@ -916,7 +916,7 @@ const boxValue = await appClient.getBoxValueFromABIType('boxName', new ABIUintTy #### Defined in -[src/types/app-client.ts:805](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L805) +[src/types/app-client.ts:806](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L806) ___ @@ -947,7 +947,7 @@ const boxValues = await appClient.getBoxValues() #### Defined in -[src/types/app-client.ts:823](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L823) +[src/types/app-client.ts:824](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L824) ___ @@ -979,7 +979,7 @@ const boxValues = await appClient.getBoxValuesFromABIType(new ABIUintType(32)) #### Defined in -[src/types/app-client.ts:843](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L843) +[src/types/app-client.ts:844](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L844) ___ @@ -1003,7 +1003,7 @@ const globalState = await appClient.getGlobalState() #### Defined in -[src/types/app-client.ts:753](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L753) +[src/types/app-client.ts:754](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L754) ___ @@ -1033,7 +1033,7 @@ const localState = await appClient.getLocalState('ACCOUNT_ADDRESS') #### Defined in -[src/types/app-client.ts:766](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L766) +[src/types/app-client.ts:767](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L767) ___ @@ -1056,7 +1056,7 @@ ___ #### Defined in -[src/types/app-client.ts:1467](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1467) +[src/types/app-client.ts:1458](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1458) ___ @@ -1079,7 +1079,7 @@ ___ #### Defined in -[src/types/app-client.ts:1275](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1275) +[src/types/app-client.ts:1276](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1276) ___ @@ -1102,7 +1102,7 @@ ___ #### Defined in -[src/types/app-client.ts:1337](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1337) +[src/types/app-client.ts:1338](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1338) ___ @@ -1125,7 +1125,7 @@ if none provided and throws an error if neither provided #### Defined in -[src/types/app-client.ts:1521](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1521) +[src/types/app-client.ts:1512](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1512) ___ @@ -1150,7 +1150,7 @@ or `undefined` otherwise (so the signer is resolved from `AlgorandClient`) #### Defined in -[src/types/app-client.ts:1531](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1531) +[src/types/app-client.ts:1522](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1522) ___ @@ -1179,35 +1179,29 @@ ___ #### Defined in -[src/types/app-client.ts:1662](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1662) +[src/types/app-client.ts:1654](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1654) ___ ### handleCallErrors -▸ **handleCallErrors**\<`TResult`\>(`call`): `Promise`\<`TResult`\> +▸ **handleCallErrors**(`e`): `Promise`\<`Error`\> Make the given call and catch any errors, augmenting with debugging information before re-throwing. -#### Type parameters - -| Name | -| :------ | -| `TResult` | - #### Parameters | Name | Type | | :------ | :------ | -| `call` | () => `Promise`\<`TResult`\> | +| `e` | `Error` | #### Returns -`Promise`\<`TResult`\> +`Promise`\<`Error`\> #### Defined in -[src/types/app-client.ts:1575](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1575) +[src/types/app-client.ts:1566](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1566) ___ @@ -1229,7 +1223,7 @@ Import source maps for the app. #### Defined in -[src/types/app-client.ts:899](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L899) +[src/types/app-client.ts:900](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L900) ___ @@ -1264,7 +1258,7 @@ The smart contract response with an updated return value #### Defined in -[src/types/app-client.ts:924](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L924) +[src/types/app-client.ts:925](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L925) ___ @@ -1296,7 +1290,7 @@ The compiled code and any compilation results (including source maps) #### Defined in -[src/types/app-client.ts:1048](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1048) +[src/types/app-client.ts:1049](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1049) ___ @@ -1329,7 +1323,7 @@ The new error, or if there was no logic error or source map then the wrapped err #### Defined in -[src/types/app-client.ts:964](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L964) +[src/types/app-client.ts:965](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L965) ___ @@ -1374,7 +1368,7 @@ const appClient = await AppClient.fromCreatorAndName({ #### Defined in -[src/types/app-client.ts:594](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L594) +[src/types/app-client.ts:595](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L595) ___ @@ -1416,7 +1410,7 @@ const appClient = await AppClient.fromNetwork({ #### Defined in -[src/types/app-client.ts:623](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L623) +[src/types/app-client.ts:624](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L624) ___ @@ -1447,4 +1441,4 @@ const arc56AppSpec = AppClient.normaliseAppSpec(appSpec) #### Defined in -[src/types/app-client.ts:651](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L651) +[src/types/app-client.ts:652](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L652) diff --git a/docs/code/classes/types_app_client.ApplicationClient.md b/docs/code/classes/types_app_client.ApplicationClient.md index c084c99d..bcc2c015 100644 --- a/docs/code/classes/types_app_client.ApplicationClient.md +++ b/docs/code/classes/types_app_client.ApplicationClient.md @@ -92,7 +92,7 @@ Create a new ApplicationClient instance #### Defined in -[src/types/app-client.ts:1789](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1789) +[src/types/app-client.ts:1781](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1781) ## Properties @@ -102,7 +102,7 @@ Create a new ApplicationClient instance #### Defined in -[src/types/app-client.ts:1772](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1772) +[src/types/app-client.ts:1764](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1764) ___ @@ -112,7 +112,7 @@ ___ #### Defined in -[src/types/app-client.ts:1771](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1771) +[src/types/app-client.ts:1763](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1763) ___ @@ -122,7 +122,7 @@ ___ #### Defined in -[src/types/app-client.ts:1774](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1774) +[src/types/app-client.ts:1766](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1766) ___ @@ -132,7 +132,7 @@ ___ #### Defined in -[src/types/app-client.ts:1776](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1776) +[src/types/app-client.ts:1768](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1768) ___ @@ -142,7 +142,7 @@ ___ #### Defined in -[src/types/app-client.ts:1777](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1777) +[src/types/app-client.ts:1769](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1769) ___ @@ -152,7 +152,7 @@ ___ #### Defined in -[src/types/app-client.ts:1773](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1773) +[src/types/app-client.ts:1765](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1765) ___ @@ -162,7 +162,7 @@ ___ #### Defined in -[src/types/app-client.ts:1763](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1763) +[src/types/app-client.ts:1755](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1755) ___ @@ -172,7 +172,7 @@ ___ #### Defined in -[src/types/app-client.ts:1765](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1765) +[src/types/app-client.ts:1757](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1757) ___ @@ -182,7 +182,7 @@ ___ #### Defined in -[src/types/app-client.ts:1769](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1769) +[src/types/app-client.ts:1761](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1761) ___ @@ -192,7 +192,7 @@ ___ #### Defined in -[src/types/app-client.ts:1768](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1768) +[src/types/app-client.ts:1760](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1760) ___ @@ -202,7 +202,7 @@ ___ #### Defined in -[src/types/app-client.ts:1764](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1764) +[src/types/app-client.ts:1756](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1756) ___ @@ -212,7 +212,7 @@ ___ #### Defined in -[src/types/app-client.ts:1767](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1767) +[src/types/app-client.ts:1759](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1759) ___ @@ -222,7 +222,7 @@ ___ #### Defined in -[src/types/app-client.ts:1766](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1766) +[src/types/app-client.ts:1758](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1758) ## Methods @@ -250,7 +250,7 @@ Issues a no_op (normal) call to the app. #### Defined in -[src/types/app-client.ts:2112](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2112) +[src/types/app-client.ts:2104](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2104) ___ @@ -279,7 +279,7 @@ Issues a call to the app with the given call type. #### Defined in -[src/types/app-client.ts:2194](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2194) +[src/types/app-client.ts:2186](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2186) ___ @@ -307,7 +307,7 @@ Issues a clear_state call to the app. #### Defined in -[src/types/app-client.ts:2171](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2171) +[src/types/app-client.ts:2163](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2163) ___ @@ -335,7 +335,7 @@ Issues a close_out call to the app. #### Defined in -[src/types/app-client.ts:2160](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2160) +[src/types/app-client.ts:2152](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2152) ___ @@ -363,7 +363,7 @@ Compiles the approval and clear state programs and sets up the source map. #### Defined in -[src/types/app-client.ts:1828](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1828) +[src/types/app-client.ts:1820](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1820) ___ @@ -391,7 +391,7 @@ Creates a smart contract app, returns the details of the created app. #### Defined in -[src/types/app-client.ts:2007](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2007) +[src/types/app-client.ts:1999](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1999) ___ @@ -419,7 +419,7 @@ Issues a delete_application call to the app. #### Defined in -[src/types/app-client.ts:2182](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2182) +[src/types/app-client.ts:2174](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2174) ___ @@ -453,7 +453,7 @@ To understand the architecture decisions behind this functionality please see ht #### Defined in -[src/types/app-client.ts:1896](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1896) +[src/types/app-client.ts:1888](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1888) ___ @@ -471,7 +471,7 @@ The source maps #### Defined in -[src/types/app-client.ts:1861](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1861) +[src/types/app-client.ts:1853](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1853) ___ @@ -498,7 +498,7 @@ The new error, or if there was no logic error or source map then the wrapped err #### Defined in -[src/types/app-client.ts:2516](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2516) +[src/types/app-client.ts:2508](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2508) ___ @@ -522,7 +522,7 @@ The result of the funding #### Defined in -[src/types/app-client.ts:2233](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2233) +[src/types/app-client.ts:2225](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2225) ___ @@ -546,7 +546,7 @@ The ABI method for the given method #### Defined in -[src/types/app-client.ts:2474](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2474) +[src/types/app-client.ts:2466](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2466) ___ @@ -574,7 +574,7 @@ Returns the ABI Method parameters for the given method name string for the app r #### Defined in -[src/types/app-client.ts:2452](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2452) +[src/types/app-client.ts:2444](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2444) ___ @@ -594,7 +594,7 @@ ___ #### Defined in -[src/types/app-client.ts:2532](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2532) +[src/types/app-client.ts:2524](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2524) ___ @@ -617,7 +617,7 @@ Gets the reference information for the current application instance. #### Defined in -[src/types/app-client.ts:2486](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2486) +[src/types/app-client.ts:2478](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2478) ___ @@ -635,7 +635,7 @@ The names of the boxes #### Defined in -[src/types/app-client.ts:2289](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2289) +[src/types/app-client.ts:2281](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2281) ___ @@ -659,7 +659,7 @@ The current box value as a byte array #### Defined in -[src/types/app-client.ts:2304](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2304) +[src/types/app-client.ts:2296](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2296) ___ @@ -684,7 +684,7 @@ The current box value as a byte array #### Defined in -[src/types/app-client.ts:2320](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2320) +[src/types/app-client.ts:2312](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2312) ___ @@ -709,7 +709,7 @@ The (name, value) pair of the boxes with values as raw byte arrays #### Defined in -[src/types/app-client.ts:2336](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2336) +[src/types/app-client.ts:2328](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2328) ___ @@ -735,7 +735,7 @@ The (name, value) pair of the boxes with values as the ABI Value #### Defined in -[src/types/app-client.ts:2358](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2358) +[src/types/app-client.ts:2350](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2350) ___ @@ -764,7 +764,7 @@ Returns the arguments for an app call for the given ABI method or raw method spe #### Defined in -[src/types/app-client.ts:2382](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2382) +[src/types/app-client.ts:2374](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2374) ___ @@ -782,7 +782,7 @@ The global state #### Defined in -[src/types/app-client.ts:2261](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2261) +[src/types/app-client.ts:2253](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2253) ___ @@ -806,7 +806,7 @@ The global state #### Defined in -[src/types/app-client.ts:2275](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2275) +[src/types/app-client.ts:2267](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2267) ___ @@ -828,7 +828,7 @@ Import source maps for the app. #### Defined in -[src/types/app-client.ts:1878](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1878) +[src/types/app-client.ts:1870](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1870) ___ @@ -856,7 +856,7 @@ Issues a opt_in call to the app. #### Defined in -[src/types/app-client.ts:2149](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2149) +[src/types/app-client.ts:2141](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2141) ___ @@ -884,4 +884,4 @@ Updates the smart contract app. #### Defined in -[src/types/app-client.ts:2071](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2071) +[src/types/app-client.ts:2063](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2063) diff --git a/docs/code/classes/types_composer.TransactionComposer.md b/docs/code/classes/types_composer.TransactionComposer.md index 211f3841..a7a1281c 100644 --- a/docs/code/classes/types_composer.TransactionComposer.md +++ b/docs/code/classes/types_composer.TransactionComposer.md @@ -19,6 +19,7 @@ TransactionComposer helps you compose and execute transactions as a transaction - [atc](types_composer.TransactionComposer.md#atc) - [defaultValidityWindow](types_composer.TransactionComposer.md#defaultvaliditywindow) - [defaultValidityWindowIsExplicit](types_composer.TransactionComposer.md#defaultvaliditywindowisexplicit) +- [errorTransformers](types_composer.TransactionComposer.md#errortransformers) - [getSigner](types_composer.TransactionComposer.md#getsigner) - [getSuggestedParams](types_composer.TransactionComposer.md#getsuggestedparams) - [txnMaxFees](types_composer.TransactionComposer.md#txnmaxfees) @@ -65,8 +66,10 @@ TransactionComposer helps you compose and execute transactions as a transaction - [count](types_composer.TransactionComposer.md#count) - [execute](types_composer.TransactionComposer.md#execute) - [rebuild](types_composer.TransactionComposer.md#rebuild) +- [registerErrorTransformer](types_composer.TransactionComposer.md#registererrortransformer) - [send](types_composer.TransactionComposer.md#send) - [simulate](types_composer.TransactionComposer.md#simulate) +- [transformError](types_composer.TransactionComposer.md#transformerror) - [arc2Note](types_composer.TransactionComposer.md#arc2note) ## Constructors @@ -91,7 +94,7 @@ The `TransactionComposer` instance #### Defined in -[src/types/composer.ts:559](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L559) +[src/types/composer.ts:608](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L608) ## Properties @@ -103,7 +106,7 @@ The algod client used by the composer. #### Defined in -[src/types/composer.ts:538](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L538) +[src/types/composer.ts:563](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L563) ___ @@ -113,7 +116,7 @@ ___ #### Defined in -[src/types/composer.ts:552](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L552) +[src/types/composer.ts:577](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L577) ___ @@ -125,7 +128,7 @@ The ATC used to compose the group #### Defined in -[src/types/composer.ts:527](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L527) +[src/types/composer.ts:552](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L552) ___ @@ -137,7 +140,7 @@ The default transaction validity window #### Defined in -[src/types/composer.ts:547](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L547) +[src/types/composer.ts:572](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L572) ___ @@ -149,7 +152,17 @@ Whether the validity window was explicitly set on construction #### Defined in -[src/types/composer.ts:550](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L550) +[src/types/composer.ts:575](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L575) + +___ + +### errorTransformers + +• `Private` **errorTransformers**: [`ErrorTransformer`](../modules/types_composer.md#errortransformer)[] + +#### Defined in + +[src/types/composer.ts:579](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L579) ___ @@ -175,7 +188,7 @@ A function that takes in an address and return a signer function for that addres #### Defined in -[src/types/composer.ts:544](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L544) +[src/types/composer.ts:569](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L569) ___ @@ -195,7 +208,7 @@ An async function that will return suggested params for the transaction. #### Defined in -[src/types/composer.ts:541](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L541) +[src/types/composer.ts:566](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L566) ___ @@ -208,7 +221,7 @@ This is set using the value of either maxFee or staticFee. #### Defined in -[src/types/composer.ts:532](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L532) +[src/types/composer.ts:557](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L557) ___ @@ -220,7 +233,7 @@ Transactions that have not yet been composed #### Defined in -[src/types/composer.ts:535](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L535) +[src/types/composer.ts:560](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L560) ___ @@ -232,7 +245,7 @@ Signer used to represent a lack of signer #### Defined in -[src/types/composer.ts:524](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L524) +[src/types/composer.ts:549](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L549) ## Methods @@ -290,7 +303,7 @@ composer.addAppCall({ #### Defined in -[src/types/composer.ts:1046](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1046) +[src/types/composer.ts:1106](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1106) ___ @@ -358,7 +371,7 @@ composer.addAppCallMethodCall({ #### Defined in -[src/types/composer.ts:1258](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1258) +[src/types/composer.ts:1318](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1318) ___ @@ -454,7 +467,7 @@ composer.addAppCreate({ #### Defined in -[src/types/composer.ts:925](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L925) +[src/types/composer.ts:985](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L985) ___ @@ -531,7 +544,7 @@ composer.addAppCreateMethodCall({ #### Defined in -[src/types/composer.ts:1106](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1106) +[src/types/composer.ts:1166](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1166) ___ @@ -587,7 +600,7 @@ composer.addAppDelete({ #### Defined in -[src/types/composer.ts:1005](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1005) +[src/types/composer.ts:1065](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1065) ___ @@ -655,7 +668,7 @@ composer.addAppDeleteMethodCall({ #### Defined in -[src/types/composer.ts:1208](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1208) +[src/types/composer.ts:1268](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1268) ___ @@ -733,7 +746,7 @@ composer.addAppUpdate({ #### Defined in -[src/types/composer.ts:966](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L966) +[src/types/composer.ts:1026](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1026) ___ @@ -803,7 +816,7 @@ composer.addAppUpdateMethodCall({ #### Defined in -[src/types/composer.ts:1158](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1158) +[src/types/composer.ts:1218](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1218) ___ @@ -855,7 +868,7 @@ composer.addAssetConfig({ #### Defined in -[src/types/composer.ts:698](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L698) +[src/types/composer.ts:758](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L758) ___ @@ -913,7 +926,7 @@ composer.addAssetCreate({ #### Defined in -[src/types/composer.ts:663](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L663) +[src/types/composer.ts:723](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L723) ___ @@ -962,7 +975,7 @@ composer.addAssetDestroy({ #### Defined in -[src/types/composer.ts:764](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L764) +[src/types/composer.ts:824](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L824) ___ @@ -1013,7 +1026,7 @@ composer.addAssetFreeze({ #### Defined in -[src/types/composer.ts:732](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L732) +[src/types/composer.ts:792](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L792) ___ @@ -1062,7 +1075,7 @@ composer.addAssetOptIn({ #### Defined in -[src/types/composer.ts:833](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L833) +[src/types/composer.ts:893](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L893) ___ @@ -1119,7 +1132,7 @@ composer.addAssetOptOut({ #### Defined in -[src/types/composer.ts:871](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L871) +[src/types/composer.ts:931](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L931) ___ @@ -1173,7 +1186,7 @@ composer.addAssetTransfer({ #### Defined in -[src/types/composer.ts:801](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L801) +[src/types/composer.ts:861](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L861) ___ @@ -1205,7 +1218,7 @@ composer.addAtc(atc) #### Defined in -[src/types/composer.ts:1356](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1356) +[src/types/composer.ts:1416](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1416) ___ @@ -1257,7 +1270,7 @@ composer.addOfflineKeyRegistration({ #### Defined in -[src/types/composer.ts:1339](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1339) +[src/types/composer.ts:1399](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1399) ___ @@ -1321,7 +1334,7 @@ composer.addOnlineKeyRegistration({ #### Defined in -[src/types/composer.ts:1304](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1304) +[src/types/composer.ts:1364](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1364) ___ @@ -1377,7 +1390,7 @@ composer.addPayment({ #### Defined in -[src/types/composer.ts:622](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L622) +[src/types/composer.ts:682](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L682) ___ @@ -1408,7 +1421,7 @@ composer.addTransaction(txn) #### Defined in -[src/types/composer.ts:579](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L579) +[src/types/composer.ts:639](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L639) ___ @@ -1437,7 +1450,7 @@ const { atc, transactions, methodCalls } = await composer.build() #### Defined in -[src/types/composer.ts:1886](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1886) +[src/types/composer.ts:1946](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1946) ___ @@ -1458,7 +1471,7 @@ ___ #### Defined in -[src/types/composer.ts:1695](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1695) +[src/types/composer.ts:1755](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1755) ___ @@ -1479,7 +1492,7 @@ ___ #### Defined in -[src/types/composer.ts:1652](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1652) +[src/types/composer.ts:1712](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1712) ___ @@ -1500,7 +1513,7 @@ ___ #### Defined in -[src/types/composer.ts:1634](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1634) +[src/types/composer.ts:1694](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1694) ___ @@ -1521,7 +1534,7 @@ ___ #### Defined in -[src/types/composer.ts:1665](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1665) +[src/types/composer.ts:1725](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1725) ___ @@ -1542,7 +1555,7 @@ ___ #### Defined in -[src/types/composer.ts:1673](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1673) +[src/types/composer.ts:1733](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1733) ___ @@ -1563,7 +1576,7 @@ ___ #### Defined in -[src/types/composer.ts:1683](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1683) +[src/types/composer.ts:1743](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1743) ___ @@ -1585,7 +1598,7 @@ Build an ATC and return transactions ready to be incorporated into a broader set #### Defined in -[src/types/composer.ts:1362](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1362) +[src/types/composer.ts:1422](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1422) ___ @@ -1606,7 +1619,7 @@ ___ #### Defined in -[src/types/composer.ts:1746](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1746) +[src/types/composer.ts:1806](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1806) ___ @@ -1630,7 +1643,7 @@ Builds an ABI method call transaction and any other associated transactions repr #### Defined in -[src/types/composer.ts:1442](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1442) +[src/types/composer.ts:1502](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1502) ___ @@ -1651,7 +1664,7 @@ ___ #### Defined in -[src/types/composer.ts:1624](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1624) +[src/types/composer.ts:1684](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1684) ___ @@ -1675,7 +1688,7 @@ const { transactions, methodCalls, signers } = await composer.buildTransactions( #### Defined in -[src/types/composer.ts:1828](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1828) +[src/types/composer.ts:1888](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1888) ___ @@ -1698,7 +1711,7 @@ Builds all transaction types apart from `txnWithSigner`, `atc` and `methodCall` #### Defined in -[src/types/composer.ts:1769](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1769) +[src/types/composer.ts:1829](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1829) ___ @@ -1719,7 +1732,7 @@ ___ #### Defined in -[src/types/composer.ts:1796](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1796) +[src/types/composer.ts:1856](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1856) ___ @@ -1747,7 +1760,7 @@ ___ #### Defined in -[src/types/composer.ts:1384](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1384) +[src/types/composer.ts:1444](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1444) ___ @@ -1765,7 +1778,7 @@ The number of transactions currently added to this composer #### Defined in -[src/types/composer.ts:1869](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1869) +[src/types/composer.ts:1929](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1929) ___ @@ -1795,7 +1808,7 @@ An alias for `composer.send(params)`. #### Defined in -[src/types/composer.ts:1980](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1980) +[src/types/composer.ts:2044](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L2044) ___ @@ -1820,7 +1833,31 @@ const { atc, transactions, methodCalls } = await composer.rebuild() #### Defined in -[src/types/composer.ts:1925](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1925) +[src/types/composer.ts:1985](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1985) + +___ + +### registerErrorTransformer + +▸ **registerErrorTransformer**(`transformer`): [`TransactionComposer`](types_composer.TransactionComposer.md) + +Register a function that will be used to transform an error caught when simulating or executing + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `transformer` | [`ErrorTransformer`](../modules/types_composer.md#errortransformer) | + +#### Returns + +[`TransactionComposer`](types_composer.TransactionComposer.md) + +The composer so you can chain method calls + +#### Defined in + +[src/types/composer.ts:624](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L624) ___ @@ -1850,7 +1887,7 @@ const result = await composer.send() #### Defined in -[src/types/composer.ts:1939](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1939) +[src/types/composer.ts:1999](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1999) ___ @@ -1874,7 +1911,7 @@ const result = await composer.simulate() #### Defined in -[src/types/composer.ts:1992](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L1992) +[src/types/composer.ts:2056](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L2056) ▸ **simulate**(`options`): `Promise`\<[`SendAtomicTransactionComposerResults`](../interfaces/types_transaction.SendAtomicTransactionComposerResults.md) & \{ `simulateResponse`: `SimulateResponse` }\> @@ -1908,7 +1945,7 @@ const result = await composer.simulate({ #### Defined in -[src/types/composer.ts:2003](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L2003) +[src/types/composer.ts:2067](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L2067) ▸ **simulate**(`options`): `Promise`\<[`SendAtomicTransactionComposerResults`](../interfaces/types_transaction.SendAtomicTransactionComposerResults.md) & \{ `simulateResponse`: `SimulateResponse` }\> @@ -1943,7 +1980,27 @@ const result = await composer.simulate({ #### Defined in -[src/types/composer.ts:2016](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L2016) +[src/types/composer.ts:2080](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L2080) + +___ + +### transformError + +▸ **transformError**(`originalError`): `Promise`\<`unknown`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `originalError` | `unknown` | + +#### Returns + +`Promise`\<`unknown`\> + +#### Defined in + +[src/types/composer.ts:581](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L581) ___ @@ -1969,4 +2026,4 @@ The binary encoded transaction note #### Defined in -[src/types/composer.ts:2093](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L2093) +[src/types/composer.ts:2155](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L2155) diff --git a/docs/code/interfaces/types_composer.BuiltTransactions.md b/docs/code/interfaces/types_composer.BuiltTransactions.md index 8b563213..cfbddff7 100644 --- a/docs/code/interfaces/types_composer.BuiltTransactions.md +++ b/docs/code/interfaces/types_composer.BuiltTransactions.md @@ -24,7 +24,7 @@ Any `ABIMethod` objects associated with any of the transactions in a map keyed b #### Defined in -[src/types/composer.ts:516](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L516) +[src/types/composer.ts:541](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L541) ___ @@ -36,7 +36,7 @@ Any `TransactionSigner` objects associated with any of the transactions in a map #### Defined in -[src/types/composer.ts:518](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L518) +[src/types/composer.ts:543](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L543) ___ @@ -48,4 +48,4 @@ The built transactions #### Defined in -[src/types/composer.ts:514](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L514) +[src/types/composer.ts:539](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L539) diff --git a/docs/code/modules/types_composer.md b/docs/code/modules/types_composer.md index 9a1e0b8f..eaee1812 100644 --- a/docs/code/modules/types_composer.md +++ b/docs/code/modules/types_composer.md @@ -34,6 +34,7 @@ - [AssetTransferParams](types_composer.md#assettransferparams) - [CommonAppCallParams](types_composer.md#commonappcallparams) - [CommonTransactionParams](types_composer.md#commontransactionparams) +- [ErrorTransformer](types_composer.md#errortransformer) - [OfflineKeyRegistrationParams](types_composer.md#offlinekeyregistrationparams) - [OnlineKeyRegistrationParams](types_composer.md#onlinekeyregistrationparams) - [PaymentParams](types_composer.md#paymentparams) @@ -319,6 +320,35 @@ Common parameters for defining a transaction. ___ +### ErrorTransformer + +Ƭ **ErrorTransformer**: (`error`: `Error`) => `Promise`\<`Error`\> + +A function that transforms an error into a new error. + +In most cases, an ErrorTransformer should first check if it can or should transform the error +and return the input error if it cannot or should not transform it. + +#### Type declaration + +▸ (`error`): `Promise`\<`Error`\> + +##### Parameters + +| Name | Type | +| :------ | :------ | +| `error` | `Error` | + +##### Returns + +`Promise`\<`Error`\> + +#### Defined in + +[src/types/composer.ts:484](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L484) + +___ + ### OfflineKeyRegistrationParams Ƭ **OfflineKeyRegistrationParams**: [`CommonTransactionParams`](types_composer.md#commontransactionparams) & \{ `preventAccountFromEverParticipatingAgain?`: `boolean` } @@ -403,14 +433,15 @@ Parameters to create an `TransactionComposer`. | Name | Type | Description | | :------ | :------ | :------ | | `algod` | `algosdk.Algodv2` | The algod client to use to get suggestedParams and send the transaction group | -| `appManager?` | [`AppManager`](../classes/types_app_manager.AppManager.md) | An existing `AppManager` to use to manage app compilation and cache compilation results. If not specified than an ephemeral one will be created. | +| `appManager?` | [`AppManager`](../classes/types_app_manager.AppManager.md) | An existing `AppManager` to use to manage app compilation and cache compilation results. If not specified then an ephemeral one will be created. | | `defaultValidityWindow?` | `bigint` | How many rounds a transaction should be valid for by default; if not specified then will be 10 rounds (or 1000 rounds if issuing transactions to LocalNet). | +| `errorTransformers?` | [`ErrorTransformer`](types_composer.md#errortransformer)[] | An array of error transformers to use when an error is caught in simulate or execute callbacks can later be registered with `registerErrorTransformer` | | `getSigner` | (`address`: `string` \| `Address`) => `algosdk.TransactionSigner` | - | | `getSuggestedParams?` | () => `Promise`\<`algosdk.SuggestedParams`\> | - | #### Defined in -[src/types/composer.ts:479](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L479) +[src/types/composer.ts:499](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/composer.ts#L499) ___ diff --git a/docs/code/modules/types_composer_spec.md b/docs/code/modules/types_composer_spec.md new file mode 100644 index 00000000..ae6c02ca --- /dev/null +++ b/docs/code/modules/types_composer_spec.md @@ -0,0 +1,3 @@ +[@algorandfoundation/algokit-utils](../README.md) / types/composer.spec + +# Module: types/composer.spec diff --git a/docs/code/modules/types_instance_of.md b/docs/code/modules/types_instance_of.md new file mode 100644 index 00000000..6375dfe8 --- /dev/null +++ b/docs/code/modules/types_instance_of.md @@ -0,0 +1,27 @@ +[@algorandfoundation/algokit-utils](../README.md) / types/instance-of + +# Module: types/instance-of + +## Table of contents + +### Type Aliases + +- [InterfaceOf](types_instance_of.md#interfaceof) + +## Type Aliases + +### InterfaceOf + +Ƭ **InterfaceOf**\<`ClassType`\>: \{ [Member in keyof ClassType]: ClassType[Member] } + +A type that represents the interface of the class given as the generic parameter + +#### Type parameters + +| Name | +| :------ | +| `ClassType` | + +#### Defined in + +[src/types/instance-of.ts:4](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/instance-of.ts#L4) diff --git a/package-lock.json b/package-lock.json index 9e498790..045449c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12276,9 +12276,9 @@ } }, "node_modules/vite": { - "version": "5.4.18", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.18.tgz", - "integrity": "sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==", + "version": "5.4.19", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", + "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index d3ae73ba..7dd773e5 100644 --- a/package.json +++ b/package.json @@ -171,4 +171,4 @@ "@semantic-release/github" ] } -} \ No newline at end of file +} diff --git a/src/types/algorand-client.ts b/src/types/algorand-client.ts index 2e723c59..24bd16f2 100644 --- a/src/types/algorand-client.ts +++ b/src/types/algorand-client.ts @@ -7,7 +7,7 @@ import { AppDeployer } from './app-deployer' import { AppManager } from './app-manager' import { AssetManager } from './asset-manager' import { AlgoSdkClients, ClientManager } from './client-manager' -import { TransactionComposer } from './composer' +import { ErrorTransformer, TransactionComposer } from './composer' import { AlgoConfig } from './network-client' import Account = algosdk.Account import LogicSigAccount = algosdk.LogicSigAccount @@ -30,6 +30,13 @@ export class AlgorandClient { private _defaultValidityWindow: bigint | undefined = undefined + /** + * A set of error transformers to use when an error is caught in simulate or execute + * `registerErrorTransformer` and `unregisterErrorTransformer` can be used to add and remove + * error transformers from the set. + */ + private _errorTransformers: Set = new Set() + private constructor(config: AlgoConfig | AlgoSdkClients) { this._clientManager = new ClientManager(config, this) this._accountManager = new AccountManager(this._clientManager) @@ -207,7 +214,18 @@ export class AlgorandClient { } /** - * Start a new `TransactionComposer` transaction group + * Register a function that will be used to transform an error caught when simulating or executing + * composed transaction groups made from `newGroup` + */ + public registerErrorTransformer(transformer: ErrorTransformer) { + this._errorTransformers.add(transformer) + } + + public unregisterErrorTransformer(transformer: ErrorTransformer) { + this._errorTransformers.delete(transformer) + } + + /** Start a new `TransactionComposer` transaction group * @returns A new instance of `TransactionComposer`. * @example * const composer = AlgorandClient.mainNet().newGroup(); @@ -220,6 +238,7 @@ export class AlgorandClient { getSuggestedParams: () => this.getSuggestedParams(), defaultValidityWindow: this._defaultValidityWindow, appManager: this._appManager, + errorTransformers: [...this._errorTransformers], }) } diff --git a/src/types/app-client.ts b/src/types/app-client.ts index f2aefdf4..bfa237b4 100644 --- a/src/types/app-client.ts +++ b/src/types/app-client.ts @@ -516,6 +516,7 @@ export class AppClient { this._appSpec = AppClient.normaliseAppSpec(params.appSpec) this._appName = params.appName ?? this._appSpec.name this._algorand = params.algorand + this._algorand.registerErrorTransformer!(this.handleCallErrors) this._defaultSender = typeof params.defaultSender === 'string' ? Address.fromString(params.defaultSender) : params.defaultSender this._defaultSigner = params.defaultSigner @@ -1245,29 +1246,29 @@ export class AppClient { update: async (params?: AppClientBareCallParams & AppClientCompilationParams & SendParams) => { const compiled = await this.compile(params) return { - ...(await this.handleCallErrors(async () => this._algorand.send.appUpdate(await this.params.bare.update(params)))), + ...(await this._algorand.send.appUpdate(await this.params.bare.update(params))), ...(compiled as Partial), } }, /** Signs and sends an opt-in call */ optIn: (params?: AppClientBareCallParams & SendParams) => { - return this.handleCallErrors(() => this._algorand.send.appCall(this.params.bare.optIn(params))) + return this._algorand.send.appCall(this.params.bare.optIn(params)) }, /** Signs and sends a delete call */ delete: (params?: AppClientBareCallParams & SendParams) => { - return this.handleCallErrors(() => this._algorand.send.appDelete(this.params.bare.delete(params))) + return this._algorand.send.appDelete(this.params.bare.delete(params)) }, /** Signs and sends a clear state call */ clearState: (params?: AppClientBareCallParams & SendParams) => { - return this.handleCallErrors(() => this._algorand.send.appCall(this.params.bare.clearState(params))) + return this._algorand.send.appCall(this.params.bare.clearState(params)) }, /** Signs and sends a close out call */ closeOut: (params?: AppClientBareCallParams & SendParams) => { - return this.handleCallErrors(() => this._algorand.send.appCall(this.params.bare.closeOut(params))) + return this._algorand.send.appCall(this.params.bare.closeOut(params)) }, /** Signs and sends a call (defaults to no-op) */ call: (params?: AppClientBareCallParams & CallOnComplete & SendParams) => { - return this.handleCallErrors(() => this._algorand.send.appCall(this.params.bare.call(params))) + return this._algorand.send.appCall(this.params.bare.call(params)) }, } } @@ -1351,11 +1352,9 @@ export class AppClient { update: async (params: AppClientMethodCallParams & AppClientCompilationParams & SendParams) => { const compiled = await this.compile(params) return { - ...(await this.handleCallErrors(async () => - this.processMethodCallReturn( - this._algorand.send.appUpdateMethodCall(await this.params.update({ ...params })), - getArc56Method(params.method, this._appSpec), - ), + ...(await this.processMethodCallReturn( + this._algorand.send.appUpdateMethodCall(await this.params.update({ ...params })), + getArc56Method(params.method, this._appSpec), )), ...(compiled as Partial), } @@ -1365,12 +1364,10 @@ export class AppClient { * @param params The parameters for the opt-in ABI method call * @returns The result of sending the opt-in ABI method call */ - optIn: (params: AppClientMethodCallParams & SendParams) => { - return this.handleCallErrors(async () => - this.processMethodCallReturn( - this._algorand.send.appCallMethodCall(await this.params.optIn(params)), - getArc56Method(params.method, this._appSpec), - ), + optIn: async (params: AppClientMethodCallParams & SendParams) => { + return this.processMethodCallReturn( + this._algorand.send.appCallMethodCall(await this.params.optIn(params)), + getArc56Method(params.method, this._appSpec), ) }, /** @@ -1378,12 +1375,10 @@ export class AppClient { * @param params The parameters for the delete ABI method call * @returns The result of sending the delete ABI method call */ - delete: (params: AppClientMethodCallParams & SendParams) => { - return this.handleCallErrors(async () => - this.processMethodCallReturn( - this._algorand.send.appDeleteMethodCall(await this.params.delete(params)), - getArc56Method(params.method, this._appSpec), - ), + delete: async (params: AppClientMethodCallParams & SendParams) => { + return this.processMethodCallReturn( + this._algorand.send.appDeleteMethodCall(await this.params.delete(params)), + getArc56Method(params.method, this._appSpec), ) }, /** @@ -1391,12 +1386,10 @@ export class AppClient { * @param params The parameters for the close out ABI method call * @returns The result of sending the close out ABI method call */ - closeOut: (params: AppClientMethodCallParams & SendParams) => { - return this.handleCallErrors(async () => - this.processMethodCallReturn( - this._algorand.send.appCallMethodCall(await this.params.closeOut(params)), - getArc56Method(params.method, this._appSpec), - ), + closeOut: async (params: AppClientMethodCallParams & SendParams) => { + return this.processMethodCallReturn( + this._algorand.send.appCallMethodCall(await this.params.closeOut(params)), + getArc56Method(params.method, this._appSpec), ) }, /** @@ -1454,11 +1447,9 @@ export class AppClient { } } - return this.handleCallErrors(async () => - this.processMethodCallReturn( - this._algorand.send.appCallMethodCall(await this.params.call(params)), - getArc56Method(params.method, this._appSpec), - ), + return this.processMethodCallReturn( + this._algorand.send.appCallMethodCall(await this.params.call(params)), + getArc56Method(params.method, this._appSpec), ) }, } @@ -1572,21 +1563,22 @@ export class AppClient { } /** Make the given call and catch any errors, augmenting with debugging information before re-throwing. */ - private async handleCallErrors(call: () => Promise) { - try { - return await call() - } catch (e) { - const logicError = await this.exposeLogicError(e as Error) - if (logicError instanceof LogicError) { - let currentLine = logicError.teal_line - logicError.lines - 1 - const stackWithLines = logicError.stack - ?.split('\n') - .map((line) => `${(currentLine += 1)}: ${line}`) - .join('\n') - Config.logger.error(`${logicError.message}\n\n${stackWithLines}`) - } - throw logicError - } + private handleCallErrors = async (e: Error) => { + // Only handle errors for this app. + const appIdString = `app=${this._appId.toString()}` + if (!e.message.includes(appIdString)) return e + + const logicError = await this.exposeLogicError(e) + if (logicError instanceof LogicError) { + let currentLine = logicError.teal_line - logicError.lines - 1 + const stackWithLines = logicError.stack + ?.split('\n') + .map((line) => `${(currentLine += 1)}: ${line}`) + .join('\n') + Config.logger.error(`${logicError.message}\n\n${stackWithLines}`) + } + + return logicError } private getBoxMethods() { diff --git a/src/types/app-factory-and-client.spec.ts b/src/types/app-factory-and-client.spec.ts index 684a034e..4df16130 100644 --- a/src/types/app-factory-and-client.spec.ts +++ b/src/types/app-factory-and-client.spec.ts @@ -770,7 +770,31 @@ describe('ARC56: app-factory-and-app-client', () => { invariant(false) // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (e: any) { - expect(JSON.stringify(e)).toMatch('this is an error') + expect(e).toBeInstanceOf(Error) + expect(e.message).toMatch('this is an error') + } + }) + + test('AppClient registers error transformer to AlgorandClient', async () => { + const { testAccount } = localnet.context + const { appClient } = await factory.deploy({ + createParams: { + method: 'createApplication', + }, + deployTimeParams: { bytes64TmplVar: '0'.repeat(64), uint64TmplVar: 123, bytes32TmplVar: '0'.repeat(32), bytesTmplVar: 'foo' }, + }) + + try { + // Don't use the app client to call, but since we've instantiated one the error transformer should be registered + await appClient.algorand + .newGroup() + .addAppCallMethodCall({ appId: appClient.appId, method: appClient.getABIMethod('throwError')!, sender: testAccount }) + .send() + invariant(false) + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } catch (e: any) { + expect(e).toBeInstanceOf(Error) + expect(e.message).toMatch('this is an error') } }) diff --git a/src/types/composer.spec.ts b/src/types/composer.spec.ts new file mode 100644 index 00000000..2f3d1ba4 --- /dev/null +++ b/src/types/composer.spec.ts @@ -0,0 +1,67 @@ +import { beforeEach, describe, expect, test } from 'vitest' +import { algorandFixture } from '../testing' + +describe('TransactionComposer', () => { + const fixture = algorandFixture() + + beforeEach(async () => { + await fixture.beforeEach() + }) + + describe('error transformers', () => { + const errorTransformers = [ + async (e: Error) => { + if (e.message.includes('missing from')) { + return new Error('ASSET MISSING???') + } + + return e + }, + async (e: Error) => { + if (e.message == 'ASSET MISSING???') { + return new Error('ASSET MISSING!') + } + + return e + }, + ] + + test('throws correct error from simulate', async () => { + const algorand = fixture.context.algorand + const sender = fixture.context.testAccount + const composer = algorand.newGroup() + + composer.addAssetTransfer({ + amount: 1n, + assetId: 1337n, + sender, + receiver: sender, + }) + + errorTransformers.forEach((errorTransformer) => { + composer.registerErrorTransformer(errorTransformer) + }) + + await expect(composer.simulate()).rejects.toThrow('ASSET MISSING!') + }) + + test('throws correct error from send', async () => { + const algorand = fixture.context.algorand + const sender = fixture.context.testAccount + const composer = algorand.newGroup() + + composer.addAssetTransfer({ + amount: 1n, + assetId: 1337n, + sender, + receiver: sender, + }) + + errorTransformers.forEach((errorTransformer) => { + composer.registerErrorTransformer(errorTransformer) + }) + + await expect(composer.send()).rejects.toThrow('ASSET MISSING!') + }) + }) +}) diff --git a/src/types/composer.ts b/src/types/composer.ts index ce2e0dd4..d7eaf0a7 100644 --- a/src/types/composer.ts +++ b/src/types/composer.ts @@ -475,6 +475,26 @@ export type Txn = | { atc: algosdk.AtomicTransactionComposer; type: 'atc' } | ((AppCallMethodCall | AppCreateMethodCall | AppUpdateMethodCall) & { type: 'methodCall' }) +/** + * A function that transforms an error into a new error. + * + * In most cases, an ErrorTransformer should first check if it can or should transform the error + * and return the input error if it cannot or should not transform it. + */ +export type ErrorTransformer = (error: Error) => Promise + +class InvalidErrorTransformerValue extends Error { + constructor(originalError: unknown, value: unknown) { + super(`An error transformer returned a non-error value: ${value}. The original error before any transformation: ${originalError}`) + } +} + +class ErrorTransformerError extends Error { + constructor(originalError: Error, cause: unknown) { + super(`An error transformer threw an error: ${cause}. The original error before any transformation: ${originalError} `, { cause }) + } +} + /** Parameters to create an `TransactionComposer`. */ export type TransactionComposerParams = { /** The algod client to use to get suggestedParams and send the transaction group */ @@ -489,9 +509,14 @@ export type TransactionComposerParams = { defaultValidityWindow?: bigint /** An existing `AppManager` to use to manage app compilation and cache compilation results. * - * If not specified than an ephemeral one will be created. + * If not specified then an ephemeral one will be created. */ appManager?: AppManager + /** + * An array of error transformers to use when an error is caught in simulate or execute + * callbacks can later be registered with `registerErrorTransformer` + */ + errorTransformers?: ErrorTransformer[] } /** Represents a Transaction with additional context that was used to build that transaction. */ @@ -551,6 +576,30 @@ export class TransactionComposer { private appManager: AppManager + private errorTransformers: ErrorTransformer[] + + private async transformError(originalError: unknown): Promise { + // Transformers only work with Error instances, so immediately return anything else + if (!(originalError instanceof Error)) { + return originalError + } + + let transformedError = originalError + + for (const transformer of this.errorTransformers) { + try { + transformedError = await transformer(transformedError) + if (!(transformedError instanceof Error)) { + return new InvalidErrorTransformerValue(originalError, transformedError) + } + } catch (errorFromTransformer) { + return new ErrorTransformerError(originalError, errorFromTransformer) + } + } + + return transformedError + } + /** * Create a `TransactionComposer`. * @param params The configuration for this composer @@ -564,6 +613,17 @@ export class TransactionComposer { this.defaultValidityWindow = params.defaultValidityWindow ?? this.defaultValidityWindow this.defaultValidityWindowIsExplicit = params.defaultValidityWindow !== undefined this.appManager = params.appManager ?? new AppManager(params.algod) + this.errorTransformers = params.errorTransformers ?? [] + } + + /** + * Register a function that will be used to transform an error caught when simulating or executing + * + * @returns The composer so you can chain method calls + */ + registerErrorTransformer(transformer: ErrorTransformer) { + this.errorTransformers.push(transformer) + return this } /** @@ -1950,22 +2010,26 @@ export class TransactionComposer { waitRounds = Number(BigInt(lastRound) - BigInt(firstRound)) + 1 } - return await sendAtomicTransactionComposer( - { - atc: this.atc, - suppressLog: params?.suppressLog, - maxRoundsToWaitForConfirmation: waitRounds, - populateAppCallResources: params?.populateAppCallResources, - coverAppCallInnerTransactionFees: params?.coverAppCallInnerTransactionFees, - additionalAtcContext: params?.coverAppCallInnerTransactionFees - ? { - maxFees: this.txnMaxFees, - suggestedParams: suggestedParams!, - } - : undefined, - }, - this.algod, - ) + try { + return await sendAtomicTransactionComposer( + { + atc: this.atc, + suppressLog: params?.suppressLog, + maxRoundsToWaitForConfirmation: waitRounds, + populateAppCallResources: params?.populateAppCallResources, + coverAppCallInnerTransactionFees: params?.coverAppCallInnerTransactionFees, + additionalAtcContext: params?.coverAppCallInnerTransactionFees + ? { + maxFees: this.txnMaxFees, + suggestedParams: suggestedParams!, + } + : undefined, + }, + this.algod, + ) + } catch (originalError: unknown) { + throw await this.transformError(originalError) + } } /** @@ -2063,9 +2127,7 @@ export class TransactionComposer { await Config.events.emitAsync(EventType.TxnGroupSimulated, { simulateResponse }) } - // eslint-disable-next-line @typescript-eslint/no-explicit-any - ;(error as any).simulateResponse = simulateResponse - throw error + throw await this.transformError(error) } if (Config.debug && Config.traceAll) { diff --git a/src/types/instance-of.ts b/src/types/instance-of.ts new file mode 100644 index 00000000..cbede7bc --- /dev/null +++ b/src/types/instance-of.ts @@ -0,0 +1,6 @@ +/** + * A type that represents the interface of the class given as the generic parameter + */ +export type InterfaceOf = { + [Member in keyof ClassType]: ClassType[Member] +}