Description
Add functionality to burn (permanently destroy) tokens with proper authorization checks and event emission for tracking burned tokens.
Files to Modify
contracts/manage_hub/src/membership_token.rs - Add burn functionality
contracts/manage_hub/src/lib.rs - Add burn endpoint
contracts/manage_hub/src/events.rs - Add burn event
contracts/manage_hub/src/types.rs - Add burn authorization types
Key Changes Required
- Burn Function - Implement token burning with ownership verification
- Authorization - Add role-based permissions for burning tokens
- Event Emission - Emit events when tokens are burned
- Supply Tracking - Update total supply counters after burning
- Burn History - Maintain record of burned tokens
- Batch Burning - Support burning multiple tokens in one transaction
Acceptance Criteria
- Implement burn_token function with proper authorization
- Add BurnToken event with token ID and burner address
- Update total supply after burning
- Prevent burning of non-existent tokens
- Add batch_burn function for multiple tokens
- Include burn reason/metadata in events
- Add query function to retrieve burn history
- Implement burn restrictions based on token state