Subscription Methods
Subscription methods of Papaya SDK for managing subscriptions to content creators
subscribe()
subscribe()
Creates a new subscription to a creator.
async subscribe(
author: string,
amount: number | bigint,
period: RatePeriod = RatePeriod.MONTH,
projectId: number
): Promise<ethers.TransactionResponse>
Parameters:
author
: The address of the creator to subscribe toamount
: The amount of tokens for the subscription periodperiod
: (Optional) The subscription period (default: RatePeriod.MONTH)projectId
: The project ID associated with the subscription
Returns: An ethers.js TransactionResponse
object.
Example:
const creatorAddress = '0x...';
const tx = await papaya.subscribe(creatorAddress, 10, RatePeriod.MONTH, 0);
await tx.wait();
subscribeBySig()
subscribeBySig()
Creates a subscription transaction that can be signed off-chain and executed by anyone.
async subscribeBySig(
author: string,
amount: number | bigint,
period: RatePeriod = RatePeriod.MONTH,
projectId: number,
deadline: number
): Promise<ethers.TransactionResponse>
Parameters:
author
: The address of the creator to subscribe toamount
: The amount of tokens for the subscription periodperiod
: (Optional) The subscription period (default: RatePeriod.MONTH)projectId
: The project ID associated with the subscriptiondeadline
: Timestamp after which the transaction can't be executed
Returns: An ethers.js TransactionResponse
object.
Example:
const creatorAddress = '0x...';
const deadline = Math.floor(Date.now() / 1000) + 3600; // 1 hour from now
const tx = await papaya.subscribeBySig(creatorAddress, 10, RatePeriod.MONTH, 0, deadline);
await tx.wait();
unsubscribe()
unsubscribe()
Cancels a subscription to a creator.
async unsubscribe(author: string): Promise<ethers.TransactionResponse>
Parameters:
author
: The address of the creator to unsubscribe from
Returns: An ethers.js TransactionResponse
object.
Example:
const creatorAddress = '0x...';
const tx = await papaya.unsubscribe(creatorAddress);
await tx.wait();
unsubscribeBySig()
unsubscribeBySig()
Creates an unsubscribe transaction that can be signed off-chain and executed by anyone.
async unsubscribeBySig(author: string, deadline: number): Promise<ethers.TransactionResponse>
Parameters:
author
: The address of the creator to unsubscribe fromdeadline
: Timestamp after which the transaction can't be executed
Returns: An ethers.js TransactionResponse
object.
Example:
const creatorAddress = '0x...';
const deadline = Math.floor(Date.now() / 1000) + 3600; // 1 hour from now
const tx = await papaya.unsubscribeBySig(creatorAddress, deadline);
await tx.wait();
getSubscriptions()
getSubscriptions()
Gets all subscriptions for an account.
async getSubscriptions(account?: string): Promise<Subscription[]>
Parameters:
account
: (Optional) The address to get subscriptions for. If not provided, uses the connected signer's address.
Returns: Array of Subscription
objects, each containing:
recipient
: The address receiving the subscriptionincomeRate
: The rate at which the recipient is receiving tokens (raw format)outgoingRate
: The rate at which the subscriber is paying tokens (raw format)projectId
: The project ID associated with the subscription
Example:
// Get raw subscriptions
const subscriptions = await papaya.getSubscriptions();
// Format the subscription rates to human-readable monthly values
const formattedSubscriptions = subscriptions.map(sub => ({
recipient: sub.recipient,
incomeRate: convertRateToPeriod(formatOutput(sub.incomeRate, 18), RatePeriod.MONTH),
outgoingRate: convertRateToPeriod(formatOutput(sub.outgoingRate, 18), RatePeriod.MONTH),
projectId: sub.projectId
}));
Last updated