UNPKG

@tribecahq/tribeca-sdk

Version:

The TypeScript SDK for Tribeca, an open standard and toolkit for launching DAOs on Solana.

29 lines 992 B
import BN from "bn.js"; import { ProposalState } from "./types"; /** * Gets the state of a proposal. * @returns */ export const getProposalState = ({ proposalData, currentTimeSeconds = Math.floor(new Date().getTime() / 1000), }) => { if (proposalData.canceledAt.gt(new BN(0))) { return ProposalState.Canceled; } else if (proposalData.activatedAt.eq(new BN(0))) { return ProposalState.Draft; } else if (proposalData.votingEndsAt.gte(new BN(currentTimeSeconds))) { return ProposalState.Active; } else if (proposalData.forVotes.lte(proposalData.againstVotes) || proposalData.forVotes .add(proposalData.abstainVotes) .add(proposalData.againstVotes) .lt(proposalData.quorumVotes)) { return ProposalState.Defeated; } else if (proposalData.queuedAt.gt(new BN(0))) { return ProposalState.Queued; } return ProposalState.Succeeded; }; //# sourceMappingURL=proposal.js.map