For the complete documentation index, see llms.txt. This page is also available as Markdown.

Rate Conversion

Rate conversion functions of Papaya SDK for working with time periods

The Papaya Protocol stores subscription rates as per-second values (raw), but in applications, you'll typically want to display these as more human-readable periods like per month or per year.

Rate Periods

The SDK exports a RatePeriod enum to represent different time periods:

export enum RatePeriod {
  SECOND = 'second',
  HOUR = 'hour',
  DAY = 'day',
  WEEK = 'week',
  MONTH = 'month',
  YEAR = 'year'
}

These period values correspond to the following conversion factors (in seconds):

Period
Seconds

SECOND

1

HOUR

3,600

DAY

86,400

WEEK

604,800

MONTH

2,628,000 (≈30.42 days)

YEAR

31,536,000 (365 days)

convertRatePerSecond()

Converts an amount for a specific period (e.g., 10 USDT per month) to a per-second rate.

Parameters:

  • amount: The rate amount as a string

  • period: The time period for the rate (e.g., RatePeriod.MONTH)

Returns: The equivalent per-second rate as a number.

Example:

convertRateToPeriod()

Converts a per-second rate to a rate for a specified period.

Parameters:

  • ratePerSecond: The per-second rate as a number

  • period: The target time period (e.g., RatePeriod.MONTH)

Returns: The rate for the target period as a number.

Example:

Practical Example

Last updated