refactor: implement pull-over-push pattern for fees#2
Open
lofingv wants to merge 3 commits intoOpenGradient:mainfrom
Open
refactor: implement pull-over-push pattern for fees#2lofingv wants to merge 3 commits intoOpenGradient:mainfrom
lofingv wants to merge 3 commits intoOpenGradient:mainfrom
Conversation
Author
|
Updated the PR to include a gas optimization for the getPrice function. I've wrapped the sum-of-squares calculation in an unchecked block, as the supply and amount values in this context won't trigger an overflow. This will reduce transaction costs for users. |
Author
Summary of ChangesI have completed the update of the test suite to ensure full compatibility with the Pull-over-Push fee distribution pattern. The previous tests were failing because they expected immediate ETH transfers, which is exactly the vulnerability my PR addresses. Key Improvements:
The codebase is now more resilient against DoS attacks and follows the best practices for smart contract fee management. Ready for final review! |
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.
Overview
This PR introduces a major security improvement by implementing the Pull-over-Push pattern for subject fee distribution.
Why this is necessary
Currently,
buySharesandsellSharesattempt to send ETH/BNB directly to thedigitalTwinOwner.If an owner is a smart contract that rejects incoming transfers (no
receivefunction), it creates a Denial of Service (DoS). No one would be able to buy or sell shares of that specific twin.Changes
claimableFeesmapping to store fees securely.buySharesandsellSharesto accrue fees instead of pushing them.withdrawFees()function for owners to claim their earnings.This ensures the core trading logic remains functional regardless of the owner's contract implementation.