Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7fc9eca46f | |||
| 4e5c765a0d | |||
| e1abbc0b5b | |||
| 373cc54f3f | |||
| a276608fd0 | |||
| b332a6b556 |
@@ -30,6 +30,7 @@ jobs:
|
|||||||
mixnode_hash: ${{ steps.binary-hashes.outputs.mixnode_hash }}
|
mixnode_hash: ${{ steps.binary-hashes.outputs.mixnode_hash }}
|
||||||
gateway_hash: ${{ steps.binary-hashes.outputs.gateway_hash }}
|
gateway_hash: ${{ steps.binary-hashes.outputs.gateway_hash }}
|
||||||
nymvisor_hash: ${{ steps.binary-hashes.outputs.nymvisor_hash }}
|
nymvisor_hash: ${{ steps.binary-hashes.outputs.nymvisor_hash }}
|
||||||
|
nymnode_hash: ${{ steps.binary-hashes.outputs.nymnode_hash }}
|
||||||
socks5_hash: ${{ steps.binary-hashes.outputs.socks5_hash }}
|
socks5_hash: ${{ steps.binary-hashes.outputs.socks5_hash }}
|
||||||
netreq_hash: ${{ steps.binary-hashes.outputs.netreq_hash }}
|
netreq_hash: ${{ steps.binary-hashes.outputs.netreq_hash }}
|
||||||
cli_hash: ${{ steps.binary-hashes.outputs.cli_hash }}
|
cli_hash: ${{ steps.binary-hashes.outputs.cli_hash }}
|
||||||
@@ -38,6 +39,7 @@ jobs:
|
|||||||
mixnode_version: ${{ steps.binary-versions.outputs.mixnode_version }}
|
mixnode_version: ${{ steps.binary-versions.outputs.mixnode_version }}
|
||||||
gateway_version: ${{ steps.binary-versions.outputs.gateway_version }}
|
gateway_version: ${{ steps.binary-versions.outputs.gateway_version }}
|
||||||
nymvisor_version: ${{ steps.binary-versions.outputs.nymvisor_version }}
|
nymvisor_version: ${{ steps.binary-versions.outputs.nymvisor_version }}
|
||||||
|
nymnode_version: ${{ steps.binary-versions.outputs.nymnode_version }}
|
||||||
socks5_version: ${{ steps.binary-versions.outputs.socks5_version }}
|
socks5_version: ${{ steps.binary-versions.outputs.socks5_version }}
|
||||||
netreq_version: ${{ steps.binary-versions.outputs.netreq_version }}
|
netreq_version: ${{ steps.binary-versions.outputs.netreq_version }}
|
||||||
cli_version: ${{ steps.binary-versions.outputs.cli_version }}
|
cli_version: ${{ steps.binary-versions.outputs.cli_version }}
|
||||||
@@ -81,6 +83,7 @@ jobs:
|
|||||||
target/release/nym-network-statistics
|
target/release/nym-network-statistics
|
||||||
target/release/nym-cli
|
target/release/nym-cli
|
||||||
target/release/nymvisor
|
target/release/nymvisor
|
||||||
|
target/release/nym-node
|
||||||
retention-days: 30
|
retention-days: 30
|
||||||
|
|
||||||
- id: create-release
|
- id: create-release
|
||||||
@@ -99,6 +102,7 @@ jobs:
|
|||||||
target/release/nym-network-statistics
|
target/release/nym-network-statistics
|
||||||
target/release/nym-cli
|
target/release/nym-cli
|
||||||
target/release/nymvisor
|
target/release/nymvisor
|
||||||
|
target/release/nym-node
|
||||||
|
|
||||||
push-release-data-client:
|
push-release-data-client:
|
||||||
if: ${{ (startsWith(github.ref, 'refs/tags/nym-binaries-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }}
|
if: ${{ (startsWith(github.ref, 'refs/tags/nym-binaries-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }}
|
||||||
|
|||||||
@@ -4,6 +4,20 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https://
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [2024.3-eclipse] (2024-04-22)
|
||||||
|
|
||||||
|
- Initial release of the first iteration of the Nym Node
|
||||||
|
- Improvements to gateway functionality
|
||||||
|
- IPR development
|
||||||
|
- Removal of allow list in favour of implementing an exit policy
|
||||||
|
- Explorer delegation: enables direct delegation to nodes via the Nym Explorer
|
||||||
|
|
||||||
|
|
||||||
|
## [2024.2-fast-and-furious] (2024-03-25)
|
||||||
|
|
||||||
|
- Internal testing pre-release
|
||||||
|
|
||||||
|
|
||||||
## [2024.1-marabou] (2024-02-15)
|
## [2024.1-marabou] (2024-02-15)
|
||||||
|
|
||||||
**New Features:**
|
**New Features:**
|
||||||
|
|||||||
Generated
+17
-16
@@ -2547,7 +2547,7 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "explorer-api"
|
name = "explorer-api"
|
||||||
version = "1.1.33"
|
version = "1.1.34"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"clap 4.4.7",
|
"clap 4.4.7",
|
||||||
@@ -3507,7 +3507,7 @@ dependencies = [
|
|||||||
"futures-util",
|
"futures-util",
|
||||||
"http 0.2.9",
|
"http 0.2.9",
|
||||||
"hyper 0.14.27",
|
"hyper 0.14.27",
|
||||||
"rustls 0.21.10",
|
"rustls 0.21.11",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-rustls 0.24.1",
|
"tokio-rustls 0.24.1",
|
||||||
]
|
]
|
||||||
@@ -5024,7 +5024,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nym-api"
|
name = "nym-api"
|
||||||
version = "1.1.35"
|
version = "1.1.37"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
@@ -5113,6 +5113,7 @@ dependencies = [
|
|||||||
"schemars",
|
"schemars",
|
||||||
"serde",
|
"serde",
|
||||||
"tendermint",
|
"tendermint",
|
||||||
|
"time",
|
||||||
"ts-rs",
|
"ts-rs",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -5185,7 +5186,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nym-cli"
|
name = "nym-cli"
|
||||||
version = "1.1.34"
|
version = "1.1.35"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64 0.13.1",
|
"base64 0.13.1",
|
||||||
@@ -5266,7 +5267,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nym-client"
|
name = "nym-client"
|
||||||
version = "1.1.33"
|
version = "1.1.34"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bs58 0.5.0",
|
"bs58 0.5.0",
|
||||||
"clap 4.4.7",
|
"clap 4.4.7",
|
||||||
@@ -5683,7 +5684,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nym-gateway"
|
name = "nym-gateway"
|
||||||
version = "1.1.33"
|
version = "1.1.35"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
@@ -5978,7 +5979,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nym-mixnode"
|
name = "nym-mixnode"
|
||||||
version = "1.1.35"
|
version = "1.1.37"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"axum",
|
"axum",
|
||||||
@@ -6097,7 +6098,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nym-network-requester"
|
name = "nym-network-requester"
|
||||||
version = "1.1.33"
|
version = "1.1.34"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"addr",
|
"addr",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
@@ -6149,7 +6150,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nym-network-statistics"
|
name = "nym-network-statistics"
|
||||||
version = "1.1.33"
|
version = "1.1.34"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dirs 4.0.0",
|
"dirs 4.0.0",
|
||||||
"log",
|
"log",
|
||||||
@@ -6437,7 +6438,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nym-socks5-client"
|
name = "nym-socks5-client"
|
||||||
version = "1.1.33"
|
version = "1.1.34"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bs58 0.5.0",
|
"bs58 0.5.0",
|
||||||
"clap 4.4.7",
|
"clap 4.4.7",
|
||||||
@@ -8317,7 +8318,7 @@ dependencies = [
|
|||||||
"once_cell",
|
"once_cell",
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
"pin-project-lite 0.2.13",
|
"pin-project-lite 0.2.13",
|
||||||
"rustls 0.21.10",
|
"rustls 0.21.11",
|
||||||
"rustls-native-certs",
|
"rustls-native-certs",
|
||||||
"rustls-pemfile",
|
"rustls-pemfile",
|
||||||
"serde",
|
"serde",
|
||||||
@@ -8701,9 +8702,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustls"
|
name = "rustls"
|
||||||
version = "0.21.10"
|
version = "0.21.11"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
|
checksum = "7fecbfb7b1444f477b345853b1fce097a2c6fb637b2bfb87e6bc5db0f043fae4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log",
|
"log",
|
||||||
"ring 0.17.4",
|
"ring 0.17.4",
|
||||||
@@ -10100,7 +10101,7 @@ version = "0.24.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
|
checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rustls 0.21.10",
|
"rustls 0.21.11",
|
||||||
"tokio",
|
"tokio",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -10161,7 +10162,7 @@ checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-util",
|
"futures-util",
|
||||||
"log",
|
"log",
|
||||||
"rustls 0.21.10",
|
"rustls 0.21.11",
|
||||||
"rustls-native-certs",
|
"rustls-native-certs",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-rustls 0.24.1",
|
"tokio-rustls 0.24.1",
|
||||||
@@ -10595,7 +10596,7 @@ dependencies = [
|
|||||||
"httparse",
|
"httparse",
|
||||||
"log",
|
"log",
|
||||||
"rand 0.8.5",
|
"rand 0.8.5",
|
||||||
"rustls 0.21.10",
|
"rustls 0.21.11",
|
||||||
"sha1",
|
"sha1",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"url",
|
"url",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "nym-client"
|
name = "nym-client"
|
||||||
version = "1.1.33"
|
version = "1.1.34"
|
||||||
authors = ["Dave Hrycyszyn <futurechimp@users.noreply.github.com>", "Jędrzej Stuczyński <andrew@nymtech.net>"]
|
authors = ["Dave Hrycyszyn <futurechimp@users.noreply.github.com>", "Jędrzej Stuczyński <andrew@nymtech.net>"]
|
||||||
description = "Implementation of the Nym Client"
|
description = "Implementation of the Nym Client"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "nym-socks5-client"
|
name = "nym-socks5-client"
|
||||||
version = "1.1.33"
|
version = "1.1.34"
|
||||||
authors = ["Dave Hrycyszyn <futurechimp@users.noreply.github.com>"]
|
authors = ["Dave Hrycyszyn <futurechimp@users.noreply.github.com>"]
|
||||||
description = "A SOCKS5 localhost proxy that converts incoming messages to Sphinx and sends them to a Nym address"
|
description = "A SOCKS5 localhost proxy that converts incoming messages to Sphinx and sends them to a Nym address"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "explorer-api"
|
name = "explorer-api"
|
||||||
version = "1.1.33"
|
version = "1.1.34"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license.workspace = true
|
license.workspace = true
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "nym-gateway"
|
name = "nym-gateway"
|
||||||
license = "GPL-3.0"
|
license = "GPL-3.0"
|
||||||
version = "1.1.33"
|
version = "1.1.35"
|
||||||
authors = [
|
authors = [
|
||||||
"Dave Hrycyszyn <futurechimp@users.noreply.github.com>",
|
"Dave Hrycyszyn <futurechimp@users.noreply.github.com>",
|
||||||
"Jędrzej Stuczyński <andrew@nymtech.net>",
|
"Jędrzej Stuczyński <andrew@nymtech.net>",
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "nym-mixnode"
|
name = "nym-mixnode"
|
||||||
license = "GPL-3.0"
|
license = "GPL-3.0"
|
||||||
version = "1.1.35"
|
version = "1.1.37"
|
||||||
authors = [
|
authors = [
|
||||||
"Dave Hrycyszyn <futurechimp@users.noreply.github.com>",
|
"Dave Hrycyszyn <futurechimp@users.noreply.github.com>",
|
||||||
"Jędrzej Stuczyński <andrew@nymtech.net>",
|
"Jędrzej Stuczyński <andrew@nymtech.net>",
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
// Copyright 2023 - Nym Technologies SA <contact@nymtech.net>
|
// Copyright 2023 - Nym Technologies SA <contact@nymtech.net>
|
||||||
// SPDX-License-Identifier: GPL-3.0-only
|
// SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
|
||||||
|
#![allow(unused)]
|
||||||
|
|
||||||
use crate::node::http::legacy::description::description;
|
use crate::node::http::legacy::description::description;
|
||||||
use crate::node::http::legacy::hardware::hardware;
|
use crate::node::http::legacy::hardware::hardware;
|
||||||
use crate::node::http::legacy::state::MixnodeAppState;
|
use crate::node::http::legacy::state::MixnodeAppState;
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ impl<'a> HttpApiBuilder<'a> {
|
|||||||
|
|
||||||
let router = nym_node_http_api::NymNodeRouter::new(config, None, None);
|
let router = nym_node_http_api::NymNodeRouter::new(config, None, None);
|
||||||
let server = router
|
let server = router
|
||||||
.with_merged(legacy::routes(self.legacy_mixnode, self.legacy_descriptor))
|
// .with_merged(legacy::routes(self.legacy_mixnode, self.legacy_descriptor))
|
||||||
.build_server(&bind_address)?
|
.build_server(&bind_address)?
|
||||||
.with_task_client(task_client);
|
.with_task_client(task_client);
|
||||||
tokio::spawn(async move { server.run().await });
|
tokio::spawn(async move { server.run().await });
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "nym-api"
|
name = "nym-api"
|
||||||
license = "GPL-3.0"
|
license = "GPL-3.0"
|
||||||
version = "1.1.35"
|
version = "1.1.37"
|
||||||
authors = [
|
authors = [
|
||||||
"Dave Hrycyszyn <futurechimp@users.noreply.github.com>",
|
"Dave Hrycyszyn <futurechimp@users.noreply.github.com>",
|
||||||
"Jędrzej Stuczyński <andrew@nymtech.net>",
|
"Jędrzej Stuczyński <andrew@nymtech.net>",
|
||||||
|
|||||||
@@ -15,12 +15,14 @@ schemars = { workspace = true, features = ["preserve_order"] }
|
|||||||
serde = { workspace = true, features = ["derive"] }
|
serde = { workspace = true, features = ["derive"] }
|
||||||
ts-rs = { workspace = true, optional = true }
|
ts-rs = { workspace = true, optional = true }
|
||||||
tendermint = { workspace = true }
|
tendermint = { workspace = true }
|
||||||
|
time = { workspace = true, features = ["serde", "parsing", "formatting"] }
|
||||||
|
|
||||||
|
|
||||||
# for serde on secp256k1 signatures
|
# for serde on secp256k1 signatures
|
||||||
ecdsa = { version = "0.16", features = ["serde"] }
|
ecdsa = { version = "0.16", features = ["serde"] }
|
||||||
|
|
||||||
nym-credentials-interface = { path = "../../common/credentials-interface" }
|
nym-credentials-interface = { path = "../../common/credentials-interface" }
|
||||||
nym-crypto = { path = "../../common/crypto", features = ["serde", "asymmetric"]}
|
nym-crypto = { path = "../../common/crypto", features = ["serde", "asymmetric"] }
|
||||||
|
|
||||||
nym-mixnet-contract-common = { path = "../../common/cosmwasm-smart-contracts/mixnet-contract" }
|
nym-mixnet-contract-common = { path = "../../common/cosmwasm-smart-contracts/mixnet-contract" }
|
||||||
nym-node-requests = { path = "../../nym-node/nym-node-requests", default-features = false }
|
nym-node-requests = { path = "../../nym-node/nym-node-requests", default-features = false }
|
||||||
|
|||||||
@@ -10,11 +10,15 @@ use nym_mixnet_contract_common::{
|
|||||||
GatewayBond, IdentityKey, Interval, MixId, MixNode, Percent, RewardedSetNodeStatus,
|
GatewayBond, IdentityKey, Interval, MixId, MixNode, Percent, RewardedSetNodeStatus,
|
||||||
};
|
};
|
||||||
use nym_node_requests::api::v1::node::models::BinaryBuildInformationOwned;
|
use nym_node_requests::api::v1::node::models::BinaryBuildInformationOwned;
|
||||||
|
use schemars::gen::SchemaGenerator;
|
||||||
|
use schemars::schema::{InstanceType, Schema, SchemaObject};
|
||||||
use schemars::JsonSchema;
|
use schemars::JsonSchema;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::fmt::{Display, Formatter};
|
use std::fmt::{Display, Formatter};
|
||||||
use std::net::IpAddr;
|
use std::net::IpAddr;
|
||||||
|
use std::ops::{Deref, DerefMut};
|
||||||
use std::{fmt, time::Duration};
|
use std::{fmt, time::Duration};
|
||||||
|
use time::OffsetDateTime;
|
||||||
|
|
||||||
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, JsonSchema)]
|
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, JsonSchema)]
|
||||||
pub struct RequestError {
|
pub struct RequestError {
|
||||||
@@ -404,8 +408,71 @@ impl From<nym_node_requests::api::v1::gateway::models::WebSockets> for WebSocket
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const fn unix_epoch() -> OffsetDateTime {
|
||||||
|
OffsetDateTime::UNIX_EPOCH
|
||||||
|
}
|
||||||
|
|
||||||
|
// for all intents and purposes it's just OffsetDateTime, but we need JsonSchema...
|
||||||
|
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
|
||||||
|
pub struct OffsetDateTimeJsonSchemaWrapper(#[serde(default = "unix_epoch")] pub OffsetDateTime);
|
||||||
|
|
||||||
|
impl Default for OffsetDateTimeJsonSchemaWrapper {
|
||||||
|
fn default() -> Self {
|
||||||
|
OffsetDateTimeJsonSchemaWrapper(unix_epoch())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<OffsetDateTimeJsonSchemaWrapper> for OffsetDateTime {
|
||||||
|
fn from(value: OffsetDateTimeJsonSchemaWrapper) -> Self {
|
||||||
|
value.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<OffsetDateTime> for OffsetDateTimeJsonSchemaWrapper {
|
||||||
|
fn from(value: OffsetDateTime) -> Self {
|
||||||
|
OffsetDateTimeJsonSchemaWrapper(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Deref for OffsetDateTimeJsonSchemaWrapper {
|
||||||
|
type Target = OffsetDateTime;
|
||||||
|
|
||||||
|
fn deref(&self) -> &Self::Target {
|
||||||
|
&self.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl DerefMut for OffsetDateTimeJsonSchemaWrapper {
|
||||||
|
fn deref_mut(&mut self) -> &mut Self::Target {
|
||||||
|
&mut self.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// implementation taken from: https://github.com/GREsau/schemars/pull/207
|
||||||
|
impl JsonSchema for OffsetDateTimeJsonSchemaWrapper {
|
||||||
|
fn is_referenceable() -> bool {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
|
||||||
|
fn schema_name() -> String {
|
||||||
|
"DateTime".into()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn json_schema(_: &mut SchemaGenerator) -> Schema {
|
||||||
|
SchemaObject {
|
||||||
|
instance_type: Some(InstanceType::String.into()),
|
||||||
|
format: Some("date-time".into()),
|
||||||
|
..Default::default()
|
||||||
|
}
|
||||||
|
.into()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Serialize, Deserialize, schemars::JsonSchema)]
|
#[derive(Clone, Debug, Serialize, Deserialize, schemars::JsonSchema)]
|
||||||
pub struct NymNodeDescription {
|
pub struct NymNodeDescription {
|
||||||
|
#[serde(default)]
|
||||||
|
pub last_polled: OffsetDateTimeJsonSchemaWrapper,
|
||||||
|
|
||||||
pub host_information: HostInformation,
|
pub host_information: HostInformation,
|
||||||
|
|
||||||
// TODO: do we really care about ALL build info or just the version?
|
// TODO: do we really care about ALL build info or just the version?
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ use nym_mixnet_contract_common::Gateway;
|
|||||||
use nym_node_requests::api::client::{NymNodeApiClientError, NymNodeApiClientExt};
|
use nym_node_requests::api::client::{NymNodeApiClientError, NymNodeApiClientExt};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
|
use time::OffsetDateTime;
|
||||||
|
|
||||||
// type alias for ease of use
|
// type alias for ease of use
|
||||||
pub type DescribedNodes = HashMap<IdentityKey, NymNodeDescription>;
|
pub type DescribedNodes = HashMap<IdentityKey, NymNodeDescription>;
|
||||||
@@ -182,6 +183,7 @@ async fn get_gateway_description(
|
|||||||
|
|
||||||
let description = NymNodeDescription {
|
let description = NymNodeDescription {
|
||||||
host_information: host_info.data.into(),
|
host_information: host_info.data.into(),
|
||||||
|
last_polled: OffsetDateTime::now_utc().into(),
|
||||||
build_information: build_info,
|
build_information: build_info,
|
||||||
network_requester,
|
network_requester,
|
||||||
ip_packet_router,
|
ip_packet_router,
|
||||||
@@ -211,7 +213,7 @@ impl CacheItemProvider for NodeDescriptionProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: somehow bypass the 'higher-ranked lifetime error' and remove that redundant clone
|
// TODO: somehow bypass the 'higher-ranked lifetime error' and remove that redundant clone
|
||||||
let websockets = stream::iter(
|
let node_description = stream::iter(
|
||||||
gateways
|
gateways
|
||||||
// .deref()
|
// .deref()
|
||||||
// .clone()
|
// .clone()
|
||||||
@@ -232,7 +234,7 @@ impl CacheItemProvider for NodeDescriptionProvider {
|
|||||||
.collect::<HashMap<_, _>>()
|
.collect::<HashMap<_, _>>()
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
Ok(websockets)
|
Ok(node_description)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "nym_wallet"
|
name = "nym_wallet"
|
||||||
version = "1.2.12"
|
version = "1.2.13"
|
||||||
description = "Nym Native Wallet"
|
description = "Nym Native Wallet"
|
||||||
authors = ["Nym Technologies SA"]
|
authors = ["Nym Technologies SA"]
|
||||||
license = ""
|
license = ""
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"package": {
|
"package": {
|
||||||
"productName": "nym-wallet",
|
"productName": "nym-wallet",
|
||||||
"version": "1.2.12"
|
"version": "1.2.13"
|
||||||
},
|
},
|
||||||
"build": {
|
"build": {
|
||||||
"distDir": "../dist",
|
"distDir": "../dist",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "nym-network-requester"
|
name = "nym-network-requester"
|
||||||
license = "GPL-3.0"
|
license = "GPL-3.0"
|
||||||
version = "1.1.33"
|
version = "1.1.34"
|
||||||
authors.workspace = true
|
authors.workspace = true
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
rust-version = "1.70"
|
rust-version = "1.70"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "nym-network-statistics"
|
name = "nym-network-statistics"
|
||||||
version = "1.1.33"
|
version = "1.1.34"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license.workspace = true
|
license.workspace = true
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "nym-cli"
|
name = "nym-cli"
|
||||||
version = "1.1.34"
|
version = "1.1.35"
|
||||||
authors.workspace = true
|
authors.workspace = true
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license.workspace = true
|
license.workspace = true
|
||||||
|
|||||||
Reference in New Issue
Block a user