@aave/protocol-js
Version:
Aave protocol data aggregation tool
29 lines (28 loc) • 2.6 kB
TypeScript
import { IAaveGovernanceV2 } from '../../contract-types/IAaveGovernanceV2';
import AaveGovernanceV2Interface from '../../interfaces/v2/AaveGovernanceV2';
import { Configuration, EthereumTransactionTypeExtended, GovernanceConfig, tEthereumAddress } from '../../types';
import { GovCancelType, GovCreateType, GovExecuteType, GovGetProposalsType, GovGetProposalType, GovGetVotingAtBlockType, GovGetVotingSupplyType, GovQueueType, GovSignVotingType, GovSubmitVoteSignType, GovSubmitVoteType, GovGetTokensVotingPower as GovGetPower, GovGetVoteOnProposal } from '../../types/GovernanceV2MethodTypes';
import { Proposal, Power, Vote } from '../../types/GovernanceV2ReturnTypes';
import BaseService from '../BaseService';
export default class AaveGovernanceV2Service extends BaseService<IAaveGovernanceV2> implements AaveGovernanceV2Interface {
readonly aaveGovernanceV2Address: string;
readonly aaveGovernanceV2HelperAddress: string;
readonly executors: tEthereumAddress[];
readonly governanceConfig: GovernanceConfig | undefined;
constructor(config: Configuration, governanceConfig: GovernanceConfig | undefined);
create({ user, targets, values, signatures, calldatas, withDelegateCalls, ipfsHash, executor, }: GovCreateType): Promise<EthereumTransactionTypeExtended[]>;
cancel({ user, proposalId }: GovCancelType): Promise<EthereumTransactionTypeExtended[]>;
queue({ user, proposalId }: GovQueueType): Promise<EthereumTransactionTypeExtended[]>;
execute({ user, proposalId }: GovExecuteType): Promise<EthereumTransactionTypeExtended[]>;
submitVote({ user, proposalId, support }: GovSubmitVoteType): Promise<EthereumTransactionTypeExtended[]>;
signVoting({ support, proposalId }: GovSignVotingType): Promise<string>;
submitVoteBySignature({ user, proposalId, support, signature }: GovSubmitVoteSignType): Promise<EthereumTransactionTypeExtended[]>;
getProposals({ skip, limit, }: GovGetProposalsType): Promise<Proposal[]>;
getProposal({ proposalId, }: GovGetProposalType): Promise<Proposal>;
getPropositionPowerAt({ user, block, strategy, }: GovGetVotingAtBlockType): Promise<string>;
getVotingPowerAt({ user, block, strategy, }: GovGetVotingAtBlockType): Promise<string>;
getTotalPropositionSupplyAt({ block, strategy, }: GovGetVotingSupplyType): Promise<string>;
getTotalVotingSupplyAt({ block, strategy, }: GovGetVotingSupplyType): Promise<string>;
getTokensPower({ user, tokens }: GovGetPower): Promise<Power[]>;
getVoteOnProposal({ proposalId, user, }: GovGetVoteOnProposal): Promise<Vote>;
}