fix(market): reject deposits at exactly end_time (>= instead of >) - #651
Open
Akeem813 wants to merge 1 commit into
Open
fix(market): reject deposits at exactly end_time (>= instead of >)#651Akeem813 wants to merge 1 commit into
Akeem813 wants to merge 1 commit into
Conversation
The expiry guard in deposit_collateral used a strict greater-than
comparison:
if env.ledger().timestamp() > market.end_time { … }
This allowed a deposit to land in the same ledger second as the market's
end_time, which is incorrect: end_time is the expiry instant, not the
last valid second. A deposit at timestamp == end_time is a deposit into
an expired market and must be rejected.
Change the comparison to >= so the guard fires at end_time itself:
if env.ledger().timestamp() >= market.end_time { … }
Acceptance criteria:
- deposit at timestamp < end_time → accepted (unchanged)
- deposit at timestamp == end_time → rejected with MarketExpired (fixed)
- deposit at timestamp > end_time → rejected with MarketExpired (unchanged)
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.
close 548
The expiry guard in
deposit_collateralused strict greater-than (>):This admitted a deposit whose ledger timestamp equals
end_timeexactly.end_timeis the market's expiry instant — a deposit that lands in the same ledger second is a deposit into an expired market and must be rejected.Fix
Change the comparison to greater-than-or-equal (
>=):Boundary Behaviour
< end_time== end_timeMarketExpired(fixed)> end_timeMarketExpiredMarketExpiredFiles Changed
contracts/market/src/deposit.rs— change>to>=in the expiry checkAcceptance Criteria
MarketExpiredMarketExpired(fixed)