waku-org / waku-rust-bindings

Rust wrapper over go-waku ffi
14 stars 6 forks source link

fix: default to empty vec if meta field not present #59

Closed petkodes closed 1 year ago

petkodes commented 1 year ago

This change defaults to setting an empty vec for the meta field on WakuMessage when doing serialisation/deserialisation if none is present. This change is needed because currently we're experiencing a bug where if a message is being constructed like this:

let waku_message = WakuMessage::new(
    buff,
    content_topic,
    2,
    Utc::now().timestamp() as usize,
    Vec::new(),
    true,
);

on being received, the message will fall into the Unrecognized enum variant while performing this validity check:

match signal.event() {
  waku::Event::WakuMessage(event) => { ... }
  waku::Event::Unrecognized(data) => Err(WakuHandlingError::InvalidMessage(format!(
            "Unrecognized event!\n {data:?}"
        ))),
  _ => ...
}