@vechain/vebetterdao-contracts
Version:
Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.
67 lines (66 loc) • 4.05 kB
TypeScript
import { B3TR, Emissions, VOT3, XAllocationVoting, TimeLock, B3TRGovernor, GalaxyMember, VoterRewards, XAllocationPool, Treasury, X2EarnRewardsPool, X2EarnApps, VeBetterPassport, X2EarnCreator, GrantsManager, RelayerRewardsPool, B3TRChallenges, DBAPool, StargateNFT, Stargate, NodeManagementV3, TokenAuction, NavigatorRegistry } from "../../typechain-types";
import { ContractsConfig } from "@repo/config/contracts/type";
import { HardhatEthersSigner } from "@nomicfoundation/hardhat-ethers/signers";
export declare function deployAll(config: ContractsConfig): Promise<{
governor: B3TRGovernor;
timelock: TimeLock;
b3tr: B3TR;
vot3: VOT3;
galaxyMember: GalaxyMember;
xAllocationPool: XAllocationPool;
xAllocationVoting: XAllocationVoting;
emissions: Emissions;
voterRewards: VoterRewards;
treasury: Treasury;
x2EarnApps: X2EarnApps;
x2EarnRewardsPool: X2EarnRewardsPool;
vechainNodesMock: TokenAuction;
vechainNodeManagement: NodeManagementV3;
veBetterPassport: VeBetterPassport;
b3trChallenges: B3TRChallenges;
x2EarnCreator: X2EarnCreator;
grantsManager: GrantsManager;
relayerRewardsPool: RelayerRewardsPool;
stargate: Stargate;
stargateNFT: StargateNFT;
dynamicBaseAllocationPool: DBAPool;
navigatorRegistry: NavigatorRegistry;
libraries: {
governorClockLogic: import("../../typechain-types").GovernorClockLogic;
governorConfigurator: import("../../typechain-types").GovernorConfigurator;
governorDepositLogic: import("../../typechain-types").GovernorDepositLogic;
governorFunctionRestrictionsLogic: import("../../typechain-types").GovernorFunctionRestrictionsLogic;
governorProposalLogic: import("../../typechain-types").GovernorProposalLogic;
governorQuorumLogic: import("../../typechain-types").GovernorQuorumLogic;
governorStateLogic: import("../../typechain-types").GovernorStateLogic;
governorVotesLogic: import("../../typechain-types").GovernorVotesLogic;
passportChecksLogic: import("../../typechain-types").PassportChecksLogic;
passportConfigurator: import("../../typechain-types").PassportConfigurator;
passportEntityLogic: import("../../typechain-types").PassportEntityLogic;
passportDelegationLogic: import("../../typechain-types").PassportDelegationLogic;
passportPersonhoodLogic: import("../../typechain-types").PassportPersonhoodLogic;
passportPoPScoreLogic: import("../../typechain-types").PassportPoPScoreLogic;
passportSignalingLogic: import("../../typechain-types").PassportSignalingLogic;
passportWhitelistAndBlacklistLogic: import("../../typechain-types").PassportWhitelistAndBlacklistLogic;
autoVotingLogic: import("ethers").BaseContract & {
deploymentTransaction(): import("ethers").ContractTransactionResponse;
} & Omit<import("ethers").BaseContract, keyof import("ethers").BaseContract>;
challengeCoreLogic: import("../../typechain-types").ChallengeCoreLogic;
challengeSettlementLogic: import("../../typechain-types").ChallengeSettlementLogic;
};
}>;
/**
* Set the whitelisted functions from config
* Performs the following steps for each contract:
* 1. Get the function signatures from the contract factory
* 2. Set the whitelisted functions in the governor contract
*
* @param contractAddresses - Addresses of the deployed contracts
* @param config - Contracts configuration
* @param governor - B3TRGovernor contract instance
* @param admin - Admin signer
*
* @note - For ambiguous functions (functions with same name), the function signature is used to differentiate them
* e.g., instead of using "setVoterRewards", we use "setVoterRewards(address)" in the config
*/
export declare const setWhitelistedFunctions: (contractAddresses: Record<string, string>, config: ContractsConfig, governor: B3TRGovernor, admin: HardhatEthersSigner, libraries: Record<string, Record<string, string>>, logOutput?: boolean) => Promise<void>;