2018-10-04 21:27:02 -07:00
|
|
|
import { Wei } from 'utils/units';
|
|
|
|
import { PROPOSAL_CATEGORY } from 'api/constants';
|
2018-11-14 08:43:00 -08:00
|
|
|
import {
|
|
|
|
CreateMilestone,
|
|
|
|
ProposalMilestone,
|
|
|
|
Update,
|
|
|
|
TeamMember,
|
|
|
|
Milestone,
|
|
|
|
Comment,
|
|
|
|
} from 'types';
|
2018-10-04 21:27:02 -07:00
|
|
|
|
2018-11-16 08:16:52 -08:00
|
|
|
export interface TeamInvite {
|
|
|
|
id: number;
|
|
|
|
dateCreated: number;
|
|
|
|
address: string;
|
|
|
|
accepted: boolean | null;
|
|
|
|
}
|
|
|
|
|
2018-10-04 21:27:02 -07:00
|
|
|
export interface Contributor {
|
|
|
|
address: string;
|
|
|
|
contributionAmount: Wei;
|
|
|
|
refundVote: boolean;
|
|
|
|
refunded: boolean;
|
|
|
|
proportionalContribution: string;
|
|
|
|
milestoneNoVotes: boolean[];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface CrowdFund {
|
|
|
|
immediateFirstMilestonePayout: boolean;
|
|
|
|
balance: Wei;
|
|
|
|
funded: Wei;
|
|
|
|
percentFunded: number;
|
|
|
|
target: Wei;
|
|
|
|
amountVotingForRefund: Wei;
|
|
|
|
percentVotingForRefund: number;
|
|
|
|
beneficiary: string;
|
|
|
|
deadline: number;
|
|
|
|
trustees: string[];
|
|
|
|
contributors: Contributor[];
|
|
|
|
milestones: Milestone[];
|
|
|
|
milestoneVotingPeriod: number;
|
|
|
|
isFrozen: boolean;
|
|
|
|
isRaiseGoalReached: boolean;
|
|
|
|
}
|
|
|
|
|
2018-11-13 08:07:09 -08:00
|
|
|
export interface ProposalDraft {
|
|
|
|
proposalId: number;
|
|
|
|
dateCreated: number;
|
|
|
|
title: string;
|
2018-11-13 14:51:02 -08:00
|
|
|
brief: string;
|
2018-11-14 08:43:00 -08:00
|
|
|
category: PROPOSAL_CATEGORY;
|
2018-11-14 09:59:48 -08:00
|
|
|
content: string;
|
2018-11-13 08:07:09 -08:00
|
|
|
stage: string;
|
2018-11-14 08:43:00 -08:00
|
|
|
target: string;
|
|
|
|
payoutAddress: string;
|
|
|
|
trustees: string[];
|
|
|
|
deadlineDuration: number;
|
|
|
|
voteDuration: number;
|
|
|
|
milestones: CreateMilestone[];
|
2018-11-13 08:07:09 -08:00
|
|
|
team: TeamMember[];
|
2018-11-16 08:16:52 -08:00
|
|
|
invites: TeamInvite[];
|
2018-11-13 08:07:09 -08:00
|
|
|
}
|
|
|
|
|
2018-10-04 21:27:02 -07:00
|
|
|
export interface Proposal {
|
2018-11-07 09:33:19 -08:00
|
|
|
proposalId: number;
|
|
|
|
proposalAddress: string;
|
|
|
|
proposalUrlId: string;
|
2018-10-04 21:27:02 -07:00
|
|
|
dateCreated: number;
|
|
|
|
title: string;
|
2018-11-16 11:17:09 -08:00
|
|
|
brief: string;
|
2018-11-14 09:59:48 -08:00
|
|
|
content: string;
|
2018-10-04 21:27:02 -07:00
|
|
|
stage: string;
|
|
|
|
category: PROPOSAL_CATEGORY;
|
|
|
|
milestones: ProposalMilestone[];
|
|
|
|
team: TeamMember[];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface ProposalWithCrowdFund extends Proposal {
|
2018-10-19 15:03:37 -07:00
|
|
|
crowdFund: CrowdFund;
|
2018-10-04 21:27:02 -07:00
|
|
|
crowdFundContract: any;
|
|
|
|
}
|
|
|
|
|
2018-11-16 11:17:09 -08:00
|
|
|
export interface TeamInviteWithProposal extends TeamInvite {
|
|
|
|
proposal: Proposal;
|
|
|
|
}
|
|
|
|
|
2018-10-04 21:27:02 -07:00
|
|
|
export interface ProposalComments {
|
|
|
|
proposalId: ProposalWithCrowdFund['proposalId'];
|
|
|
|
totalComments: number;
|
|
|
|
comments: Comment[];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface ProposalUpdates {
|
|
|
|
proposalId: ProposalWithCrowdFund['proposalId'];
|
|
|
|
updates: Update[];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface UserProposal {
|
2018-11-07 09:33:19 -08:00
|
|
|
proposalId: number;
|
2018-10-04 21:27:02 -07:00
|
|
|
title: string;
|
|
|
|
brief: string;
|
|
|
|
team: TeamMember[];
|
|
|
|
funded: Wei;
|
|
|
|
target: Wei;
|
|
|
|
}
|