Skip to content

Commit

Permalink
fix: min_active_bid returned as NumberOrHex
Browse files Browse the repository at this point in the history
  • Loading branch information
marcellorigotti committed Sep 27, 2024
1 parent dad9850 commit 981c9b0
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 28 deletions.
25 changes: 3 additions & 22 deletions state-chain/custom-rpc/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use crate::boost_pool_rpc::BoostPoolFeesRpc;
use crate::{boost_pool_rpc::BoostPoolFeesRpc, monitoring::RpcEpochStateV2};
use boost_pool_rpc::BoostPoolDetailsRpc;
use cf_amm::{
common::{Amount, PoolPairsMap, Side, Tick},
Expand Down Expand Up @@ -40,7 +40,7 @@ use state_chain_runtime::{
chainflip::{BlockUpdate, Offence},
constants::common::TX_FEE_MULTIPLIER,
monitoring_apis::{
AuthoritiesInfo, BtcUtxos, EpochState, ExternalChainsBlockHeight, FeeImbalance, FlipSupply,
AuthoritiesInfo, BtcUtxos, ExternalChainsBlockHeight, FeeImbalance, FlipSupply,
LastRuntimeUpgradeInfo, MonitoringData, OpenDepositChannels, PendingBroadcasts,
PendingTssCeremonies, RedemptionsInfo,
},
Expand All @@ -61,25 +61,6 @@ use std::{
pub mod monitoring;
pub mod order_fills;

#[derive(Serialize, Deserialize)]
pub struct RpcEpochState {
pub epoch_duration: u32,
pub current_epoch_started_at: u32,
pub current_epoch_index: u32,
pub min_active_bid: Option<NumberOrHex>,
pub rotation_phase: String,
}
impl From<EpochState> for RpcEpochState {
fn from(rotation_state: EpochState) -> Self {
Self {
epoch_duration: rotation_state.epoch_duration,
current_epoch_started_at: rotation_state.current_epoch_started_at,
current_epoch_index: rotation_state.current_epoch_index,
rotation_phase: rotation_state.rotation_phase,
min_active_bid: rotation_state.min_active_bid.map(Into::into),
}
}
}
#[derive(Serialize, Deserialize)]
pub struct RpcRedemptionsInfo {
pub total_balance: NumberOrHex,
Expand Down Expand Up @@ -111,7 +92,7 @@ impl From<FlipSupply> for RpcFlipSupply {
pub struct RpcMonitoringData {
pub external_chains_height: ExternalChainsBlockHeight,
pub btc_utxos: BtcUtxos,
pub epoch: RpcEpochState,
pub epoch: RpcEpochStateV2,
pub pending_redemptions: RpcRedemptionsInfo,
pub pending_broadcasts: PendingBroadcasts,
pub pending_tss: PendingTssCeremonies,
Expand Down
32 changes: 26 additions & 6 deletions state-chain/custom-rpc/src/monitoring.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ use crate::{
to_rpc_error, BlockT, CustomRpc, RpcAccountInfoV2, RpcFeeImbalance, RpcMonitoringData,
};
use cf_chains::dot::PolkadotAccountId;
use cf_utilities::rpc::NumberOrHex;
use jsonrpsee::{core::RpcResult, proc_macros::rpc};
use sc_client_api::{BlockchainEvents, HeaderBackend};
use serde::{Deserialize, Serialize};
Expand All @@ -14,23 +15,42 @@ use state_chain_runtime::{
RedemptionsInfo,
},
};
impl From<EpochState> for RpcEpochState {
fn from(rotation_state: EpochState) -> Self {
Self {
epoch_duration: rotation_state.epoch_duration,
current_epoch_started_at: rotation_state.current_epoch_started_at,
current_epoch_index: rotation_state.current_epoch_index,
rotation_phase: rotation_state.rotation_phase,
min_active_bid: rotation_state.min_active_bid.map(Into::into),
}
}
}
#[derive(Serialize, Deserialize)]
pub struct RpcEpochState {
pub epoch_duration: u32,
pub current_epoch_started_at: u32,
pub current_epoch_index: u32,
pub min_active_bid: Option<NumberOrHex>,
pub rotation_phase: String,
}

// Temporary struct to hold the deprecated blocks_per_epoch field.
// Can be deleted after v1.7 is released (meaning: after the version is bumped to 1.8).
#[derive(Serialize, Deserialize)]
pub struct RpcEpochState {
pub struct RpcEpochStateV2 {
#[deprecated(
since = "1.8.0",
note = "This field is deprecated and will be removed in v1.8. Use blocks_per_epoch instead."
)]
blocks_per_epoch: u32,
#[serde(flatten)]
epoch_state: EpochState,
epoch_state: RpcEpochState,
}

impl From<EpochState> for RpcEpochState {
impl From<EpochState> for RpcEpochStateV2 {
fn from(epoch_state: EpochState) -> Self {
Self { blocks_per_epoch: epoch_state.epoch_duration, epoch_state }
Self { blocks_per_epoch: epoch_state.epoch_duration, epoch_state: epoch_state.into() }
}
}

Expand All @@ -53,7 +73,7 @@ pub trait MonitoringApi {
at: Option<state_chain_runtime::Hash>,
) -> RpcResult<Vec<(Offence, u32)>>;
#[method(name = "epoch_state")]
fn cf_epoch_state(&self, at: Option<state_chain_runtime::Hash>) -> RpcResult<RpcEpochState>;
fn cf_epoch_state(&self, at: Option<state_chain_runtime::Hash>) -> RpcResult<RpcEpochStateV2>;
#[method(name = "redemptions")]
fn cf_redemptions(&self, at: Option<state_chain_runtime::Hash>) -> RpcResult<RedemptionsInfo>;
#[method(name = "pending_broadcasts")]
Expand Down Expand Up @@ -126,7 +146,7 @@ where
cf_btc_utxos -> BtcUtxos,
cf_dot_aggkey -> PolkadotAccountId,
cf_suspended_validators -> Vec<(Offence, u32)>,
cf_epoch_state -> RpcEpochState [with: RpcEpochState::from],
cf_epoch_state -> RpcEpochStateV2 [with: RpcEpochStateV2::from],
cf_redemptions -> RedemptionsInfo,
cf_pending_broadcasts_count -> PendingBroadcasts,
cf_pending_tss_ceremonies_count -> PendingTssCeremonies,
Expand Down

0 comments on commit 981c9b0

Please sign in to comment.