@hypernetlabs/objects
Version:
Objects and types shared by the Hypernet Protocol
28 lines • 2.76 kB
TypeScript
import { ResultAsync } from "neverthrow";
import { ChainId } from "../ChainId";
import { BlockchainUnavailableError, InvalidParametersError, ProxyError, HypernetGovernorContractError, ERC20ContractError, GovernanceSignerUnavailableError, IPFSUnavailableError } from "../errors";
import { EthereumAccountAddress } from "../EthereumAccountAddress";
import { Proposal, ProposalVoteReceipt } from "../Proposal";
import { EProposalVoteSupport } from "../typing";
import { IpfsCID } from "../IpfsCID";
import { InitializeStatus } from "../InitializeStatus";
export interface IHypernetGovernance {
governanceInitialized(chainId?: ChainId): ResultAsync<boolean, ProxyError>;
waitGovernanceInitialized(chainId?: ChainId): ResultAsync<void, ProxyError>;
initializeGovernance(chainId?: ChainId): ResultAsync<InitializeStatus, GovernanceSignerUnavailableError | BlockchainUnavailableError | InvalidParametersError | IPFSUnavailableError | ProxyError>;
getProposals(pageNumber: number, pageSize: number): ResultAsync<Proposal[], HypernetGovernorContractError | ProxyError>;
createProposal(name: string, symbol: string, owner: EthereumAccountAddress, enumerable: boolean): ResultAsync<Proposal, IPFSUnavailableError | HypernetGovernorContractError | ProxyError>;
delegateVote(delegateAddress: EthereumAccountAddress, amount: number | null): ResultAsync<void, ERC20ContractError | ProxyError>;
getProposalDetails(proposalId: string): ResultAsync<Proposal, HypernetGovernorContractError | ProxyError>;
getProposalDescription(descriptionHash: IpfsCID): ResultAsync<string, IPFSUnavailableError | HypernetGovernorContractError | ProxyError>;
castVote(proposalId: string, support: EProposalVoteSupport): ResultAsync<Proposal, HypernetGovernorContractError | ProxyError>;
getProposalVotesReceipt(proposalId: string, voterAddress: EthereumAccountAddress): ResultAsync<ProposalVoteReceipt, HypernetGovernorContractError | ProxyError>;
getProposalsCount(): ResultAsync<number, HypernetGovernorContractError | ProxyError>;
getProposalThreshold(): ResultAsync<number, HypernetGovernorContractError | ProxyError>;
getVotingPower(account: EthereumAccountAddress): ResultAsync<number, HypernetGovernorContractError | ERC20ContractError | ProxyError>;
getHyperTokenBalance(account: EthereumAccountAddress): ResultAsync<number, ERC20ContractError | ProxyError>;
queueProposal(proposalId: string): ResultAsync<Proposal, HypernetGovernorContractError | ProxyError>;
cancelProposal(proposalId: string): ResultAsync<Proposal, HypernetGovernorContractError | ProxyError>;
executeProposal(proposalId: string): ResultAsync<Proposal, HypernetGovernorContractError | ProxyError>;
}
//# sourceMappingURL=IHypernetGovernance.d.ts.map