UNPKG

@bombearn/sdk

Version:

Interaction framework for the yearn protocol

159 lines (158 loc) 5.66 kB
import { ChainId } from "../chain"; import { ServiceInterface } from "../common"; import { Address, Balance, Gauge, GaugeDynamic, GaugeStatic, GaugeUserMetadata, Integer, Position, Token, TokenAllowance, WriteTransactionProps, WriteTransactionResult } from "../types"; interface ApproveStakeProps extends WriteTransactionProps { accountAddress: Address; tokenAddress: Address; gaugeAddress: Address; amount?: Integer; } interface StakeProps extends WriteTransactionProps { accountAddress: Address; tokenAddress: Address; gaugeAddress: Address; amount: Integer; } interface UnstakeProps extends WriteTransactionProps { accountAddress: Address; gaugeAddress: Address; amount: Integer; } interface ClaimRewardsProps extends WriteTransactionProps { accountAddress: Address; gaugeAddress: Address; } interface ClaimAllRewardsProps extends WriteTransactionProps { accountAddress: Address; addresses?: Address[]; claimVotingEscrow?: boolean; } export declare class GaugeInterface<T extends ChainId> extends ServiceInterface<T> { /** * Get all Gauges * @param addresses filter, if not provided, all are returned * @returns Gauge array */ get({ addresses }: { addresses?: Address[]; }): Promise<Gauge[]>; /** * Get static properties of Gauges * @param addresses filter, if not provided, all are returned * @returns GaugeStatic array */ getStatic({ addresses }: { addresses?: Address[]; }): Promise<GaugeStatic[]>; /** * Get dynamic properties of Gauges * @param addresses filter, if not provided, all are returned * @returns GaugeDynamic array */ getDynamic({ addresses }: { addresses?: Address[]; }): Promise<GaugeDynamic[]>; /** * Get all Gauge positions of an account * @param accountAddress user wallet address * @param addresses filter, if not provided, all are returned * @returns Position array */ positionsOf({ accountAddress, addresses, }: { accountAddress: Address; addresses?: Address[]; }): Promise<Position[]>; /** * Get the Gauges user metadata of an account * @param accountAddress * @param addresses filter, if not provided, all are returned * @returns */ metadataOf({ accountAddress, addresses, }: { accountAddress: Address; addresses?: Address[]; }): Promise<GaugeUserMetadata[]>; /** * Get all Gauge underlying token balances of an account * @param accountAddress user wallet address * @param addresses filter, if not provided, all are returned * @returns Balance array */ balances({ accountAddress, addresses, }: { accountAddress: Address; addresses?: Address[]; }): Promise<Balance[]>; /** * Get all Gauge underlying tokens * @param addresses filter, if not provided, all are returned * @returns Token array */ tokens({ addresses }: { addresses?: Address[]; }): Promise<Token[]>; /** * Fetch the token amount that has been allowed to be used to stake * @param accountAddress * @param tokenAddress * @param gaugeAddress * @returns TokenAllowance */ getStakeAllowance({ accountAddress, tokenAddress, gaugeAddress, }: { accountAddress: Address; tokenAddress: Address; gaugeAddress: Address; }): Promise<TokenAllowance>; /** * Approve the token amount to allow to be used to stake * @param accountAddress * @param tokenAddress * @param gaugeAddress * @param amount * @param populate return populated transaction payload when truthy * @param overrides * @returns TransactionResponse | PopulatedTransaction */ approveStake<P extends ApproveStakeProps>(props: P): WriteTransactionResult<P>; /** * Stake an amount of tokens into a Gauge * @param accountAddress * @param tokenAddress * @param gaugeAddress * @param amount * @param populate return populated transaction payload when truthy * @param overrides * @returns TransactionResponse | PopulatedTransaction */ stake<P extends StakeProps>(props: P): WriteTransactionResult<P>; /** * Unstake an amount of tokens from a Gauge * @param accountAddress * @param gaugeAddress * @param amount * @param populate return populated transaction payload when truthy * @param overrides * @returns TransactionResponse | PopulatedTransaction */ unstake<P extends UnstakeProps>(props: P): WriteTransactionResult<P>; /** * Claim reward tokens from a Gauge * @param accountAddress * @param gaugeAddress * @param populate return populated transaction payload when truthy * @param overrides * @returns TransactionResponse | PopulatedTransaction */ claimRewards<P extends ClaimRewardsProps>(props: P): WriteTransactionResult<P>; /** * Claim rewards from all Gauges and Voting Escrow * @param accountAddress * @param addresses filter, if not provided, all are claimed * @param claimVotingEscrow * @param populate return populated transaction payload when truthy * @param overrides * @returns TransactionResponse | PopulatedTransaction */ claimAllRewards<P extends ClaimAllRewardsProps>(props: P): WriteTransactionResult<P>; private getSupportedAddresses; } export {};