Description
Evaluate migrating public functions from panic! to Result with contracterror! enum for clearer client errors.
Requirements and context
- Breaking ABI change — version bump and migration guide.
- Prefer phased approach if needed.
Suggested execution
- Fork the repository and create a branch (example below).
- Implement the changes in the StreamPay-Contracts Soroban crate (
streampay-contracts).
- Keep the contract secure, tested, and documented; prefer small, reviewable diffs.
git checkout -b feature/contract-error-enum
Implementation targets
lib.rs — define errors; update tests.
docs/errors.md.
Tests and validation
-
All former panic paths return distinct errors.
-
Run cargo test in StreamPay-Contracts.
-
Cover edge cases; capture test output and short security notes in the PR description.
Guidelines
- Target minimum 95% test coverage for touched contract code (or justify gaps explicitly).
- Clear documentation (rustdoc / project docs as specified).
- Timeframe: 96 hours from assignment.
Example commit message
feat(contracts): structured errors for stream operations
Description
Evaluate migrating public functions from
panic!toResultwithcontracterror!enum for clearer client errors.Requirements and context
Suggested execution
streampay-contracts).Implementation targets
lib.rs— define errors; update tests.docs/errors.md.Tests and validation
All former panic paths return distinct errors.
Run
cargo testinStreamPay-Contracts.Cover edge cases; capture test output and short security notes in the PR description.
Guidelines
Example commit message