-
Notifications
You must be signed in to change notification settings - Fork 33
typed error taxonomy with exhaustive negative-path tests for settlement #449
Copy link
Copy link
Open
Labels
GRANTFOX OSSGrantFox open-source campaign taskGrantFox open-source campaign taskMAYBE REWARDEDMay be rewarded under the GrantFox campaignMay be rewarded under the GrantFox campaignOfficial Campaign | FWC26GrantFox FWC26 official campaignGrantFox FWC26 official campaignTHIRD CAMPAIGNarea:settlementsettlementsettlementpriority:mediumMedium priorityMedium prioritystack:rustRustRuststack:sorobanSoroban smart contractSoroban smart contracttype:refactorRefactor without behavior changeRefactor without behavior change
Description
Activity
Metadata
Metadata
Assignees
Labels
GRANTFOX OSSGrantFox open-source campaign taskGrantFox open-source campaign taskMAYBE REWARDEDMay be rewarded under the GrantFox campaignMay be rewarded under the GrantFox campaignOfficial Campaign | FWC26GrantFox FWC26 official campaignGrantFox FWC26 official campaignTHIRD CAMPAIGNarea:settlementsettlementsettlementpriority:mediumMedium priorityMedium prioritystack:rustRustRuststack:sorobanSoroban smart contractSoroban smart contracttype:refactorRefactor without behavior changeRefactor without behavior change
Summary
settlement returns generic or panicking failures, so callers can't distinguish causes and some rejections are untested. Introduce a typed error enum and cover every negative path.
Why this matters
Untyped failures and untested rejections hide bugs and confuse integrators. A typed taxonomy + negative tests is correctness insurance.
Requirements
Technical guidance
Edge cases — each must have a test
Acceptance criteria
cargo fmt --check,cargo clippy --all-targets -- -D warnings, andcargo testall pass locallyCloses #<issue>Out of scope
Rewards
Part of the GrantFox OSS / Official Campaign (FWC26) — this task may be rewarded. PR quality is assessed by AI: depth, correctness under edge cases, meaningful tests, and clean design are what earn the reward. Shallow changes (typos, formatting, trivial docs) do not qualify.