diff --git a/src/api/policy.messages.ts b/src/api/policy.messages.ts index 63ab7c3..cb7772a 100644 --- a/src/api/policy.messages.ts +++ b/src/api/policy.messages.ts @@ -51,7 +51,8 @@ export function encodeDecisionPolicy({ }) { const windows = { minExecutionPeriod: secondsToDuration(1), - votingPeriod: daysToDuration(votingWindow), + // TODO: undo change before merging + votingPeriod: secondsToDuration(votingWindow), // daysToDuration(votingWindow), } if (policyType === 'percentage') { if (!percentage) throwError('Must provide percentage value') diff --git a/src/api/proposal.utils.ts b/src/api/proposal.utils.ts index f9f28b2..53056bc 100644 --- a/src/api/proposal.utils.ts +++ b/src/api/proposal.utils.ts @@ -53,10 +53,13 @@ export function toUIProposal(sdkProposal: ProposalSDKType): UIProposal { groupPolicyVersion: sdkProposal.group_policy_version, groupVersion: sdkProposal.group_version, id: sdkProposal.id, - messages: sdkProposal.messages.map((msg) => ({ - typeUrl: msg.type_url, - value: msg.value, - })), + messages: sdkProposal.messages.map( + (msg: any) => + ({ + typeUrl: msg['@type'], + value: msg, + } as Any), + ), // TODO metadata: getProposalMetadata(sdkProposal.metadata, { title: `Proposal #${sdkProposal.id}`, }), diff --git a/src/components/organisms/proposal-review.tsx b/src/components/organisms/proposal-review.tsx index d8cdf2e..3c07375 100644 --- a/src/components/organisms/proposal-review.tsx +++ b/src/components/organisms/proposal-review.tsx @@ -79,7 +79,7 @@ function renderAction(action: ProposalAction, groupPolicyAddress: string) { } } -const SendReview = ({ +export const SendReview = ({ groupPolicyAddress, values, }: { @@ -90,7 +90,7 @@ const SendReview = ({ return ( - {values.sendType} + {'sendType' in values && {values.sendType}} - {values.stakeType} + {'stakeType' in values && ( + {values.stakeType} + )} {proposal.metadata.title} {proposal.metadata.summary} + {proposal.messages.map((msg) => + renderMessage(msg, proposal.groupPolicyAddress), + )} @@ -89,3 +102,28 @@ export const ProposalSummary = ({ ) } + +function renderMessage(msg: Any, groupPolicyAddress: string) { + if (!msg) return null + switch (msg.typeUrl) { + case '/cosmos.bank.v1beta1.MsgSend': + return ( + + ) + case '/cosmos.staking.v1beta1.MsgDelegate': + case '/cosmos.staking.v1beta1.MsgBeginRedelegate': + case '/cosmos.staking.v1beta1.MsgUndelegate': + case '/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward': + return ( + + ) + default: + return null + } +}