GenesisConfig.java

  1. package com.syntifi.near.api.model.protocol;

  2. import java.util.Collection;

  3. import com.fasterxml.jackson.annotation.JsonInclude;
  4. import com.fasterxml.jackson.annotation.JsonInclude.Include;
  5. import com.fasterxml.jackson.annotation.JsonProperty;
  6. import com.syntifi.near.api.model.network.Validator;

  7. import lombok.Getter;
  8. import lombok.Setter;

  9. /**
  10.  * @author Alexandre Carvalho
  11.  * @author Andre Bertolace
  12.  * @since 0.0.1
  13.  */
  14. @Getter
  15. @Setter
  16. public class GenesisConfig {
  17.     @JsonProperty("protocol_version")
  18.     private long protocolVersion;

  19.     @JsonProperty("genesis_time")
  20.     private String genesisTime;

  21.     @JsonProperty("chain_id")
  22.     private String chainId;

  23.     @JsonProperty("genesis_height")
  24.     private long genesisHeight;

  25.     @JsonProperty("num_block_producer_seats")
  26.     private long numBlockProducerSeats;

  27.     @JsonProperty("num_block_producer_seats_per_shard")
  28.     private Collection<Long> numBlockProducerSeatsPerShard;

  29.     @JsonProperty("avg_hidden_validator_seats_per_shard")
  30.     private Collection<Long> avgHiddenValidatorSeatsPerShard;

  31.     @JsonProperty("dynamic_resharding")
  32.     private boolean dynamicResharding;

  33.     @JsonProperty("protocol_upgrade_stake_threshold")
  34.     private Collection<Long> protocolUpgradeStakeThreshold;

  35.     @JsonProperty("protocol_upgrade_num_epochs")
  36.     private long protocolUpgradeNumEpochs;

  37.     @JsonProperty("epoch_length")
  38.     private long epochLength;

  39.     @JsonProperty("gas_limit")
  40.     private long gasLimit;

  41.     @JsonProperty("min_gas_price")
  42.     private String minGasPrice;

  43.     @JsonProperty("max_gas_price")
  44.     private String maxGasPrice;

  45.     @JsonProperty("block_producer_kickout_threshold")
  46.     private long blockProducerKickoutThreshold;

  47.     @JsonProperty("chunk_producer_kickout_threshold")
  48.     private long chunkProducerKickoutThreshold;

  49.     @JsonProperty("online_min_threshold")
  50.     private Collection<Long> onlineMinThreshold;

  51.     @JsonProperty("online_max_threshold")
  52.     private Collection<Long> onlineMaxThreshold;

  53.     @JsonProperty("gas_price_adjustment_rate")
  54.     private Collection<Long> gasPriceAdjustmentRate;

  55.     @JsonProperty("runtime_config")
  56.     @JsonInclude(value = Include.NON_NULL)
  57.     private RuntimeConfig runtimeConfig;

  58.     @JsonProperty("validators")
  59.     private Collection<Validator> validators;

  60.     @JsonProperty("transaction_validity_period")
  61.     private long transactionValidityPeriod;

  62.     @JsonProperty("protocol_reward_rate")
  63.     private Collection<Long> protocolRewardRate;

  64.     @JsonProperty("max_inflation_rate")
  65.     private Collection<Long> maxInflationRate;

  66.     @JsonProperty("total_supply")
  67.     private String totalSupply;

  68.     @JsonProperty("num_blocks_per_year")
  69.     private long numBlocksPerYear;

  70.     @JsonProperty("protocol_treasury_account")
  71.     private String protocolTreasuryAccount;

  72.     @JsonProperty("fishermen_threshold")
  73.     private String fishermenThreshold;

  74.     @JsonProperty("minimum_stake_divisor")
  75.     private long minimumStakeDivisor;

  76.     @JsonProperty("shard_layout")
  77.     private ShardLayout shardLayout;

  78.     @JsonProperty("simple_nightshade_shard_layout")
  79.     private SimpleNightShadeShardLayout simpleNightshadeShardLayout;

  80.     @JsonProperty("minimum_stake_ratio")
  81.     private Collection<Long> minimumStakeRatio;
  82. }