import Host from "./Host"; import Operation from "./Operation"; import SuperfluidAgreement from "./SuperfluidAgreement"; import { IApproveSubscriptionParams, IClaimParams, ICreateIndexParams, IDeleteSubscriptionParams, IDistributeParams, IGetIndexParams, IGetSubscriptionParams, IRevokeSubscriptionParams, IUpdateIndexValueParams, IUpdateSubscriptionUnitsParams, IWeb3Index, IWeb3Subscription } from "./interfaces"; import { IInstantDistributionAgreementV1 } from "./typechain-types"; /** * Instant Distribution Agreement V1 Helper Class * @description A helper class to interact with the IDAV1 contract. */ export default class InstantDistributionAgreementV1 extends SuperfluidAgreement { readonly host: Host; readonly contract: IInstantDistributionAgreementV1; constructor(hostAddress: string, idaV1Address: string); /** ### IDA Read Functions ### */ /** * Get the details of a `Subscription`. * @param superToken the superToken of the agreement * @param publisher the address of the publisher of the index * @param indexId the index id * @param subscriber the subscriber's address * @param providerOrSigner a provider or signer object * @returns {Promise} Web3 Subscription object */ getSubscription: (params: IGetSubscriptionParams) => Promise; /** * Get the details of an `Index`. * @param superToken the superToken of the agreement * @param publisher the address of the publisher of the index * @param indexId the index id * @param providerOrSigner a provider or signer object * @returns {Promise} Web3 Index object */ getIndex: (params: IGetIndexParams) => Promise; /** ### IDA Write Functions ### */ /** * Creates an IDA Index. * @param indexId The id of the index. * @param superToken The address of the `index` superToken. * @param userData Extra user data provided. * @param overrides ethers overrides object for more control over the transaction sent. * @returns {Operation} An instance of Operation which can be executed or batched. */ createIndex: (params: ICreateIndexParams) => Operation; /** * Distributes `amount` of `superToken` to an index * @param indexId The id of the index. * @param amount The amount of `superToken` to be distributed. * @param superToken The superToken to be distributed. * @param userData Extra user data provided. * @param overrides ethers overrides object for more control over the transaction sent. * @returns {Operation} An instance of Operation which can be executed or batched. */ distribute: (params: IDistributeParams) => Operation; /** * Updates the `indexValue` of an index. * @description NOTE: It has the same effect as `distribute`, but is closer to the low level data structure of the index. * @param indexId The id of the index. * @param indexValue The new indexValue. * @param superToken The superToken to be distributed. * @param userData Extra user data provided. * @param overrides ethers overrides object for more control over the transaction sent. * @returns {Operation} An instance of Operation which can be executed or batched. */ updateIndexValue: (params: IUpdateIndexValueParams) => Operation; /** * Updates the `units` allocated to a Subscription. * @param indexId The id of the index. * @param superToken The superToken of the index. * @param subscriber The subscriber address whose units you want to update. * @param units The amount of units you want to update to. * @param userData Extra user data provided. * @param overrides ethers overrides object for more control over the transaction sent. * @returns {Operation} An instance of Operation which can be executed or batched. */ updateSubscriptionUnits: (params: IUpdateSubscriptionUnitsParams) => Operation; /** * Approves a Subscription, so the Subscriber won't need to claim tokens when the Publisher distributes. * @param indexId The id of the index. * @param superToken The superToken of the index. * @param publisher The publisher of the index you want to approve. * @param userData Extra user data provided. * @param overrides ethers overrides object for more control over the transaction sent. * @returns {Operation} An instance of Operation which can be executed or batched. */ approveSubscription: (params: IApproveSubscriptionParams) => Operation; /** * Revokes a Subscription, so the Subscriber will need to claim tokens when the Publisher distributes. * @param indexId The id of the index. * @param superToken The superToken of the index. * @param subscriber The subscriber address whose subscription you want to revoke. * @param userData Extra user data provided. * @param overrides ethers overrides object for more control over the transaction sent. * @returns {Operation} An instance of Operation which can be executed or batched. */ revokeSubscription: (params: IRevokeSubscriptionParams) => Operation; /** * Deletes a Subscription by setting the `units` allocated to the Subscriber to 0. * @param indexId The id of the index. * @param superToken The superToken of the index. * @param subscriber The subscriber address whose subscription you want to delete. * @param publisher The publisher address of the index you are targeting. * @param userData Extra user data provided. * @param overrides ethers overrides object for more control over the transaction sent. * @returns {Operation} An instance of Operation which can be executed or batched. */ deleteSubscription: (params: IDeleteSubscriptionParams) => Operation; /** * Claims any pending tokens allocated to the Subscription (unapproved). * @param indexId The id of the index. * @param superToken The superToken of the index. * @param subscriber The subscriber address whose subscription you want to delete. * @param publisher The publisher address of the index you are targeting. * @param userData Extra user data provided. * @param overrides ethers overrides object for more control over the transaction sent. * @returns {Operation} An instance of Operation which can be executed or batched. */ claim: (params: IClaimParams) => Operation; } //# sourceMappingURL=InstantDistributionAgreementV1.d.ts.map