Skip to content
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

Manage the issuer's child keys as a deterministic wallet #694

Merged
merged 2 commits into from
Sep 30, 2024

Conversation

YoshihitoAso
Copy link
Member

@YoshihitoAso YoshihitoAso commented Sep 28, 2024

close #682

Add functionality for managing issuer's child keys with a deterministic wallet (CRUD API)

  • The deterministic wallet adopts a method that derives the child public key from the issuer's public key. Since there is no need to access the issuer's private key, the API specification does not require the use of eoa_password as input information.
  • When generating a child key, the investor’s personal information is registered.
  • The update API does not modify any keys; it is currently an API that only changes personal information. The update API can only update information for addresses managed as child keys.

Off-chain personal information is managed using the IDXPersonalInfo model

  • A field called data_source is added to IDXPersonalInfo to distinguish between on-chain and off-chain data. Existing data will be switched to set as on-chain.
  • For the personal information fields, the reserved word "SELF" is registered in key_manager, indicating that it is managed by the issuer themselves.

Based on the above policy, no significant changes have been made to the existing functions that use IDXPersonalInfo, but the following points have been exceptionally modified:

  • The indexer for personal info has been modified to set the data_source to "on-chain."
  • Additionally, filtering for "on-chain" has been added to processes that should only extract personal_info from the contract.

Copy link

github-actions bot commented Sep 28, 2024

Coverage

Coverage Report •
FileStmtsMissCoverMissing
__init__.py00100% 
indexer_personal_info.py1571888%80–81, 86–88, 130–133, 227–228, 261–262, 325, 335–338
ledger_utils.py1030100% 
processor_modify_personal_info.py1242579%87, 115, 118, 137, 213, 306, 308–309, 311, 313–320, 323–324, 326, 328, 332–335
db
   __init__.py320100% 
   account.py350100% 
   idx_personal_info.py57394%81, 99, 152
issuer
   account.py293299%521, 523
schema
   __init__.py190100% 
   account.py880100% 
TOTAL13110113791% 

Tests Skipped Failures Errors Time
1919 0 💤 0 ❌ 0 🔥 36m 27s ⏱️

Copy link
Member

@purplesmoke05 purplesmoke05 left a comment

Choose a reason for hiding this comment

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

LGTM

app/model/db/account.py Outdated Show resolved Hide resolved
@YoshihitoAso YoshihitoAso merged commit 9cd811c into dev-24.12 Sep 30, 2024
6 checks passed
@YoshihitoAso YoshihitoAso deleted the feature/#682 branch September 30, 2024 01:27
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.

[FEATURE] Manage child keys controlled by the issuer as a deterministic wallet
2 participants