Skip to content

Add token decimal precision validation for contribution amounts#100

Open
WuXieSec wants to merge 1 commit intosorosave-protocol:mainfrom
WuXieSec:feat/contribution-amount-validation
Open

Add token decimal precision validation for contribution amounts#100
WuXieSec wants to merge 1 commit intosorosave-protocol:mainfrom
WuXieSec:feat/contribution-amount-validation

Conversation

@WuXieSec
Copy link
Copy Markdown

This PR implements input validation for contribution amounts to ensure they align with the token's decimal precision, as requested in #71.

Changes:

  • Query token decimals during create_group
  • Validate that contribution_amount is a whole number of the token's minimum unit
  • Store token_decimals in SavingsGroup metadata for future reference
  • Reject amounts that would cause rounding issues

How it works:
The validation calculates the minimum token unit (10^decimals) and checks that the contribution amount is evenly divisible by it. This prevents precision loss and ensures all contributions are valid.

Example:

  • Token with 7 decimals: minimum unit = 10,000,000
  • Valid amount: 1,000,000 (0.1 tokens) ✅
  • Invalid amount: 1,500,000 (would cause rounding) ❌

Closes #71

Changes:
- Query token decimals during group creation
- Validate contribution_amount aligns with token's minimum unit
- Store token_decimals in SavingsGroup metadata
- Reject amounts that would cause rounding issues

This ensures all contribution amounts are valid whole numbers
of the token's smallest unit, preventing precision loss.

Closes sorosave-protocol#71
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.

Add input validation for contribution amount precision

1 participant