668325a4ce
* Added separate gateway active set size * Grabbing contract state * Defined PartialOrd on MixnodeBond and GatewayBond * Some initial stub for active set * Unit tests for mixnode and gateway bond partialord implementation * Obtaining active sets * Active nodes routes * Additional methods on validator client * Added state migration * Feature locking unused import * Fixed State test fixture * Included block height for partial_ord * Missing post-merge imports * api on the client for active nodes * Native/socks5/wasm clients using active nodes * Rewarding only active nodes * Updated validator client StateParams definition * Gateway active set size * Contract migration update * Cargo fmt * Updated TauriStateParams * [ci skip] Generate TS types Co-authored-by: jstuczyn <jstuczyn@users.noreply.github.com>
32 lines
961 B
Rust
32 lines
961 B
Rust
// Copyright 2021 - Nym Technologies SA <contact@nymtech.net>
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
use crate::cache::ValidatorCache;
|
|
use mixnet_contract::{GatewayBond, MixNodeBond};
|
|
use rocket::serde::json::Json;
|
|
use rocket::State;
|
|
|
|
#[get("/mixnodes")]
|
|
pub(crate) async fn get_mixnodes(cache: &State<ValidatorCache>) -> Json<Vec<MixNodeBond>> {
|
|
Json(cache.mixnodes().await.value)
|
|
}
|
|
|
|
#[get("/gateways")]
|
|
pub(crate) async fn get_gateways(cache: &State<ValidatorCache>) -> Json<Vec<GatewayBond>> {
|
|
Json(cache.gateways().await.value)
|
|
}
|
|
|
|
#[get("/mixnodes/active")]
|
|
pub(crate) async fn get_active_mixnodes(
|
|
cache: &State<ValidatorCache>,
|
|
) -> Option<Json<Vec<MixNodeBond>>> {
|
|
cache.active_mixnodes().await.map(|cache| Json(cache.value))
|
|
}
|
|
|
|
#[get("/gateways/active")]
|
|
pub(crate) async fn get_active_gateways(
|
|
cache: &State<ValidatorCache>,
|
|
) -> Option<Json<Vec<GatewayBond>>> {
|
|
cache.active_gateways().await.map(|cache| Json(cache.value))
|
|
}
|