2018-12-27 09:41:26 -08:00
|
|
|
import BN from 'bn.js';
|
|
|
|
import { Zat } from 'utils/units';
|
2018-10-04 21:27:02 -07:00
|
|
|
import { PROPOSAL_CATEGORY } from 'api/constants';
|
2018-11-14 08:43:00 -08:00
|
|
|
import {
|
|
|
|
CreateMilestone,
|
|
|
|
Update,
|
2018-11-16 15:05:17 -08:00
|
|
|
User,
|
2018-11-14 08:43:00 -08:00
|
|
|
Comment,
|
|
|
|
} from 'types';
|
2018-12-27 09:41:26 -08:00
|
|
|
import { ProposalMilestone } from './milestone';
|
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;
|
2018-12-27 09:41:26 -08:00
|
|
|
contributionAmount: Zat;
|
2018-10-04 21:27:02 -07:00
|
|
|
refundVote: boolean;
|
|
|
|
refunded: boolean;
|
|
|
|
proportionalContribution: string;
|
|
|
|
milestoneNoVotes: 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;
|
|
|
|
deadlineDuration: number;
|
|
|
|
milestones: CreateMilestone[];
|
2018-11-16 15:05:17 -08:00
|
|
|
team: User[];
|
2018-11-16 08:16:52 -08:00
|
|
|
invites: TeamInvite[];
|
2018-11-13 08:07:09 -08:00
|
|
|
}
|
|
|
|
|
2018-12-27 09:41:26 -08:00
|
|
|
|
|
|
|
export interface Proposal extends Omit<ProposalDraft, 'target' | 'invites'> {
|
2018-11-07 09:33:19 -08:00
|
|
|
proposalAddress: string;
|
|
|
|
proposalUrlId: string;
|
2018-12-27 09:41:26 -08:00
|
|
|
target: BN;
|
|
|
|
funded: BN;
|
2018-10-04 21:27:02 -07:00
|
|
|
milestones: ProposalMilestone[];
|
|
|
|
}
|
|
|
|
|
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 {
|
2018-12-21 10:47:50 -08:00
|
|
|
proposalId: Proposal['proposalId'];
|
2018-10-04 21:27:02 -07:00
|
|
|
totalComments: number;
|
|
|
|
comments: Comment[];
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface ProposalUpdates {
|
2018-12-21 10:47:50 -08:00
|
|
|
proposalId: Proposal['proposalId'];
|
2018-10-04 21:27:02 -07:00
|
|
|
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;
|
2018-11-16 15:05:17 -08:00
|
|
|
team: User[];
|
2018-12-27 09:41:26 -08:00
|
|
|
funded: BN;
|
|
|
|
target: BN;
|
2018-10-04 21:27:02 -07:00
|
|
|
}
|