@superfluid-finance/sdk-core
Version:
SDK Core for building with Superfluid Protocol
146 lines • 6.57 kB
TypeScript
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