UNPKG

@ardier16/q-js-sdk

Version:

Typescript Library to interact with Q System Contracts

160 lines (159 loc) 7.64 kB
import Web3 from 'web3'; import { TransactionReceipt } from 'web3-eth'; import { AddressWithBalance, ValidatorInfo, ValidatorsWithdrawalInfo, QNonPayableTx, QPayableTx, TimeLockEntry, VotingLockInfo } from '../../../types'; import { Validators } from '../../../web3-contracts/Validators'; import { SystemContractInstance } from '../../SystemContractInstance'; import BN from 'bn.js'; import { VotingWeightProxyInstance } from '../VotingWeightProxyInstance'; /** * Validators instance to interact with Validators contract. * See [onchain documentation](@system-contracts-repo/@network/Validators/) for more details. * An instance of this class for a deployed network can be obtained via {@link ContractRegistryInstance.validators} */ export declare class ValidatorsInstance extends SystemContractInstance<Validators> { static readonly registryKey = "governance.validators"; static readonly abi = "Validators.json"; /** * VotingWeightProxy instance. Used by local methods. */ votingWeightProxy: VotingWeightProxyInstance; private timeLockHelper; constructor(web3: Web3, address: string); /** * @deprecated Use commitStake, instead */ commitCollateral(txOptions?: QPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/Validators/#commitstake) */ commitStake(txOptions?: QPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/Validators/#announcewithdrawal) */ announceWithdrawal(amount: string, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/Validators/#withdraw) */ withdraw(amount: string, payTo: string, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * Validators list. * @returns validator addresses. */ getLongList(): Promise<string[]>; /** * Validators list of addresses and balances. * @returns validator addresses and balances. */ getLongListWithBalance(): Promise<AddressWithBalance[]>; /** * Validators recent list of addresses and balances. * @returns recent used validator addresses and balances. */ getShortList(): Promise<AddressWithBalance[]>; /** * [External documentation](@system-contracts-repo/@network/Validators/#getshortlistmaxlength) */ getShortListMaxLength(): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/Validators/#entershortlist) */ enterShortList(txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** @deprecated The interest rate has to be set on the ValidationRewardPoolsInstance */ setInterestRate(_qiv: string, _txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** @deprecated The delegators share has to be set on the ValidationRewardPoolsInstance */ setDelegatorsShare(_qsv: string, _txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/Validators/#isinshortlist) */ isInShortList(user: string): Promise<boolean>; /** * [External documentation](@system-contracts-repo/@network/Validators/#isinlonglist) */ isInLongList(user: string): Promise<boolean>; /** * [External documentation](@system-contracts-repo/@network/Validators/#getslashingproposalids) */ getSlashingProposalIds(validator: string): Promise<string[]>; /** * [External documentation](@system-contracts-repo/@network/Validators/#getlockinfo) */ getLockInfo(who: string): Promise<VotingLockInfo>; /** * [External documentation](@system-contracts-repo/@network/Validators/#makesnapshot) */ makeSnapshot(txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/Validators/#applyslashing) */ applySlashing(proposalId: number | string | BN, validator: string, amountToSlash: number | string | BN, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/Validators/#addslashingproposal) */ addSlashingProposal(validator: string, slashingProposalId: number | string | BN, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/Validators/#calculatependingslashingsamount) */ calculatePendingSlashingsAmount(validator: string, endTime: number | string | BN): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/Validators/#getvalidatorslist) */ getValidatorsList(): Promise<string[]>; /** * [External documentation](@system-contracts-repo/@network/Validators/#purgependingslashings) */ purgePendingSlashings(validator: string, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/Validators/#refreshdelegatedstake) */ refreshDelegatedStake(delegatedTo: string, txOptions?: QNonPayableTx): Promise<TransactionReceipt>; /** * [External documentation](@system-contracts-repo/@network/Validators/#validatorsinfos) */ getWithdrawalInfo(address: string): Promise<ValidatorsWithdrawalInfo>; /** @deprecated Use getAccountableSelfStake , instead*/ getValidatorsOwnStake(address: string): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/Validators/#getaccountableselfstake) */ getAccountableSelfStake(address: string): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/Validators/#getaccountabletotalstake) */ getAccountableTotalStake(address: string): Promise<string>; /** @deprecated Use getSelfStake , instead*/ getValidatorsOwnStakeWithoutPendingWithdrawal(address: string): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/Validators/#getselfstake) */ getSelfStake(address: string): Promise<string>; /** * [External documentation](@system-contracts-repo/@network/Validators/#getvalidatortotalstake) */ getValidatorTotalStake(address: string): Promise<string>; /** @deprecated has to be called via ValidationRewardPoolsInstance */ getInterestRate(_address: string): Promise<string>; /** @deprecated has to be called via ValidationRewardPoolsInstance */ getDelegatorsShare(_address: string): Promise<string>; /** * Retrieve information about Validators'stake * @param address Validator * @returns General information about Validator's stakes {@link ValidatorInfo} */ getValidatorInfo(address: string): Promise<ValidatorInfo>; /** * {@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>; }