1
+ /* eslint-disable complexity */
1
2
import { Cardano , Seconds , SupplySummary } from '@cardano-sdk/core' ;
2
3
import { CostModelsParamModel , ProtocolParamsModel } from './types' ;
3
4
import { GenesisData } from '../../types' ;
@@ -84,26 +85,37 @@ export const toProtocolParams = ({
84
85
} : ProtocolParamsModel ) : Cardano . ProtocolParameters => ( {
85
86
coinsPerUtxoByte : Number ( coins_per_utxo_size ) ,
86
87
collateralPercentage : collateral_percent ,
87
- committeeTermLimit : Cardano . EpochNo ( committee_max_term_length ) ,
88
+ ... ( committee_max_term_length && { committeeTermLimit : Cardano . EpochNo ( committee_max_term_length ) } ) ,
88
89
costModels : mapCostModels ( costs ) ,
89
90
dRepDeposit : Number ( drep_deposit ) ,
90
91
// CDDL represents it as `32: epoch ; DRep inactivity period`
91
- dRepInactivityPeriod : Cardano . EpochNo ( drep_activity ) ,
92
- dRepVotingThresholds : {
93
- committeeNoConfidence : Cardano . FractionUtils . toFraction ( dvt_committee_no_confidence ) ,
94
- committeeNormal : Cardano . FractionUtils . toFraction ( dvt_committee_normal ) ,
95
- hardForkInitiation : Cardano . FractionUtils . toFraction ( dvt_hard_fork_initiation ) ,
96
- motionNoConfidence : Cardano . FractionUtils . toFraction ( dvt_motion_no_confidence ) ,
97
- ppEconomicGroup : Cardano . FractionUtils . toFraction ( dvt_p_p_economic_group ) ,
98
- ppGovernanceGroup : Cardano . FractionUtils . toFraction ( dvt_p_p_gov_group ) ,
99
- ppNetworkGroup : Cardano . FractionUtils . toFraction ( dvt_p_p_network_group ) ,
100
- ppTechnicalGroup : Cardano . FractionUtils . toFraction ( dvt_p_p_technical_group ) ,
101
- treasuryWithdrawal : Cardano . FractionUtils . toFraction ( dvt_treasury_withdrawal ) ,
102
- updateConstitution : Cardano . FractionUtils . toFraction ( dvt_update_to_constitution )
103
- } ,
92
+ ...( drep_activity && { dRepInactivityPeriod : Cardano . EpochNo ( drep_activity ) } ) ,
93
+ ...( dvt_committee_no_confidence &&
94
+ dvt_committee_normal &&
95
+ dvt_hard_fork_initiation &&
96
+ dvt_motion_no_confidence &&
97
+ dvt_p_p_economic_group &&
98
+ dvt_p_p_gov_group &&
99
+ dvt_p_p_network_group &&
100
+ dvt_p_p_technical_group &&
101
+ dvt_treasury_withdrawal &&
102
+ dvt_update_to_constitution && {
103
+ dRepVotingThresholds : {
104
+ committeeNoConfidence : Cardano . FractionUtils . toFraction ( dvt_committee_no_confidence ) ,
105
+ committeeNormal : Cardano . FractionUtils . toFraction ( dvt_committee_normal ) ,
106
+ hardForkInitiation : Cardano . FractionUtils . toFraction ( dvt_hard_fork_initiation ) ,
107
+ motionNoConfidence : Cardano . FractionUtils . toFraction ( dvt_motion_no_confidence ) ,
108
+ ppEconomicGroup : Cardano . FractionUtils . toFraction ( dvt_p_p_economic_group ) ,
109
+ ppGovernanceGroup : Cardano . FractionUtils . toFraction ( dvt_p_p_gov_group ) ,
110
+ ppNetworkGroup : Cardano . FractionUtils . toFraction ( dvt_p_p_network_group ) ,
111
+ ppTechnicalGroup : Cardano . FractionUtils . toFraction ( dvt_p_p_technical_group ) ,
112
+ treasuryWithdrawal : Cardano . FractionUtils . toFraction ( dvt_treasury_withdrawal ) ,
113
+ updateConstitution : Cardano . FractionUtils . toFraction ( dvt_update_to_constitution )
114
+ }
115
+ } ) ,
104
116
desiredNumberOfPools : optimal_pool_count ,
105
117
governanceActionDeposit : Number ( gov_action_deposit ) ,
106
- governanceActionValidityPeriod : Cardano . EpochNo ( gov_action_lifetime ) ,
118
+ ... ( gov_action_lifetime && { governanceActionValidityPeriod : Cardano . EpochNo ( gov_action_lifetime ) } ) ,
107
119
maxBlockBodySize : max_block_size ,
108
120
maxBlockHeaderSize : max_bh_size ,
109
121
maxCollateralInputs : max_collateral_inputs ,
@@ -126,13 +138,19 @@ export const toProtocolParams = ({
126
138
poolDeposit : Number ( pool_deposit ) ,
127
139
poolInfluence : String ( influence ) ,
128
140
poolRetirementEpochBound : max_epoch ,
129
- poolVotingThresholds : {
130
- committeeNoConfidence : Cardano . FractionUtils . toFraction ( pvt_committee_no_confidence ) ,
131
- committeeNormal : Cardano . FractionUtils . toFraction ( pvt_committee_normal ) ,
132
- hardForkInitiation : Cardano . FractionUtils . toFraction ( pvt_hard_fork_initiation ) ,
133
- motionNoConfidence : Cardano . FractionUtils . toFraction ( pvt_motion_no_confidence ) ,
134
- securityRelevantParamVotingThreshold : Cardano . FractionUtils . toFraction ( pvtpp_security_group )
135
- } ,
141
+ ...( pvt_committee_no_confidence &&
142
+ pvt_committee_normal &&
143
+ pvt_hard_fork_initiation &&
144
+ pvt_motion_no_confidence &&
145
+ pvtpp_security_group && {
146
+ poolVotingThresholds : {
147
+ committeeNoConfidence : Cardano . FractionUtils . toFraction ( pvt_committee_no_confidence ) ,
148
+ committeeNormal : Cardano . FractionUtils . toFraction ( pvt_committee_normal ) ,
149
+ hardForkInitiation : Cardano . FractionUtils . toFraction ( pvt_hard_fork_initiation ) ,
150
+ motionNoConfidence : Cardano . FractionUtils . toFraction ( pvt_motion_no_confidence ) ,
151
+ securityRelevantParamVotingThreshold : Cardano . FractionUtils . toFraction ( pvtpp_security_group )
152
+ }
153
+ } ) ,
136
154
prices : {
137
155
memory : price_mem ,
138
156
steps : price_step
0 commit comments