Constructor
new Subscriptions(options)
Create an instance of the Subscriptions service.
Parameters:
Name |
Type |
Description |
options |
|
See CaskSDK configuration. |
- See:
-
Methods
(async) activeSubscriptionCount(consumer, provider, planIdopt)
Return the number of active/trialing subscriptions a consumer has to a specific provider and plan.
Parameters:
Name |
Type |
Attributes |
Description |
consumer |
string
|
|
Consumer address |
provider |
string
|
|
Provider address |
planId |
number
|
<optional>
|
Plan ID |
(async) attachData(subscriptionId, data, optionsopt, authSigopt, privacyopt) → {Promise.<{tx: *}>}
Attach transferrable private data to a subscription.
Parameters:
Name |
Type |
Attributes |
Default |
Description |
subscriptionId |
|
|
|
|
data |
|
|
|
|
options |
|
<optional>
|
|
Additional Options |
authSig |
object
|
<optional>
|
|
LIT authsig |
privacy |
|
<optional>
|
enc.mode.TRANSFERRABLE
|
privacy setting for attached data. |
Returns:
-
Type
-
Promise.<{tx: *}>
(async) attachedData(subscriptionId, optionsopt, authSigopt, privacyopt) → {Promise.<*>}
Get the transferrable private data attached to a subscription.
Parameters:
Name |
Type |
Attributes |
Default |
Description |
subscriptionId |
|
|
|
|
options |
|
<optional>
|
|
Additional Options |
authSig |
object
|
<optional>
|
|
LIT authsig |
privacy |
|
<optional>
|
enc.mode.TRANSFERRABLE
|
privacy setting for attached data. |
Returns:
-
Type
-
Promise.<*>
(async) cancel(subscriptionId, cancelAt) → {Promise.<{tx: *}>}
Cancel (or schedule to be canceled) a subscription.
Parameters:
Name |
Type |
Default |
Description |
subscriptionId |
string
|
|
Subscription ID |
cancelAt |
number
|
0
|
Unix timestamp for scheduled cancellation, use 0 to turn off a scheduled cancellation. |
Returns:
-
Type
-
Promise.<{tx: *}>
(async) change(subscriptionId, args) → {Promise.<{ref, tx: *, provider, chainId, planId, subscriptionId, consumer: (*)}>}
Change a subscription, such as plan change, the discount or metadata.
Parameters:
Name |
Type |
Description |
subscriptionId |
|
ID of subscription to change |
args |
Object
|
change function options
Properties
Name |
Type |
Attributes |
Description |
planId |
number
|
|
Plan ID for new subscription |
discountCode |
string
|
<optional>
|
Discount code of discount to apply to subscription |
discountTokenValidator |
string
|
<optional>
|
Discount token validator for token discount to apply to subscription |
name |
string
|
<optional>
|
Name for NFT - defaults to auto generated name |
description |
string
|
<optional>
|
Description for NFT - defaults to auto generated description |
image |
string
|
<optional>
|
URL for NFT image - defaults to provider icon URL if not supplied |
external_url |
string
|
<optional>
|
URL for NFT - defaults to provider website URL if not supplied |
attributes |
Array
|
<optional>
|
Array of attributes to store with IPFS NFT data |
metadata |
Object
|
<optional>
|
Non-encrypted data to associate with subscription |
|
Returns:
-
Type
-
Promise.<{ref, tx: *, provider, chainId, planId, subscriptionId, consumer: (*)}>
Create a new subscription.
Parameters:
Name |
Type |
Description |
args |
Object
|
Function arguments
Properties
Name |
Type |
Attributes |
Description |
provider |
string
|
|
Address of service provider |
planId |
number
|
|
Plan ID for new subscription |
ref |
string
|
<optional>
|
Optional bytes32 value to associate with subscription |
cancelAt |
number
|
<optional>
|
Optional unix timestamp of when to automatically cancel subscription |
name |
string
|
<optional>
|
Name for NFT - defaults to auto generated name |
description |
string
|
<optional>
|
Description for NFT - defaults to auto generated description |
image |
string
|
<optional>
|
URL for NFT image - defaults to provider icon URL if not supplied |
external_url |
string
|
<optional>
|
URL for NFT - defaults to provider website URL if not supplied |
attributes |
Array
|
<optional>
|
Array of attributes to store with IPFS NFT data |
discountCode |
string
|
<optional>
|
Discount code of discount to apply to subscription |
discountTokenValidator |
string
|
<optional>
|
Discount token validator for token discount to apply to subscription |
authSig |
AuthSig
|
<optional>
|
AuthSig for attaching private data to subscription |
privateData |
Object
|
<optional>
|
Private data to attach to subscription |
metadata |
Object
|
<optional>
|
Non-encrypted data to associate with subscription |
|
Returns:
-
Type
-
Subscriptions.CreateSubscriptionResult
(async) estimatedCommitment(address, periodopt)
Get the estimated spend by a consumer on all subscriptions for a specific period
Parameters:
Name |
Type |
Attributes |
Default |
Description |
address |
string
|
|
|
Consumer address |
period |
number
|
<optional>
|
1 month
|
Commitment period |
Get the details of a specific subscription.
Parameters:
Name |
Type |
Attributes |
Description |
subscriptionId |
|
|
|
options |
|
<optional>
|
Additional Options
Properties
Name |
Type |
Attributes |
Default |
Description |
decryptPrivateData |
boolean
|
<optional>
|
false
|
Decrypt private data (if present) |
authSig |
AuthSig
|
<optional>
|
|
Authsig for private data decryption |
units |
string
|
<optional>
|
|
Units of output |
unitOptions |
Object
|
<optional>
|
{}
|
Options passed to unit formatter. |
|
- See:
-
Returns:
-
Type
-
Promise.<Subscriptions.SubscriptionDetail>
(async) getConsumerSubscriptionCount(addressopt) → {Promise.<*>}
Get the current number of subscriptions for an address.
Parameters:
Name |
Type |
Attributes |
Default |
Description |
address |
|
<optional>
|
ethersConnection.address
|
Provider address or attempts to use the blockchain connection address |
- Deprecated:
Returns:
-
Type
-
Promise.<*>
(async) getConsumerSubscriptions(addressopt, limitopt, offsetopt, orderByopt, orderDirectionopt) → {Promise.<*>}
Get a map of subscriptions for a specified address
Parameters:
Name |
Type |
Attributes |
Default |
Description |
address |
|
<optional>
|
ethersConnection.address
|
Provider address or attempts to use the blockchain connection address |
limit |
|
<optional>
|
10
|
Limit |
offset |
|
<optional>
|
0
|
Offset |
orderBy |
|
<optional>
|
createdAt
|
Order by |
orderDirection |
|
<optional>
|
asc
|
Order direction, one of asc or desc |
- Deprecated:
Returns:
-
Type
-
Promise.<*>
(async) getProviderSubscriptionCount(addressopt, includeCanceledopt, planId) → {Promise.<*>}
Get the number of subscriptions that are subscribed to a specified service provider.
Parameters:
Name |
Type |
Attributes |
Default |
Description |
address |
|
<optional>
|
ethersConnection.address
|
Provider address or attempts to use the blockchain connection address |
includeCanceled |
|
<optional>
|
false
|
Also include canceled subscriptions |
planId |
|
|
|
Plan ID |
- Deprecated:
Returns:
-
Type
-
Promise.<*>
(async) getProviderSubscriptions(addressopt, limitopt, offsetopt, orderByopt, orderDirectionopt) → {Promise.<*>}
Get a map of subscriptions that are subscribed to a specified service provider.
Parameters:
Name |
Type |
Attributes |
Default |
Description |
address |
|
<optional>
|
ethersConnection.address
|
Provider address or attempts to use the blockchain connection address |
limit |
|
<optional>
|
10
|
Limit |
offset |
|
<optional>
|
0
|
Offset |
orderBy |
|
<optional>
|
createdAt
|
Order by |
orderDirection |
|
<optional>
|
asc
|
Order direction, one of asc or desc |
- Deprecated:
Returns:
-
Type
-
Promise.<*>
(async) history(subscriptionId, queryoptsopt) → {Promise.<*>}
Get history for a subscription
Parameters:
Name |
Type |
Attributes |
Description |
subscriptionId |
string
|
|
Subscription ID |
queryopts |
|
<optional>
|
Optional query options
Properties
Name |
Type |
Attributes |
Default |
Description |
limit |
|
<optional>
|
10
|
Limit |
offset |
|
<optional>
|
0
|
Offset |
orderBy |
|
<optional>
|
timestamp
|
Order by |
orderDirection |
|
<optional>
|
desc
|
Order direction, one of asc or desc |
options |
|
<optional>
|
|
Optional options to pass to apollo for graphQL |
|
Returns:
-
Type
-
Promise.<*>
(async) init(args)
Initialize the subscription service.
Parameters:
Name |
Type |
Description |
args |
Object
|
Function arguments
Properties
Name |
Type |
Attributes |
Description |
ethersConnection |
EthersConnection
|
<optional>
|
EthersConnection instance |
|
(async) pause(subscriptionId) → {Promise.<{tx: *}>}
Pause an active subscription.
Parameters:
Name |
Type |
Description |
subscriptionId |
string
|
Subscription ID |
Returns:
-
Type
-
Promise.<{tx: *}>
(async) resume(subscriptionId) → {Promise.<{tx: *}>}
Resume a paused subscription.
Parameters:
Name |
Type |
Description |
subscriptionId |
string
|
Subscription ID |
Returns:
-
Type
-
Promise.<{tx: *}>
serviceAvailable() → {boolean}
See if the Subscription service is available on the currently connected chain
Returns:
-
Type
-
boolean
Retrieve service configuration parameters for the Subscription service.
Returns:
-
Type
-
Subscriptions.ServiceParameters
Type Definitions
CreateSubscriptionResult
Properties:
Name |
Type |
Description |
tx |
Object
|
Create Transaction |
consumer |
string
|
Consumer address |
planId |
number
|
Plan ID |
ref |
string
|
Bytes32 data associated with subscription |
chainId |
number
|
Chain ID that the transacrtion took place on |
subscriptionId |
string
|
ID of newly created subscription |
ServiceParameters
Properties:
Name |
Type |
Description |
paymentFeeMin |
number
|
Minimum fee (in vault baseAsset units) charged for processing a subscription payment |
paymentFeeRateMin |
number
|
Minimum fee (in BPS) charged for processing a subscription payment if staking the max amount of $CASK tokens |
paymentFeeRateMax |
number
|
Maximum fee (in BPS) charged for processing a subscription payment if staking no $CASK tokens |
stakeTargetFactor |
number
|
Stake target factor used to calculate fee discount based on staked $CASK |
paymentMinValue |
number
|
Minimum amount allowed for a single subscription payment |
SubscriptionDetail
Properties:
Name |
Type |
Description |
subscriptionId |
string
|
Subscription ID |
planId |
number
|
ID of plan that subscription is subscribed to |
status |
number
|
Subscription status |
createdAt |
number
|
Unix timestamp of subscription creation time |
renewAt |
number
|
Unix timestamp of next subscription renewal time |
minTermAt |
number
|
Unix timestamp of when subscription minimum term is over, 0 if no minimum term |
cancelAt |
number
|
Unix timestamp of when subscription is scheduled to be canceled |
cid |
string
|
IPFS cid of subscription data |
discountId |
string
|
Discount applied to subscription |
plan |
Plan
|
Plan that subscription is subscribed to |
consumer |
string
|
Address of current subscription holder |
image |
string
|
URL to service provider logo |
metadata |
Object
|
Subscription metadata |