-
Notifications
You must be signed in to change notification settings - Fork 7
feat: rust and ts kmd api client; minor jinja generator tweaks #251
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
Conversation
24b2acf
to
66aa418
Compare
|
||
Note: You will need to perform steps 2-4 each time your either install a package for the first time or update a GitHub package hosted dependency. Installing from the lock file only requires the token. | ||
|
||
## Per-model DTO codecs (TypeScript clients) |
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.
@PatrickDinh this redundant section leaked through in the ts client generator pr - removing it in this pr
"pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$", | ||
"type": "string", | ||
"format": "byte", | ||
"x-go-name": "SignedTransaction" |
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.
@joe-p do you know if this is the same signed txn model used in algod? If yes i can align it by adding out own x algokit vendor extension here so generators embed the model from transact crate/package. Otherwise we can keep as is
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.
Looking at the model kmd uses I think this is just an array of bytes
type APIV1POSTTransactionSignResponse struct {
APIV1ResponseEnvelope
// swagger:strfmt byte
SignedTransaction []byte `json:"signed_transaction"`
}
66aa418
to
e77f3dc
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 introduces KMD (Key Management Daemon) client support for both Rust and TypeScript, enabling direct interaction with the KMD API instead of relying on AlgoKit CLI. The changes significantly improve test suite performance by leveraging native KMD clients.
- Adds comprehensive KMD client generation for both Rust and TypeScript ecosystems
- Extends the API tools to support KMD alongside existing algod and indexer clients
- Includes test coverage for KMD wallet lifecycle and key management operations
Reviewed Changes
Copilot reviewed 195 out of 197 changed files in this pull request and generated no comments.
Show a summary per file
File | Description |
---|---|
tools/api_tools/src/main.rs | Adds KMD client generation commands and configuration |
packages/typescript/kmd_client/* | Generated TypeScript KMD client with models, APIs, and configuration |
crates/kmd_client/src/* | Generated Rust KMD client with models and API endpoints |
packages/typescript/algokit_utils/tests/kmd/* | Test suite for KMD functionality |
docs/book/contributing/contributing_guide.md | Updates documentation for new KMD commands |
Files not reviewed (1)
- packages/typescript/package-lock.json: Language not supported
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
- Rust Clients (algod, indexer, kmd): - Removed Content-Type headers from all GET/HEAD/DELETE requests - Removed empty request body parameters from methods like list_wallets() - Now: client.list_wallets() instead of client.list_wallets(None) - TypeScript Clients (algod, indexer, kmd): - Removed body parameters from GET/HEAD/DELETE methods - Now: client.listWallets() instead of client.listWallets({ body: {} })
14eadcd
to
f651b85
Compare
packages/typescript/kmd_client/src/models/apiv1-deletemultisig-response.ts
Outdated
Show resolved
Hide resolved
🎉 This PR is included in version 1.0.0-alpha.70 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Uh oh!
There was an error while loading. Please reload this page.