@bombearn/sdk
Version:
Interaction framework for the yearn protocol
159 lines (158 loc) • 5.66 kB
TypeScript
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 {};