Description
Offerings often have jurisdiction-specific holder eligibility (Reg D, Reg S, etc.). Add a per-holder jurisdiction: Symbol field and a per-offering allowlist that gates share transfers and snapshot inclusion. Pair with structured-error rejection on disallowed jurisdictions.
Requirements and context
- Must be secure, tested, and documented
- Should be efficient and easy to review
- Relevant code:
Revora-Contracts/src/lib.rs
- Jurisdiction set must be mutable only by issuer with audit event
Suggested execution
- Fork the repo and create a branch
git checkout -b feat/jurisdiction-tagging
- Implement changes
- Add
set_allowed_jurisdictions(offering_id, Vec<Symbol>)
- Reject
set_holder_share for holders whose jurisdiction is not in the set with JurisdictionDisallowed
- Emit
jur_set and jur_reject events
- Validate security and correctness assumptions
Test and commit
- Run tests
- Cover edge cases
- Removing a jurisdiction must not retroactively reject already-recorded holders
- Include test output and security notes
Example commit message
feat: add jurisdiction tagging with compliance-gated share transfer
Guidelines
- Minimum 95 percent test coverage
- Clear documentation
- Timeframe: 96 hours
Description
Offerings often have jurisdiction-specific holder eligibility (Reg D, Reg S, etc.). Add a per-holder
jurisdiction: Symbolfield and a per-offering allowlist that gates share transfers and snapshot inclusion. Pair with structured-error rejection on disallowed jurisdictions.Requirements and context
Revora-Contracts/src/lib.rsSuggested execution
git checkout -b feat/jurisdiction-taggingset_allowed_jurisdictions(offering_id, Vec<Symbol>)set_holder_sharefor holders whose jurisdiction is not in the set withJurisdictionDisallowedjur_setandjur_rejecteventsTest and commit
cargo test --allExample commit message
feat: add jurisdiction tagging with compliance-gated share transferGuidelines