@tribecahq/registry
Version:
Registry of Tribeca DAOs.
59 lines • 2.03 kB
TypeScript
import type { GovernanceConfig, GovernorConfig, GovernorParameters, LockerParameters, QuarryConfig, TrackedAccountInfo } from "./types";
declare type QuarryConfigJSON = Omit<QuarryConfig, "rewarder" | "mintWrapper" | "redeemer" | "additionalRewarders"> & {
rewarder?: string;
mintWrapper?: string;
redeemer?: string;
additionalRewarders: readonly string[];
};
/**
* An address tracked by the DAO.
*/
interface TrackedAccountInfoJSON extends Omit<TrackedAccountInfo, "address"> {
address: string;
}
export interface GovernorConfigJSON extends Omit<GovernorConfig, "address" | "governance" | "quarry" | "saves" | "minter" | "gauge" | "mndeNftLocker" | "nftLockerGauges" | "addresses"> {
address: string;
governance: Omit<GovernanceConfig, "address" | "parameters"> & {
address: string;
parameters?: {
governor?: Omit<GovernorParameters, "proposalActivationMinVotes"> & {
proposalActivationMinVotes: string;
};
locker?: Omit<LockerParameters, "quorumVotes"> & {
quorumVotes: string;
};
};
};
quarry?: QuarryConfigJSON;
saves?: {
mint: string;
duration: number;
}[];
minter?: {
mintWrapper?: string;
redeemer?: string;
};
gauge?: Omit<GovernorConfig["gauge"], "gaugemeister"> & {
gaugemeister: string;
};
mndeNftLocker?: {
address: string;
creators: string[];
docs: string;
app: string;
};
nftLockerGauges?: {
label: string;
address: string;
stateAccount?: string;
docs: string;
}[];
addresses?: Record<string, TrackedAccountInfoJSON>;
}
/**
* Loads a Governor from its JSON representation.
* @returns
*/
export declare const loadGovernorConfig: ({ address, governance, quarry, saves, minter, gauge, mndeNftLocker, nftLockerGauges, addresses, ...rest }: GovernorConfigJSON) => GovernorConfig;
export {};
//# sourceMappingURL=loadConfig.d.ts.map