Subscription Management

Subscription management in SuiPulse allows you to control access to streams and manage subscriber relationships.

Overview

Subscription management enables:

  • Adding subscribers to streams
  • Checking subscription status
  • Managing subscriber permissions
  • Controlling stream access

Managing Subscriptions

Adding Subscribers

import { SuiPulse, Network } from "@suipulse/sdk";
import { Ed25519Keypair } from "@mysten/sui.js/keypairs/ed25519";

// Initialize SuiPulse
const keypair = Ed25519Keypair.fromSecretKey(/* your private key */);
const suiPulse = new SuiPulse(keypair, Network.MAINNET);

// Add a subscriber to a stream
await suiPulse.subscribeToStream(streamId);

Checking Subscription Status

// Check if an address is subscribed to a stream
const isSubscribed = await suiPulse.isSubscribed(streamId, address);
console.log(`Address ${address} is ${isSubscribed ? "" : "not "}subscribed`);

Managing Subscriber Permissions

// Add permission for a subscriber
await suiPulse.addPermission(streamId, address, permissionLevel);

// Permission levels:
// 0: Read access
// 1: Write access
// 2: Admin access

Best Practices

  1. Access Control

    • Implement proper permission checks
    • Monitor subscription changes
    • Handle permission updates
  2. Performance

    • Optimize subscription checks
    • Manage large subscriber lists
    • Handle concurrent updates
  3. Security

    • Validate subscriber addresses
    • Implement proper access control
    • Monitor subscription patterns

Use Cases

  • Multi-user applications
  • Access control systems
  • Collaborative platforms
  • Enterprise data sharing
  • DeFi protocols

Next Steps