Subscriptions Contract
The Subscriptions contract manages monthly subscriptions for VibesFlow Vibe Market access. Users pay 10 tMETIS for 30-day access to the Vibe Market platform.Contract Overview
Address:0xC5178c585784B93bc408eAd828701155a41e4f76Standard: Custom subscription management
Default Price: 10 tMETIS (configurable)
Default Duration: 30 days (configurable)
Features: Time-based subscriptions, automatic expiration, renewal system
Subscription Model
Subscription Structure
Each user’s subscription is tracked with the following data:Default Configuration
Core Functions
Initial Subscription
- Must send exactly
subscriptionPricetMETIS - Contract must not be paused
- Validates payment amount
- Calculates subscription period
- If existing subscription is active, extends from current end time
- If no subscription or expired, starts new 30-day period
- Updates active subscriber tracking
- Transfers payment to treasury
- Emits subscription event
Subscription Renewal
- Must have previously subscribed
- Must send exactly
subscriptionPricetMETIS
- Validates existing subscription
- If still active, extends from current end time
- If expired, starts new period from current time
- Increments renewal counter
- Updates payment tracking
- Transfers to treasury
Subscription Validation
Active Subscription Check
Time Remaining
Expiration Check
Administrative Functions
Price Management
SubscriptionPriceUpdated event.
Duration Management
SubscriptionDurationUpdated event.
Treasury Configuration
Emergency Controls
Pausable Operations
Emergency Withdrawal
Maintenance Functions
Cleanup Expired Subscriptions
Analytics Functions
Subscriber Metrics
Configuration Queries
Events
Subscription Events
Configuration Events
Security Features
Payment Validation
Strict payment validation ensures exact amounts:Reentrancy Protection
All payable functions usenonReentrant modifier:
Access Control
- Only owner can modify configuration
- Only owner can pause/unpause operations
- Users can only manage their own subscriptions