diff --git a/src/lib/proposal.ts b/src/lib/proposal.ts index a9df20a4..4c22b495 100644 --- a/src/lib/proposal.ts +++ b/src/lib/proposal.ts @@ -54,6 +54,7 @@ export function create_draft ( members = [], roles = [], signatures = [], + store = {}, terms = [] } = template const prop = create_proposal(proposal) @@ -62,7 +63,7 @@ export function create_draft ( ? create_policy(e) : e as RolePolicy }) - const draft = { approvals, members, proposal : prop, roles : policies, signatures, terms } + const draft = { approvals, members, proposal : prop, roles : policies, signatures, store, terms } return schema.draft.session.parse(draft) } diff --git a/src/schema/draft.ts b/src/schema/draft.ts index 9ca12c10..cc60c376 100644 --- a/src/schema/draft.ts +++ b/src/schema/draft.ts @@ -35,6 +35,10 @@ const policy = z.object({ programs : prop.terms.array() }) +const store = z.object({ + cid : str.optional() +}) + const terms = prop.data.keyof() const session = z.object({ @@ -43,6 +47,7 @@ const session = z.object({ proposal : prop.data, roles : policy.array(), signatures : hex.array(), + store : store, terms : terms.array() }) @@ -51,6 +56,7 @@ const template = z.object({ proposal : prop.template, roles : role.array().optional(), signatures : hex.array().optional(), + store : store.optional(), terms : terms.array().optional() }) diff --git a/src/types/draft.ts b/src/types/draft.ts index fde08b90..275beaf7 100644 --- a/src/types/draft.ts +++ b/src/types/draft.ts @@ -34,6 +34,7 @@ export interface DraftTemplate { proposal : ProposalTemplate | ProposalData roles ?: Array signatures ?: string[] + store ?: DraftStore terms ?: string[] } @@ -43,5 +44,10 @@ export interface DraftData { proposal : ProposalData roles : RolePolicy[] signatures : string[] + store : DraftStore terms : string[] } + +export interface DraftStore { + cid ?: string +}