diff --git a/packages/page-referenda/src/useAccountLocks.ts b/packages/page-referenda/src/useAccountLocks.ts index 820ddbcf9a..15e9893749 100644 --- a/packages/page-referenda/src/useAccountLocks.ts +++ b/packages/page-referenda/src/useAccountLocks.ts @@ -9,6 +9,7 @@ import type { Lock, PalletReferenda, PalletVote } from './types.js'; import { useMemo } from 'react'; +import { CONVICTIONS } from '@polkadot/react-components/ConvictionDropdown'; import { createNamedHook, useApi, useCall } from '@polkadot/react-hooks'; import { BN_MAX_INTEGER } from '@polkadot/util'; @@ -84,8 +85,9 @@ function getLocks (api: ApiPromise, palletVote: PalletVote, votes: [classId: BN, const [, tally] = refInfo; let total: BN | undefined; let endBlock: BN| undefined; - let conviction = 0; + let convictionIndex = 0; let locked = 'None'; + const durationIndex = 1; if (accountVote.isStandard) { const { balance, vote } = accountVote.asStandard; @@ -93,7 +95,7 @@ function getLocks (api: ApiPromise, palletVote: PalletVote, votes: [classId: BN, total = balance; if ((tally.isApproved && vote.isAye) || (tally.isRejected && vote.isNay)) { - conviction = vote.conviction.index; + convictionIndex = vote.conviction.index; locked = vote.conviction.type; } } else if (accountVote.isSplit) { @@ -118,7 +120,7 @@ function getLocks (api: ApiPromise, palletVote: PalletVote, votes: [classId: BN, : tally.asTimedOut[0]; } else if (tally.isApproved || tally.isRejected) { endBlock = lockPeriod - .muln(conviction) + .muln(convictionIndex ? CONVICTIONS[convictionIndex - 1][durationIndex] : 0) .add( tally.isApproved ? tally.asApproved[0] diff --git a/packages/react-components/src/ConvictionDropdown.tsx b/packages/react-components/src/ConvictionDropdown.tsx index 7a8238915b..544b1f8525 100644 --- a/packages/react-components/src/ConvictionDropdown.tsx +++ b/packages/react-components/src/ConvictionDropdown.tsx @@ -18,7 +18,7 @@ export interface Props { voteLockingPeriod: BN; } -const CONVICTIONS = [1, 2, 4, 8, 16, 32].map((lock, index): [value: number, duration: number, durationBn: BN] => [index + 1, lock, new BN(lock)]); +export const CONVICTIONS = [1, 2, 4, 8, 16, 32].map((lock, index): [value: number, duration: number, durationBn: BN] => [index + 1, lock, new BN(lock)]); function createOptions (blockTime: BN, voteLockingPeriod: BN, t: (key: string, options?: { replace: Record }) => string): { text: string; value: number }[] { return [