Skip to content

refactor: remove IssuerTransfer choice from NativeTokenConfig#20

Merged
salindne merged 2 commits into
mainfrom
salindne/remove-issuer-transfer
Jan 29, 2026
Merged

refactor: remove IssuerTransfer choice from NativeTokenConfig#20
salindne merged 2 commits into
mainfrom
salindne/remove-issuer-transfer

Conversation

@salindne
Copy link
Copy Markdown
Contributor

Summary

Remove the IssuerTransfer choice from NativeTokenConfig as it's no longer needed with the custodial key model.

Why

With the custodial key model implemented in canton-middleware:

  • The API server now manages Canton signing keys for users
  • Transfers use the standard CIP56Holding.Transfer choice (owner-controlled)
  • The API server signs transactions as the user's Canton party
  • Issuer-mediated transfers are no longer necessary

Related

With the custodial key model, transfers now use the standard
CIP56Holding.Transfer choice which is owner-controlled.
The API server signs as the user's Canton party, so issuer-mediated
transfers are no longer needed.
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @salindne, 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 refactors the NativeTokenConfig by eliminating the IssuerTransfer choice. This modification is essential to align the system with the newly implemented custodial key model, where the API server handles user Canton signing keys and all token transfers are processed through the standard owner-controlled CIP56Holding.Transfer mechanism, simplifying the token transfer process and removing redundant functionality.

Highlights

  • Removal of IssuerTransfer Choice: The IssuerTransfer nonconsuming choice has been removed from the NativeTokenConfig template.
  • Alignment with Custodial Key Model: This change aligns the token configuration with the new custodial key model, where the API server manages Canton signing keys for users.
  • Standardized Transfers: Token transfers now exclusively utilize the standard CIP56Holding.Transfer choice, which is owner-controlled, making issuer-mediated transfers obsolete.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

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 by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

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 pull request 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

  1. 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.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request correctly removes the IssuerTransfer choice from NativeTokenConfig, which is a good simplification to align with the new custodial key model. My review includes a comment on the introduced changes, highlighting that related code, such as a test case and an event template, now needs to be removed to ensure the codebase remains consistent and the test suite passes.

Comment thread daml/native-token/src/Native/Token.daml
@kalambet
Copy link
Copy Markdown
Member

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request provides a clean and logical refactoring by removing the IssuerTransfer choice from NativeTokenConfig, along with its associated TransferEvent template and test script. The justification for this change, moving to a custodial key model where owner-controlled transfers are used, is sound. The removals are consistent across the affected files, leading to a simpler and more maintainable codebase. The changes are correct and I have no suggestions for improvement.

@salindne salindne merged commit 14682bb into main Jan 29, 2026
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