Add zkVerify Volta inflation parameters (#11448)
* Add inflation parameters for the zkVerify Volta testnet * Fix division by 0 Fix division by 0 if ideal stake is set to 0 (i.e. not accounted for when computing the inflation).
This commit is contained in:
parent
5eb7e1df6c
commit
04b9e9c726
@ -42,3 +42,5 @@ export const VARA_NETWORK_GENESIS = '0xfe1b4c55fd4d668101126434206571a7838a8b6b9
|
||||
export const VARA_NETWORK_TESTNET_GENESIS = '0x525639f713f397dcf839bd022cd821f367ebcf179de7b9253531f8adbe5436d6';
|
||||
|
||||
export const JOYSTREAM_GENESIS = '0x6b5e488e0fa8f9821110d5c13f4c468abcd43ce5e297e62b34c53c3346465956';
|
||||
|
||||
export const ZKVERIFY_VOLTA_GENESIS = '0xff7fe5a610f15fe7a0c52f94f86313fb7db7d3786e7f8acf2b66c11d5be7c242';
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
import type { ApiPromise } from '@polkadot/api';
|
||||
|
||||
import { CERE_NETWORK_GENESIS, CERE_NETWORK_TESTNET_GENESIS, DOCK_POS_TESTNET_GENESIS, JOYSTREAM_GENESIS, KUSAMA_GENESIS, NEATCOIN_GENESIS, NFTMART_GENESIS, POLKADOT_GENESIS, VARA_NETWORK_GENESIS, VARA_NETWORK_TESTNET_GENESIS } from '../constants.js';
|
||||
import { CERE_NETWORK_GENESIS, CERE_NETWORK_TESTNET_GENESIS, DOCK_POS_TESTNET_GENESIS, JOYSTREAM_GENESIS, KUSAMA_GENESIS, NEATCOIN_GENESIS, NFTMART_GENESIS, POLKADOT_GENESIS, VARA_NETWORK_GENESIS, VARA_NETWORK_TESTNET_GENESIS, ZKVERIFY_VOLTA_GENESIS } from '../constants.js';
|
||||
|
||||
interface InflationParams {
|
||||
auctionAdjust: number;
|
||||
@ -33,6 +33,8 @@ const VARA_NETWORK_INFLATION_PARAMS = { ...DEFAULT_PARAMS, maxInflation: 0, minI
|
||||
|
||||
const JOYSTREAM_INFLATION_PARAMS = { ...DEFAULT_PARAMS, maxInflation: 0.03, minInflation: 0.0075 };
|
||||
|
||||
const ZKVERIFY_VOLTA_INFLATION_PARAMS = { ...DEFAULT_PARAMS, auctionAdjust: 0, maxInflation: 0.025, minInflation: 0.025, stakeTarget: 0 };
|
||||
|
||||
const KNOWN_PARAMS: Record<string, InflationParams> = {
|
||||
[CERE_NETWORK_GENESIS]: CERE_NETWORK_INFLATION_PARAMS,
|
||||
[CERE_NETWORK_TESTNET_GENESIS]: CERE_NETWORK_INFLATION_PARAMS,
|
||||
@ -47,7 +49,8 @@ const KNOWN_PARAMS: Record<string, InflationParams> = {
|
||||
[NFTMART_GENESIS]: { ...DEFAULT_PARAMS, falloff: 0.04, stakeTarget: 0.60 },
|
||||
[POLKADOT_GENESIS]: { ...DEFAULT_PARAMS, stakeTarget: 0.75 },
|
||||
[VARA_NETWORK_GENESIS]: VARA_NETWORK_INFLATION_PARAMS,
|
||||
[VARA_NETWORK_TESTNET_GENESIS]: VARA_NETWORK_INFLATION_PARAMS
|
||||
[VARA_NETWORK_TESTNET_GENESIS]: VARA_NETWORK_INFLATION_PARAMS,
|
||||
[ZKVERIFY_VOLTA_GENESIS]: ZKVERIFY_VOLTA_INFLATION_PARAMS
|
||||
};
|
||||
|
||||
export function getInflationParams (api: ApiPromise): InflationParams {
|
||||
|
||||
@ -24,13 +24,15 @@ function calcInflation (api: ApiPromise, totalStaked: BN, totalIssuance: BN, num
|
||||
// Ideal is less based on the actual auctions, see
|
||||
// https://github.com/paritytech/polkadot/blob/816cb64ea16102c6c79f6be2a917d832d98df757/runtime/kusama/src/lib.rs#L531
|
||||
const idealStake = stakeTarget - (Math.min(auctionMax, numAuctions.toNumber()) * auctionAdjust);
|
||||
const idealInterest = maxInflation / idealStake;
|
||||
const idealInterest = idealStake === 0
|
||||
? 0
|
||||
: maxInflation / idealStake;
|
||||
// inflation calculations, see
|
||||
// https://github.com/paritytech/substrate/blob/0ba251c9388452c879bfcca425ada66f1f9bc802/frame/staking/reward-fn/src/lib.rs#L28-L54
|
||||
const inflation = 100 * (minInflation + (
|
||||
stakedFraction <= idealStake
|
||||
? (stakedFraction * (idealInterest - (minInflation / idealStake)))
|
||||
: (((idealInterest * idealStake) - minInflation) * Math.pow(2, (idealStake - stakedFraction) / falloff))
|
||||
: ((maxInflation - minInflation) * Math.pow(2, (idealStake - stakedFraction) / falloff))
|
||||
));
|
||||
|
||||
return {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user