Conversation
There was a problem hiding this comment.
Summary of Changes
Hello @GPSxtreme, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request significantly expands the Upbit API integration by introducing a full suite of tools for managing both cryptocurrency withdrawals and deposits. It also includes a crucial update to the authentication mechanism to ensure correct JWT signing for various request types, especially POST requests with complex parameters. Furthermore, the existing order creation tool has been enhanced with more advanced options, and the documentation has been updated to reflect these new capabilities and provide better security guidance.
Highlights
- Enhanced Authentication Mechanism: The
signJwtTokenfunction insrc/lib/upbit-auth.tshas been refactored to handle a wider range of parameter types (including booleans and undefined) and to ensure correct sorting and encoding for JWT signing, particularly for POST requests. This enhances the robustness and flexibility of the authentication mechanism. - Comprehensive Withdrawal Management Tools: A comprehensive suite of new tools has been added to manage withdrawals, including
CREATE_WITHDRAWAL,CANCEL_WITHDRAWAL,GET_WITHDRAWAL,LIST_WITHDRAWALS, andLIST_WITHDRAWAL_ADDRESSES. These tools provide full control over withdrawal operations. - New Deposit Management Tools: New tools are introduced for deposit management, such as
CREATE_DEPOSIT_ADDRESS,GET_DEPOSIT_ADDRESS,GET_DEPOSIT_CHANCE,GET_DEPOSIT,LIST_DEPOSITS, andLIST_DEPOSIT_ADDRESSES. This significantly expands the API's capabilities for handling deposits. - Expanded Order Creation Functionality: The existing
CREATE_ORDERtool now supports additional parameters liketime_in_force,smp_type, andidentifier. This provides more granular control and advanced options when placing orders. - Updated Documentation and Examples: The
README.mdhas been updated with a new 'Security & permissions' section, offering crucial details on API key usage and Upbit permission mapping. This improves clarity and guidance for users on secure configuration and API capabilities.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Code Review
This pull request introduces significant new functionality by adding tools for withdrawals and deposits, expanding the capabilities of the Upbit integration. The authentication logic has been correctly updated to support signed requests with sorted parameters, which is a crucial fix. The README is also updated with valuable information on security and usage examples for the new tools.
My review focuses on a critical bug in one of the new tools and several opportunities to improve code consistency and maintainability across the new and updated tool implementations. Specifically, I've identified an incorrect API endpoint usage and suggested simplifications for request parameter handling that leverage the recent improvements in the authentication signing function.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Closes #5 when this PR merged.
changes
listWithdrawalAddressesTool,createWithdrawalTool,getWithdrawalTool,listWithdrawalsTool,cancelWithdrawalTool,getDepositChanceTool,createDepositAddressTool,getDepositAddressTool,listDepositAddressesTool,getDepositTool,listDepositsTool