-
Notifications
You must be signed in to change notification settings - Fork 6
feat: finalizing arc56 abstraction; consolidating arc56 artifacts; #227
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
50b464b
to
78fb8cd
Compare
3b69f75
to
744f05e
Compare
There was a problem hiding this 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 finalizes the ARC56 abstraction and consolidates ARC56 artifacts for improved testing across algokit-core crates. It introduces a centralized algokit_test_artifacts
crate containing standardized contract artifacts and updates existing test code to use these centralized resources instead of local file paths.
- Centralizes contract artifacts in
algokit_test_artifacts
crate with static string access - Updates test code to use centralized artifacts instead of direct file system access
- Adds comprehensive documentation for snapshot testing with insta crate
Reviewed Changes
Copilot reviewed 33 out of 44 changed files in this pull request and generated no comments.
Show a summary per file
File | Description |
---|---|
docs/book/contributing/contributing_guide.md | Adds documentation for snapshot testing with insta crate |
crates/algokit_utils/tests/transactions/composer/inner_fee_coverage.rs | Updates to use centralized artifacts from test crate |
crates/algokit_utils/tests/transactions/composer/application_call.rs | Removes file path dependency, uses centralized artifacts |
crates/algokit_utils/tests/contracts/sandbox/contract.py | Removes contract source files (moved to artifacts) |
crates/algokit_utils/tests/contracts/nested/contract.algo.ts | Removes contract source files (moved to artifacts) |
crates/algokit_utils/tests/contracts/inner_fee/contract.py | Removes contract source files (moved to artifacts) |
crates/algokit_utils/Cargo.toml | Adds dependency on algokit_test_artifacts crate |
crates/algokit_test_artifacts/src/lib.rs | Creates centralized artifact library with comprehensive documentation |
Updates the ARC56 contract data structures to improve clarity and consistency. Renames `StructFieldType::Simple` to `StructFieldType::Value` to better reflect its purpose. Renames `CallEnum` to `CallOnApplicationComplete` and `CreateEnum` to `CreateOnApplicationComplete` to explicitly express the purpose of the enums. Renames `Global` and `Local` to `StateSchema` and uses the same `StateSchema` struct for both global and local state definitions.
Updates `get_signature` to use the ABI method signature, returning a `Result`. This change improves error handling when retrieving method signatures and ensures consistency with ABI specifications. It also handles cases where multiple methods match a given name by explicitly requiring the ABI signature for disambiguation.
9bb09bd
to
18f9f95
Compare
Opening against Pat's branch temporarily - will rebase after its merged