-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathgenesisProtocol.ts
34 lines (32 loc) · 1.35 KB
/
genesisProtocol.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import BN = require('bn.js')
import { realMathToNumber } from './utils'
export interface IGenesisProtocolParams {
activationTime: number
boostedVotePeriodLimit: number
daoBountyConst: number // ?
limitExponentValue: number
minimumDaoBounty: BN // in GEN
preBoostedVotePeriodLimit: number
proposingRepReward: BN // in REP
queuedVoteRequiredPercentage: number
queuedVotePeriodLimit: number // in seconds (?)
quietEndingPeriod: number
thresholdConst: number
votersReputationLossRatio: number // in 1000's
}
export function mapGenesisProtocolParams(params: IGenesisProtocolParams) {
return {
activationTime: Number(params.activationTime),
boostedVotePeriodLimit: Number(params.boostedVotePeriodLimit),
daoBountyConst: Number(params.daoBountyConst),
limitExponentValue: Number(params.limitExponentValue),
minimumDaoBounty: new BN(params.minimumDaoBounty),
preBoostedVotePeriodLimit: Number(params.preBoostedVotePeriodLimit),
proposingRepReward: new BN(params.proposingRepReward),
queuedVotePeriodLimit: Number(params.queuedVotePeriodLimit),
queuedVoteRequiredPercentage: Number(params.queuedVoteRequiredPercentage),
quietEndingPeriod: Number(params.quietEndingPeriod),
thresholdConst: realMathToNumber(new BN(params.thresholdConst)),
votersReputationLossRatio: Number(params.votersReputationLossRatio)
}
}