// Copyright 2017-2026 @pezkuwi/apps-config authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ApiPromise } from '@pezkuwi/api'; import { KULUPU_GENESIS, DICLE_GENESIS, PEZKUWI_GENESIS } from '../constants.js'; // normal fast-track proposals const FAST_TRACK: Record = { default: 2 / 3 }; // in the case where block < fastTrackVotingPeriod const FAST_TRACK_NO_DELAY: Record = { default: 1 }; const PROPOSE: Record = { [KULUPU_GENESIS]: 1, [DICLE_GENESIS]: 1 / 2, [PEZKUWI_GENESIS]: 3 / 5, default: 1 / 2 }; const SLASH: Record = { [DICLE_GENESIS]: 1 / 2, [PEZKUWI_GENESIS]: 3 / 4, default: 1 / 2 }; const TREASURY: Record = { [KULUPU_GENESIS]: 1 / 2, [DICLE_GENESIS]: 3 / 5, [PEZKUWI_GENESIS]: 3 / 5, default: 3 / 5 }; export function getFastTrackThreshold (api: ApiPromise, isDefault: boolean): number { return isDefault ? (FAST_TRACK[api.genesisHash.toHex()] || FAST_TRACK.default) : (FAST_TRACK_NO_DELAY[api.genesisHash.toHex()] || FAST_TRACK_NO_DELAY.default); } export function getProposalThreshold (api: ApiPromise): number { return PROPOSE[api.genesisHash.toHex()] || PROPOSE.default; } export function getSlashProposalThreshold (api: ApiPromise): number { return SLASH[api.genesisHash.toHex()] || SLASH.default; } export function getTreasuryProposalThreshold (api: ApiPromise): number { return TREASURY[api.genesisHash.toHex()] || TREASURY.default; }