fix: u64 serialization

This commit is contained in:
Richard Ramos 2023-12-08 15:25:32 -04:00
parent e52471bdfb
commit b0f7d7d774
No known key found for this signature in database
GPG Key ID: 1CE87DB518195760
4 changed files with 27 additions and 0 deletions

12
Cargo.lock generated
View File

@ -1265,6 +1265,17 @@ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]]
name = "serde-aux"
version = "4.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "184eba62ebddb71658697c8b08822edee89970bf318c5362189f0de27f85b498"
dependencies = [
"chrono",
"serde",
"serde_json",
]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.145" version = "1.0.145"
@ -1687,6 +1698,7 @@ dependencies = [
"rand", "rand",
"secp256k1 0.26.0", "secp256k1 0.26.0",
"serde", "serde",
"serde-aux",
"serde_json", "serde_json",
"serial_test", "serial_test",
"smart-default", "smart-default",

12
examples/Cargo.lock generated
View File

@ -1145,6 +1145,17 @@ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]]
name = "serde-aux"
version = "4.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "184eba62ebddb71658697c8b08822edee89970bf318c5362189f0de27f85b498"
dependencies = [
"chrono",
"serde",
"serde_json",
]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.151" version = "1.0.151"
@ -1509,6 +1520,7 @@ dependencies = [
"rand", "rand",
"secp256k1 0.26.0", "secp256k1 0.26.0",
"serde", "serde",
"serde-aux",
"serde_json", "serde_json",
"smart-default", "smart-default",
"sscanf", "sscanf",

View File

@ -28,6 +28,7 @@ smart-default = "0.6"
url = "2.3" url = "2.3"
waku-sys = { version = "0.5.0", path = "../waku-sys" } waku-sys = { version = "0.5.0", path = "../waku-sys" }
libc = "0.2" libc = "0.2"
serde-aux = "4.3.1"
[dev-dependencies] [dev-dependencies]
futures = "0.3.25" futures = "0.3.25"

View File

@ -9,6 +9,7 @@ use aes_gcm::{Aes256Gcm, Key};
use base64::Engine; use base64::Engine;
use secp256k1::{ecdsa::Signature, PublicKey, SecretKey}; use secp256k1::{ecdsa::Signature, PublicKey, SecretKey};
use serde::{de::Error, Deserialize, Deserializer, Serialize, Serializer}; use serde::{de::Error, Deserialize, Deserializer, Serialize, Serializer};
use serde_aux::prelude::*;
use sscanf::{scanf, RegexRepresentation}; use sscanf::{scanf, RegexRepresentation};
// internal // internal
use crate::decrypt::{waku_decode_asymmetric, waku_decode_symmetric}; use crate::decrypt::{waku_decode_asymmetric, waku_decode_symmetric};
@ -71,6 +72,7 @@ pub struct WakuMessage {
#[serde(default)] #[serde(default)]
version: WakuMessageVersion, version: WakuMessageVersion,
/// Unix timestamp in nanoseconds /// Unix timestamp in nanoseconds
#[serde(deserialize_with = "deserialize_number_from_string")]
timestamp: usize, timestamp: usize,
#[serde(with = "base64_serde", default = "Vec::new")] #[serde(with = "base64_serde", default = "Vec::new")]
meta: Vec<u8>, meta: Vec<u8>,