From c494379b4aa44060aae3628763bfe59d69d94ddf Mon Sep 17 00:00:00 2001 From: librelois <c@elo.tf> Date: Fri, 14 May 2021 17:31:26 +0200 Subject: [PATCH] feat(peers): add field member for peers v1 --- Cargo.lock | 36 +++++++++---------- neon/native/server.d.ts | 1 + neon/native/src/server.rs | 39 +++++++++++---------- rust-libs/duniter-server/src/legacy/dunp.rs | 1 + 4 files changed, 41 insertions(+), 36 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index aad889c51..aeff2fb5f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -864,7 +864,7 @@ dependencies = [ [[package]] name = "dubp-wot" version = "0.11.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "log", "rayon", @@ -874,7 +874,7 @@ dependencies = [ [[package]] name = "duniter-bc-reader" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "anyhow", "dubp", @@ -885,7 +885,7 @@ dependencies = [ [[package]] name = "duniter-bca" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "anyhow", "arrayvec", @@ -908,7 +908,7 @@ dependencies = [ [[package]] name = "duniter-bca-types" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "arrayvec", "bincode", @@ -940,7 +940,7 @@ dependencies = [ [[package]] name = "duniter-conf" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "anyhow", "dubp", @@ -954,7 +954,7 @@ dependencies = [ [[package]] name = "duniter-core" version = "1.8.1" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "duniter-bc-reader", "duniter-conf", @@ -991,7 +991,7 @@ dependencies = [ [[package]] name = "duniter-dbs" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "arrayvec", "bincode", @@ -1014,7 +1014,7 @@ dependencies = [ [[package]] name = "duniter-dbs-write-ops" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "chrono", "dubp", @@ -1029,7 +1029,7 @@ dependencies = [ [[package]] name = "duniter-global" version = "1.8.1" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "async-rwlock", "dubp", @@ -1042,7 +1042,7 @@ dependencies = [ [[package]] name = "duniter-gva" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "anyhow", "arrayvec", @@ -1073,7 +1073,7 @@ dependencies = [ [[package]] name = "duniter-gva-conf" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "anyhow", "duniter-core", @@ -1085,7 +1085,7 @@ dependencies = [ [[package]] name = "duniter-gva-db" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "bincode", "chrono", @@ -1102,7 +1102,7 @@ dependencies = [ [[package]] name = "duniter-gva-dbs-reader" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "anyhow", "arrayvec", @@ -1116,7 +1116,7 @@ dependencies = [ [[package]] name = "duniter-gva-gql" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "anyhow", "arrayvec", @@ -1137,7 +1137,7 @@ dependencies = [ [[package]] name = "duniter-gva-indexer" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "anyhow", "bincode", @@ -1169,7 +1169,7 @@ dependencies = [ [[package]] name = "duniter-mempools" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "dubp", "duniter-bc-reader", @@ -1182,7 +1182,7 @@ dependencies = [ [[package]] name = "duniter-module" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "anyhow", "async-mutex", @@ -1813,7 +1813,7 @@ dependencies = [ [[package]] name = "kv_typed" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "byteorder", "cfg-if 0.1.10", diff --git a/neon/native/server.d.ts b/neon/native/server.d.ts index 8e53fd2b9..763b49308 100644 --- a/neon/native/server.d.ts +++ b/neon/native/server.d.ts @@ -63,6 +63,7 @@ export class PeerCard { endpoints: string[] signature: string status: string + member: boolean } export class RustDbTx { diff --git a/neon/native/src/server.rs b/neon/native/src/server.rs index 3a603784d..ffabe4e94 100644 --- a/neon/native/src/server.rs +++ b/neon/native/src/server.rs @@ -380,15 +380,7 @@ declare_types! { let peer_js = cx.argument::<JsValue>(0)?; let peer_stringified: PeerCardStringified = neon_serde::from_value(&mut cx, peer_js)?; - let peer = duniter_server::PeerCardDbV1 { - version: peer_stringified.version, - currency: peer_stringified.currency, - pubkey: into_neon_res(&mut cx, PublicKey::from_base58(&peer_stringified.pubkey))?, - blockstamp: into_neon_res(&mut cx, Blockstamp::from_str(&peer_stringified.blockstamp))?, - endpoints: peer_stringified.endpoints, - status: &peer_stringified.status == "UP", - signature: into_neon_res(&mut cx, Signature::from_base64(&peer_stringified.signature))?, - }; + let peer = peer_stringified.into_peer_card_db_v1(&mut cx)?; let this = cx.this(); let res = { @@ -402,15 +394,7 @@ declare_types! { let peer_js = cx.argument::<JsValue>(0)?; let peer_stringified: PeerCardStringified = neon_serde::from_value(&mut cx, peer_js)?; - let peer = duniter_server::PeerCardDbV1 { - version: peer_stringified.version, - currency: peer_stringified.currency, - pubkey: into_neon_res(&mut cx, PublicKey::from_base58(&peer_stringified.pubkey))?, - blockstamp: into_neon_res(&mut cx, Blockstamp::from_str(&peer_stringified.blockstamp))?, - endpoints: peer_stringified.endpoints, - status: &peer_stringified.status == "UP", - signature: into_neon_res(&mut cx, Signature::from_base64(&peer_stringified.signature))?, - }; + let peer = peer_stringified.into_peer_card_db_v1(&mut cx)?; let this = cx.this(); { @@ -525,6 +509,25 @@ pub struct PeerCardStringified { pub endpoints: Vec<String>, pub status: String, pub signature: String, + pub member: bool, +} + +impl PeerCardStringified { + fn into_peer_card_db_v1<'c, C: Context<'c>>( + self, + cx: &mut C, + ) -> NeonResult<duniter_server::PeerCardDbV1> { + Ok(duniter_server::PeerCardDbV1 { + version: self.version, + currency: self.currency, + pubkey: into_neon_res(cx, PublicKey::from_base58(&self.pubkey))?, + blockstamp: into_neon_res(cx, Blockstamp::from_str(&self.blockstamp))?, + endpoints: self.endpoints, + status: &self.status == "UP", + signature: into_neon_res(cx, Signature::from_base64(&self.signature))?, + member: self.member, + }) + } } #[derive(Deserialize, Serialize)] diff --git a/rust-libs/duniter-server/src/legacy/dunp.rs b/rust-libs/duniter-server/src/legacy/dunp.rs index 59e9e54d6..637474d32 100644 --- a/rust-libs/duniter-server/src/legacy/dunp.rs +++ b/rust-libs/duniter-server/src/legacy/dunp.rs @@ -135,6 +135,7 @@ mod tests { endpoints: vec![], status: true, signature: Signature::from_base64("KBaoJuKIfkWJO015BTegUN8l81VYPfleVUfQUwPRPAAF1oB398hDb1bX/QUFe+3CKFz57aGT8bB745mz90x5Ag==")?, + member: false, }; let pubkey = peer.pubkey; -- GitLab