@vechain/vebetterdao-contracts
Version:
Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.
48 lines (47 loc) • 2.85 kB
TypeScript
import { SignerWithAddress } from "@nomicfoundation/hardhat-ethers/signers";
import { B3TR, B3TRGovernor, Emissions, GovernorDepositLogicV1, GovernorProposalLogicV1, GovernorFunctionRestrictionsLogicV1, GovernorQuorumLogicV1, TimeLock, VOT3, VoterRewards, XAllocationVoting, GovernorClockLogicV1, GovernorStateLogicV1, GovernorVotesLogicV1, GovernorConfiguratorV1, VeBetterPassport, Treasury, GrantsManager, X2EarnApps, GalaxyMember } from "../../typechain-types";
import { ContractFactory, ContractTransactionReceipt } from "ethers";
export declare const STANDARD_PROPOSAL_TYPE: bigint;
export declare const GRANT_PROPOSAL_TYPE: bigint;
interface GovernanceFixture {
governor: B3TRGovernor;
vot3: VOT3;
b3tr: B3TR;
treasury: Treasury;
owner: SignerWithAddress;
timeLock: TimeLock;
xAllocationVoting: XAllocationVoting;
voterRewards: VoterRewards;
otherAccounts: SignerWithAddress[];
proposer: SignerWithAddress;
voter: SignerWithAddress;
emissions: Emissions;
governorClockLogicLibV1: GovernorClockLogicV1;
governorConfiguratorLibV1: GovernorConfiguratorV1;
governorDepositLogicLibV1: GovernorDepositLogicV1;
governorFunctionRestrictionsLogicLibV1: GovernorFunctionRestrictionsLogicV1;
governorProposalLogicLibV1: GovernorProposalLogicV1;
governorQuorumLogicLibV1: GovernorQuorumLogicV1;
governorStateLogicLibV1: GovernorStateLogicV1;
governorVotesLogicLibV1: GovernorVotesLogicV1;
b3trContract: ContractFactory;
veBetterPassport: VeBetterPassport;
minterAccount: SignerWithAddress;
otherAccount: SignerWithAddress;
grantsManager: GrantsManager;
x2EarnApps: X2EarnApps;
creators: SignerWithAddress[];
galaxyMember: GalaxyMember;
}
export declare function setupGovernanceFixture(): Promise<GovernanceFixture>;
export declare function setupProposer(account: SignerWithAddress, b3tr: B3TR, vot3: VOT3, minterAccount: SignerWithAddress, amount?: string): Promise<void>;
export declare function setupVoter(voter: SignerWithAddress, b3tr: B3TR, vot3: VOT3, minterAccount: SignerWithAddress, owner: SignerWithAddress, veBetterPassport: VeBetterPassport): Promise<void>;
export declare function setupSupporter(supporter: SignerWithAddress, vot3: VOT3, amount: bigint, governor: B3TRGovernor): Promise<void>;
export declare function startNewRoundAndGetRoundId(emissions: Emissions, xAllocationVoting: XAllocationVoting): Promise<string>;
export declare function validateProposalEvents(governor: B3TRGovernor, receipt: ContractTransactionReceipt | null, expectedType: number, proposerAddress: string, description: string): Promise<{
proposalId: any;
decodedProposalCreatedEvent: any;
decodedProposalCreatedWithTypeEvent: any;
}>;
export declare function setupGovernanceFixtureWithEmissions(): Promise<GovernanceFixture>;
export {};