magicblock-labs / magicblock-labs/magicblock-validator
Extract the outbox intent lifecycle into a dedicated builtin
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 58
- Forks
- 58
- Avg merge
- 22h 1m
- Merged PRs (30d)
- 53
Description
Scope
Accepting a scheduled intent and managing its outbox are separate responsibilities. Give the outbox lifecycle its own builtin and OutboxIntentInstruction interface, while keeping acceptance in Magic Program.
Register the builtin and update instruction builders, callers, PDA derivation, and recovery scans to use its program ID and account owner.
Existing outboxes need attention before rollout: their owner and derived address change, and legacy lifecycle instructions will no longer be accepted. We still need to decide whether to migrate those accounts or drain them first.
Outcome
The builtin creates outboxes, updates execution stages, handles commit-sent notifications, and closes completed outboxes. Magic Program still accepts scheduled intents and creates their outboxes through CPI.
Moving this code must not weaken the checks around it. Validator authorization, CPI/account validation, and account protection stay enforced, including notification and closure. Callers and recovery scans use the same program ID, account owner, and PDA derivation.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.