Skip to content

Conversation

aorumbayev
Copy link
Collaborator

@aorumbayev aorumbayev commented Aug 19, 2025

Proposed Changes

App Client implementation

Further notes

App Factory PR is to follow shortly against this branch to simplify review

@aorumbayev aorumbayev force-pushed the feat/application-client branch 12 times, most recently from 50eb3d9 to 7defe32 Compare September 2, 2025 10:57
@aorumbayev aorumbayev marked this pull request as ready for review September 2, 2025 11:26
@Copilot Copilot AI review requested due to automatic review settings September 2, 2025 11:26
@aorumbayev aorumbayev requested a review from a team as a code owner September 2, 2025 11:26
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements the AppClient for Algorand smart contract applications, providing a comprehensive client interface for interacting with ARC-56 compliant apps. The AppClient offers fluent APIs for transactions, state access, and app lifecycle management.

  • Implements a full-featured AppClient with support for ARC-56 specifications
  • Provides fluent APIs for transaction building, sending, and state access
  • Adds configuration system with event emission capabilities for debugging and tracing
  • Extends composer functionality with simulation support

Reviewed Changes

Copilot reviewed 27 out of 27 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
crates/algokit_utils/src/applications/app_client/mod.rs Core AppClient implementation with network resolution and basic operations
crates/algokit_utils/src/applications/app_client/sender.rs Transaction sending functionality with debugging support
crates/algokit_utils/src/applications/app_client/transaction_builder.rs Transaction building utilities for various app operations
crates/algokit_utils/src/applications/app_client/params_builder.rs Parameter building with ABI method resolution and default value handling
crates/algokit_utils/src/applications/app_client/state_accessor.rs Structured state access for global, local, and box storage
crates/algokit_utils/src/applications/app_client/types.rs Type definitions for AppClient parameters and configurations
crates/algokit_utils/src/config.rs Global configuration system with async event emission
crates/algokit_utils/src/transactions/composer.rs Extended composer with simulation capabilities
crates/algokit_utils/tests/applications/app_client.rs Comprehensive test suite for AppClient functionality

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@aorumbayev aorumbayev force-pushed the feat/application-client branch 2 times, most recently from 6a166c7 to 6d27d07 Compare September 3, 2025 21:57
@aorumbayev aorumbayev force-pushed the feat/application-client branch from 1be959c to fb7ee7f Compare September 4, 2025 16:20
@aorumbayev
Copy link
Collaborator Author

@PatrickDinh i used your pr algorandfoundation/algokit-utils-ts#430 as a reference and added similar native struct support to abi crate which allowed removal of various helpers in the app client implementation, the abi handling should be more refined at this point feel free to take another look also pushed additional tests into app factory implementation as well -> #248, there is a few nested struct tests that i still need to add but ill do it after app factory pr is merged as using the factory as a fixture could simplify directly reusing existing nested struct tests from ts and py utils repos

@joe-p joe-p self-requested a review September 5, 2025 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants