mirror of
https://github.com/pezkuwichain/pezkuwi-apps.git
synced 2026-04-22 11:17:59 +00:00
55 lines
1.5 KiB
TypeScript
55 lines
1.5 KiB
TypeScript
// 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<string, number> = {
|
|
default: 2 / 3
|
|
};
|
|
|
|
// in the case where block < fastTrackVotingPeriod
|
|
const FAST_TRACK_NO_DELAY: Record<string, number> = {
|
|
default: 1
|
|
};
|
|
|
|
const PROPOSE: Record<string, number> = {
|
|
[KULUPU_GENESIS]: 1,
|
|
[DICLE_GENESIS]: 1 / 2,
|
|
[PEZKUWI_GENESIS]: 3 / 5,
|
|
default: 1 / 2
|
|
};
|
|
|
|
const SLASH: Record<string, number> = {
|
|
[DICLE_GENESIS]: 1 / 2,
|
|
[PEZKUWI_GENESIS]: 3 / 4,
|
|
default: 1 / 2
|
|
};
|
|
|
|
const TREASURY: Record<string, number> = {
|
|
[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;
|
|
}
|