UNPKG

@ardier16/q-js-sdk

Version:

Typescript Library to interact with Q System Contracts

200 lines (199 loc) 8.98 kB
import Web3 from 'web3'; import { QVault } from '../../web3-contracts/QVault'; import { TransactionReceipt } from 'web3-eth'; import { VotingLockInfo, QNonPayableTx, QPayableTx, StakeDelegationInfo, TimeLockEntry, QVaultBalanceDetails } from '../../types'; import BN from 'bn.js'; import { SystemContractInstance } from '../SystemContractInstance'; import { CompoundRateKeeperInstance } from '../common/CompoundRateKeeperInstance'; 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 SystemContractInstance<QVault> { static readonly registryKey = "tokeneconomics.qVault"; static readonly abi = "QVault.json"; private c; /** * VotingWeightProxy instance. Used by local methods. */ votingWeightProxy: VotingWeightProxyInstance; private timeLockHelper; private erc20; constructor(web3: Web3, 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<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#lock) */ lock(amount: string, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#announceunlock) */ announceUnlock(amount: string, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#unlock) */ unlock(amount: string, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#withdraw) */ withdraw(amount: string, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * Withdraw all available amount. * Use {@link QVaultInstance.getReadyToWithdrawBalance} * @param user account. * @returns Transaction receipt. */ withdrawEntireBalance(user: string): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#updatecompoundrate) */ updateCompoundRate(txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** @deprecated compound rate has to be updated via ValidationRewardPoolsInstance */ updateValidatorsCompoundRate(_validator: string, _txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#delegatestake) */ delegateStake(delegatedTo: string[], stakes: string[], txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#name) */ name(): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/QVault/#symbol) */ symbol(): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/QVault/#decimals) */ decimals(): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/QVault/#totalsupply) */ totalSupply(): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/QVault/#balanceof) */ balanceOf(userAddress: string): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/QVault/#transfer) */ transfer(receiver: string, amount: number | string | BN, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#approve) */ approve(spender: string, amount: number | string | BN, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#transferfrom) */ transferFrom(owner: string, receiver: string, amount: number | string | BN, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#allowance) */ allowance(tokenOwner: string, spender: string): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/QVault/#increaseallowance) */ increaseAllowance(spender: string, addedValue: number | string | BN, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#decreaseallowance) */ decreaseAllowance(spender: string, subtractedValue: number | string | BN, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#transferandcall) */ transferAndCall(to: string, value: number | string | BN, data: string | number[], txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#withdrawto) */ withdrawTo(recipient: string, amount: number | string | BN, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#depositto) */ depositTo(recipient: string, txOptions?: QPayableTx): Promise<TransactionReceipt>; /** * 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<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/QVault/#depositfrompool) */ depositFromPool(txOptions?: QPayableTx): Promise<TransactionReceipt>; /** @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: number | string | BN, end: number | string | BN, txOptions?: QPayableTx): Promise<TransactionReceipt>; /** * {@link TimeLockHelperInstance.getTimeLocks | Internal documentation} */ getTimeLocks(account: string): Promise<TimeLockEntry[]>; /** * {@link TimeLockHelperInstance.getMinimumBalance | Internal documentation} */ getMinimumBalance(account: string, timestamp: number | BN | string): Promise<string>; /** * {@link TimeLockHelperInstance.purgeTimeLocks | Internal documentation} */ purgeTimeLocks(account: string, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; } /** @deprecated use QVaultInstance instead */ export declare type PiggyBankInstance = QVaultInstance; /** @deprecated use QVault instead */ export declare type PiggyBank = QVault;