@ardier16/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
160 lines (159 loc) • 7.64 kB
TypeScript
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>;
}