fix: reorder fee arithmetic to prevent precision loss in discounts#296
Merged
hman38705 merged 1 commit intosolutions-plug:mainfrom Mar 26, 2026
Merged
Conversation
|
@Macnelson9 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📋 Description
Fixes precision loss in multi-tier fee math by removing early truncation and using single-pass high-precision arithmetic for tier discounts. This ensures discounted tiers are correctly reflected instead of collapsing to the same fee as Basic in low-precision edge cases.
🎯 Type of Change
🔗 Related Issues
Closes #147
📝 Changes Made
🧪 Testing
Test Coverage
Manual Testing
Test Results:
Unit tests were added in the fee module for discount precision and ratio correctness.
Local command execution for cargo test was not available in this Copilot tool session due environment terminal provider error (ENOPRO), so full local run is pending.
📸 Screenshots (if applicable)
Not applicable (no UI changes).
✅ Checklist
Code Quality
Documentation
Testing & Quality
Security
Git
🔍 Reviewer Notes
Please focus review on:
📊 Performance Impact
Details:
Changes are arithmetic-only and limited to fee computation paths; no additional storage or RPC overhead introduced.
🚀 Deployment Notes
No migration needed.
No configuration changes required.
Safe to deploy as a non-breaking bug fix.
📚 Additional Context
Primary fix area:
Suggested commit message:
fix: reorder fee arithmetic to prevent precision loss in discounts
By submitting this PR, I confirm that: