Skip to content

Erebrus Unbound Subscription #10

@Shachindra

Description

@Shachindra

We need NFT subscription contract for offering Unbound Plan for dVPN access.

Unbound Plan

Experience the internet without limits. Secure, decentralized VPN access puts you in control. Break free from restrictions and reclaim your online freedom with the Erebrus Unbound Plan.

Cost

  • 30 Days: $4 USD
  • 90 Days: $9 USD
  • 365 Days: $30 USD

Functions

  • mint(uint days) - Calculate cost based on the days entered (30, 90 or 365) and send the funds to the payoutAddress + mint the NFT setting the expiration accordingly [public]
  • delegateMint(walletAddress, days) - Mint the NFT setting the expiration based on the days to the walletAddress [Operator Only]
  • extend(uint256 tokenId, uint256 expirationTime) - Extends the validity of the NFT (ensure that the newExpirationTime > currentExpirationTime) [Operator Only]
  • setTokenURI(tokenURI []) - Sets tokenURI for these tokenId status: 30Days (Active), 30Days (Expired), 90Days (Active), 90Days (Expired), 365Days (Active), 365Days (Expired) [Operator Only]
  • setSubscriptionCost(subscriptionCost []) - Sets the subscription cost for the 30, 90, 365 Days plan [Operator Only]
  • expiration(uint256 tokenId) - Returns the timestamp when the Subscription expires / NFT becomes invalid [public view]
  • isValid(uint256 tokenId) - Returns true/false based on expiration [public view]
  • burn(uint256 tokenId) - Burns the NFT invalidating the Subscription - [Only Owner]

Operations

  • Add the expirationTime field in events for mint and extend functions
  • Deploy and Verify the contract on peaq (mainnet) and optimism (mainnet)

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions