UNPKG

@superfluid-finance/sdk-core

Version:
146 lines 6.57 kB
import { ethers } from "ethers"; import Host from "./Host"; import SuperfluidAgreement from "./SuperfluidAgreement"; import SuperfluidPoolClass from "./SuperfluidPool"; import { ConnectPoolParams, CreatePoolParams, DisconnectPoolParams, DistributeFlowParams, DistributeParams, EstimateDistributionActualAmountParams, EstimateFlowDistributionActualFlowRateParams, FlowDistributionActualFlowRateData, GDAGetFlowRateParams, GDAGetNetFlowParams, GetPoolAdjustmentFlowInfoParams, GetPoolAdjustmentFlowRateParams, IsMemberConnectedParams, IsPoolParams, PoolAdjustmentFlowInfo } from "./interfaces"; import { GDAv1Forwarder, IGeneralDistributionAgreementV1 } from "./typechain-types"; /** * General Distribution Agreement V1 Helper Class * @description A helper class to interact with the GDAV1 contract. */ export default class GeneralDistributionAgreementV1 extends SuperfluidAgreement { readonly host: Host; readonly contract: IGeneralDistributionAgreementV1; readonly forwarder: GDAv1Forwarder; constructor(hostAddress: string, gdaV1Address: string, gdaV1ForwarderAddress: string); /** * Retrieves the net flow for a specific token and account. * * @param token The token address. * @param account The account address. * @param providerOrSigner A provider or signer object * @returns The net flow of the account for the token. */ getNetFlow: (params: GDAGetNetFlowParams) => Promise<string>; /** * Retrieves the flow rate for a specific token, sender, and pool. * * @param token The token address. * @param from The sender address. * @param pool The pool address. * @param providerOrSigner A provider or signer object * @returns The flow rate from the sender to the pool for the token. */ getFlowRate: (params: GDAGetFlowRateParams) => Promise<string>; /** * Estimates the flow distribution's actual flow rate for a specific token, sender, and pool. * * @param token The token address. * @param from The sender address. * @param pool The pool address. * @param requestedFlowRate The requested flow rate. * @param providerOrSigner A provider or signer object * @returns The flow distribution's actual flow rate and the total distribution flow rate for the pool. */ estimateFlowDistributionActualFlowRate: (params: EstimateFlowDistributionActualFlowRateParams) => Promise<FlowDistributionActualFlowRateData>; /** * Estimates the distribution's actual amount for a specific token, sender, and pool. * * @param token The token address. * @param from The sender address. * @param pool The pool address. * @param requestedAmount The requested amount. * @param providerOrSigner A provider or signer object * @returns The actual amount that will be distributed. */ estimateDistributionActualAmount: (params: EstimateDistributionActualAmountParams) => Promise<string>; /** * Retrieves the pool adjustment flow rate for a specific token and pool. * * @param token The token address. * @param pool The pool address. * @param providerOrSigner A provider or signer object * @returns The pool adjustment flow rate for the token and pool. */ getPoolAdjustmentFlowRate: (params: GetPoolAdjustmentFlowRateParams) => Promise<string>; /** * Checks if a given token and account form a pool. * * @param token The token address. * @param account The account address. * @param providerOrSigner A provider or signer object * @returns Whether the account is a pool for the token. */ isPool: (params: IsPoolParams) => Promise<boolean>; /** * Checks if a member is connected to a specific pool. * * @param pool The pool address. * @param member The member address. * @param providerOrSigner A provider or signer object * @returns Whether the member is connected to the pool. */ isMemberConnected: (params: IsMemberConnectedParams) => Promise<boolean>; /** * Retrieves the pool adjustment flow information for a specific pool. * * @param pool The address of the pool. * @param providerOrSigner A provider or signer object * @returns The recipient of the pool adjustment flow, the flow hash and the rate of the adjustment flow. */ getPoolAdjustmentFlowInfo: (params: GetPoolAdjustmentFlowInfoParams) => Promise<PoolAdjustmentFlowInfo>; /** * Creates a new pool with the given token and admin. * * @param token The token address. * @param admin The admin address. * @returns CreatePoolTxn and SuperfluidPool instance */ createPool: (params: CreatePoolParams) => Promise<{ createPoolTxn: ethers.ContractTransaction; pool: SuperfluidPoolClass; }>; /** * Connects a pool to the contract. * * @param pool The pool address. * @param userData The user data. * @param overrides The transaction overrides. * @returns The call agreement operation result. */ connectPool: (params: ConnectPoolParams) => import("./Operation").default; /** * Disconnects a pool from the contract. * * @param pool The pool address. * @param userData The user data. * @param overrides The transaction overrides. * @returns The call agreement operation result. */ disconnectPool: (params: DisconnectPoolParams) => import("./Operation").default; /** * Distributes funds from the sender's account to the specified pool. * * @param token The token address. * @param from The sender's address. * @param pool The pool address. * @param requestedAmount The requested amount to distribute. * @param userData The user data. * @param overrides The transaction overrides. * @returns The call agreement operation result. */ distribute: (params: DistributeParams) => import("./Operation").default; /** * Distributes the flow from the sender's account to the specified pool. * * @param token The token address. * @param from The sender's address. * @param pool The pool address. * @param requestedFlowRate The requested flow rate. * @param userData The user data. * @param overrides The transaction overrides. * @returns The call agreement operation result. */ distributeFlow: (params: DistributeFlowParams) => import("./Operation").default; } //# sourceMappingURL=GeneralDistributionAgreementV1.d.ts.map