@bandz/protocol-js
Version:
Bandz protocol data aggregation tool
22 lines (21 loc) • 1.72 kB
TypeScript
import IERC20ServiceInterface from '../interfaces/ERC20';
import { IStakedToken, IAaveStakingHelper } from '../contract-types';
import StakingInterface from '../interfaces/Staking';
import { Configuration, SmartBCHTransactionTypeExtended, StakingNetworkConfig, tSmartBCHAddress, tStringCurrencyUnits } from '../types';
import BaseService from './BaseService';
export default class StakingService extends BaseService<IStakedToken> implements StakingInterface {
readonly stakingHelperContract: IAaveStakingHelper;
readonly stakingContractAddress: tSmartBCHAddress;
readonly stakingRewardTokenContractAddress: tSmartBCHAddress;
readonly stakingHelperContractAddress: tSmartBCHAddress | undefined;
readonly erc20Service: IERC20ServiceInterface;
readonly tokenStake: string;
readonly stakingConfig: StakingNetworkConfig | undefined;
constructor(config: Configuration, erc20Service: IERC20ServiceInterface, tokenStake: string, stakingConfig: StakingNetworkConfig | undefined);
signStaking(user: tSmartBCHAddress, amount: tStringCurrencyUnits, nonce: string): Promise<string>;
stakeWithPermit(user: tSmartBCHAddress, amount: tStringCurrencyUnits, signature: string): Promise<SmartBCHTransactionTypeExtended[]>;
stake(user: tSmartBCHAddress, amount: tStringCurrencyUnits, onBehalfOf?: tSmartBCHAddress): Promise<SmartBCHTransactionTypeExtended[]>;
redeem(user: tSmartBCHAddress, amount: tStringCurrencyUnits): Promise<SmartBCHTransactionTypeExtended[]>;
cooldown(user: tSmartBCHAddress): Promise<SmartBCHTransactionTypeExtended[]>;
claimRewards(user: tSmartBCHAddress, amount: tStringCurrencyUnits): Promise<SmartBCHTransactionTypeExtended[]>;
}