@q-dev/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
141 lines (140 loc) • 6.82 kB
TypeScript
import type { ContractTransaction, BigNumberish } from 'ethers';
import { AddressWithBalance, ValidatorInfo, ValidatorsWithdrawalInfo, QNonPayableTx, QPayableTx, VotingLockInfo, SignerOrProvider } from '../../../types';
import { Validators } from '../../../ethers-contracts/Validators';
import { TimeLockHelperInstance } from '../../TimeLockHelperInstance';
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 TimeLockHelperInstance<Validators> {
static readonly registryKey = "governance.validators";
static readonly abi = "Validators.json";
/**
* VotingWeightProxy instance. Used by local methods.
*/
votingWeightProxy: VotingWeightProxyInstance;
constructor(signerOrProvider: SignerOrProvider, address: string);
/**
* @deprecated Use commitStake, instead
*/
commitCollateral(txOptions?: QPayableTx): Promise<ContractTransaction>;
/**
* [External documentation](@system-contracts-repo/@network/Validators/#commitstake)
*/
commitStake(txOptions?: QPayableTx): Promise<ContractTransaction>;
/**
* [External documentation](@system-contracts-repo/@network/Validators/#announcewithdrawal)
*/
announceWithdrawal(amount: string, txOptions?: QNonPayableTx): Promise<ContractTransaction>;
/**
* [External documentation](@system-contracts-repo/@network/Validators/#withdraw)
*/
withdraw(amount: string, payTo: string, txOptions?: QNonPayableTx): Promise<ContractTransaction>;
/**
* 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<ContractTransaction>;
/** @deprecated The interest rate has to be set on the ValidationRewardPoolsInstance */
setInterestRate(_qiv: string, _txOptions?: QNonPayableTx): Promise<ContractTransaction>;
/** @deprecated The delegators share has to be set on the ValidationRewardPoolsInstance */
setDelegatorsShare(_qsv: string, _txOptions?: QNonPayableTx): Promise<ContractTransaction>;
/**
* [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<ContractTransaction>;
/**
* [External documentation](@system-contracts-repo/@network/Validators/#applyslashing)
*/
applySlashing(proposalId: BigNumberish, validator: string, amountToSlash: BigNumberish, txOptions?: QNonPayableTx): Promise<ContractTransaction>;
/**
* [External documentation](@system-contracts-repo/@network/Validators/#addslashingproposal)
*/
addSlashingProposal(validator: string, slashingProposalId: BigNumberish, txOptions?: QNonPayableTx): Promise<ContractTransaction>;
/**
* [External documentation](@system-contracts-repo/@network/Validators/#calculatependingslashingsamount)
*/
calculatePendingSlashingsAmount(validator: string, endTime: BigNumberish): 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<ContractTransaction>;
/**
* [External documentation](@system-contracts-repo/@network/Validators/#refreshdelegatedstake)
*/
refreshDelegatedStake(delegatedTo: string, txOptions?: QNonPayableTx): Promise<ContractTransaction>;
/**
* [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>;
}