UNPKG

@q-dev/q-js-sdk

Version:

Typescript Library to interact with Q System Contracts

152 lines (151 loc) 6.92 kB
import type { ContractTransaction, BigNumberish } from 'ethers'; import { QVault } from '../../ethers-contracts/QVault'; import { VotingLockInfo, QNonPayableTx, QPayableTx, StakeDelegationInfo, TimeLockEntry, QVaultBalanceDetails, SignerOrProvider } from '../../types'; import { CompoundRateKeeperInstance } from '../common/CompoundRateKeeperInstance'; import { ERC20HelperInstance } from '../ERC20HelperInstance'; import { VotingWeightProxyInstance } from '../governance/VotingWeightProxyInstance'; /** * QVault instance to interact with QVault contract. * See [onchain documentation](@system-contracts-repo/@network/QVault/) for more details. * An instance of this class for a deployed network can be obtained via {@link ContractRegistryInstance.qVault} */ export declare class QVaultInstance extends ERC20HelperInstance<QVault> { static readonly registryKey = "tokeneconomics.qVault"; static readonly abi = "QVault.json"; private c; /** * VotingWeightProxy instance. Used by local methods. */ votingWeightProxy: VotingWeightProxyInstance; constructor(signerOrProvider: SignerOrProvider, address: string); /** * [External documentation](@system-contracts-repo/@network/QVault/#aggregatednormalizedbalance) */ aggregatedNormalizedBalance(): Promise<string>; /** @deprecated use getCompoundRateKeeper */ compoundRateKeeper(): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/QVault/#getcompoundratekeeper) */ getCompoundRateKeeper(): Promise<CompoundRateKeeperInstance>; /** * [External documentation](@system-contracts-repo/@network/QVault/#deposit) */ deposit(txOptions?: QPayableTx): Promise<ContractTransaction>; /** * [External documentation](@system-contracts-repo/@network/QVault/#lock) */ lock(amount: string, txOptions?: QNonPayableTx): Promise<ContractTransaction>; /** * [External documentation](@system-contracts-repo/@network/QVault/#announceunlock) */ announceUnlock(amount: string, txOptions?: QNonPayableTx): Promise<ContractTransaction>; /** * [External documentation](@system-contracts-repo/@network/QVault/#unlock) */ unlock(amount: string, txOptions?: QNonPayableTx): Promise<ContractTransaction>; /** * [External documentation](@system-contracts-repo/@network/QVault/#withdraw) */ withdraw(amount: string, txOptions?: QNonPayableTx): Promise<ContractTransaction>; /** * Withdraw all available amount. * Use {@link QVaultInstance.getReadyToWithdrawBalance} * @param user account. * @returns Transaction receipt. */ withdrawEntireBalance(user: string): Promise<ContractTransaction>; /** * [External documentation](@system-contracts-repo/@network/QVault/#updatecompoundrate) */ updateCompoundRate(txOptions?: QNonPayableTx): Promise<ContractTransaction>; /** @deprecated compound rate has to be updated via ValidationRewardPoolsInstance */ updateValidatorsCompoundRate(_validator: string, _txOptions?: QNonPayableTx): Promise<ContractTransaction>; /** * [External documentation](@system-contracts-repo/@network/QVault/#delegatestake) */ delegateStake(delegatedTo: string[], stakes: string[], txOptions?: QNonPayableTx): Promise<ContractTransaction>; /** * [External documentation](@system-contracts-repo/@network/QVault/#transferandcall) */ transferAndCall(to: string, value: BigNumberish, data: string | number[], txOptions?: QNonPayableTx): Promise<ContractTransaction>; /** * [External documentation](@system-contracts-repo/@network/QVault/#withdrawto) */ withdrawTo(recipient: string, amount: BigNumberish, txOptions?: QNonPayableTx): Promise<ContractTransaction>; /** * [External documentation](@system-contracts-repo/@network/QVault/#depositto) */ depositTo(recipient: string, txOptions?: QPayableTx): Promise<ContractTransaction>; /** * Token amount that can be withdrawn at current moment. * This method takes into account all locks of QVault * @param user account * @returns Withdrawable amount */ getReadyToWithdrawBalance(user: string): Promise<string>; /** * Calculate total delegation stake for chosen account. * @param user account. * @returns total delegated stake. */ getTotalDelegatedStake(user: string): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/QVault/#getdelegationslist) */ getDelegationsList(user: string): Promise<StakeDelegationInfo[]>; /** * [External documentation](@system-contracts-repo/@network/QVault/#getnormalizedbalance) */ getNormalizedBalance(userAddress: string): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/QVault/#claimstakedelegatorreward) */ claimStakeDelegatorReward(txOptions?: QNonPayableTx): Promise<ContractTransaction>; /** * [External documentation](@system-contracts-repo/@network/QVault/#depositfrompool) */ depositFromPool(txOptions?: QPayableTx): Promise<ContractTransaction>; /** @deprecated user balance has to be received via balanceOf */ getUserBalance(user: string): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/QVault/#getbalancedetails) */ getBalanceDetails(user: string): Promise<QVaultBalanceDetails>; /** * [External documentation](@system-contracts-repo/@network/QVault/#getlockinfo) */ getLockInfo(user: string): Promise<VotingLockInfo>; /** * Calculate available to delegate amount * @param user account * @returns delegatable amount */ getDelegatableAmount(user: string): Promise<string>; /** * Calculate available to lock amount * @param user account * @returns lockable amount */ getLockableAmount(user: string): Promise<string>; /** * {@link TimeLockHelperInstance.depositOnBehalfOf | Internal documentation} */ depositOnBehalfOf(account: string, start: BigNumberish, end: BigNumberish, txOptions?: QPayableTx): Promise<ContractTransaction>; /** * {@link TimeLockHelperInstance.getTimeLocks | Internal documentation} */ getTimeLocks(account: string): Promise<TimeLockEntry[]>; /** * {@link TimeLockHelperInstance.getMinimumBalance | Internal documentation} */ getMinimumBalance(account: string, timestamp: BigNumberish): Promise<string>; /** * {@link TimeLockHelperInstance.purgeTimeLocks | Internal documentation} */ purgeTimeLocks(account: string, txOptions?: QNonPayableTx): Promise<ContractTransaction>; } /** @deprecated use QVaultInstance instead */ export declare type PiggyBankInstance = QVaultInstance; /** @deprecated use QVault instead */ export declare type PiggyBank = QVault;