From a8f5d0cc34373f4bcd6eadeea5bd7277797c199e Mon Sep 17 00:00:00 2001 From: Andrew Plaza Date: Tue, 5 Dec 2023 19:17:05 -0500 Subject: [PATCH] need to fix one more test --- xmtp_mls/src/client.rs | 2 +- xmtp_mls/src/groups/intents.rs | 49 ++-- xmtp_mls/src/groups/members.rs | 5 +- xmtp_mls/src/groups/mod.rs | 80 ++---- xmtp_proto/src/gen/xmtp.mls.database.rs | 250 +++++++++--------- xmtp_proto/src/gen/xmtp.mls.database.serde.rs | 58 ++-- 6 files changed, 198 insertions(+), 246 deletions(-) diff --git a/xmtp_mls/src/client.rs b/xmtp_mls/src/client.rs index 2d3dced29..7886fe140 100644 --- a/xmtp_mls/src/client.rs +++ b/xmtp_mls/src/client.rs @@ -404,7 +404,7 @@ mod tests { let alice_bob_group = alice.create_group().unwrap(); alice_bob_group - .add_members_by_installation_id(vec![bob.installation_public_key()]) + .add_members(vec![bob.account_address()]) .await .unwrap(); diff --git a/xmtp_mls/src/groups/intents.rs b/xmtp_mls/src/groups/intents.rs index 9ff8b5459..5e6dc1b80 100644 --- a/xmtp_mls/src/groups/intents.rs +++ b/xmtp_mls/src/groups/intents.rs @@ -10,10 +10,7 @@ use xmtp_proto::xmtp::mls::database::{ AddMembersData, PostCommitAction as PostCommitActionProto, RemoveMembersData, SendMessageData, }; -use crate::{ - types::Address, verified_key_package::KeyPackageVerificationError, - xmtp_openmls_provider::XmtpOpenMlsProvider, -}; +use crate::{types::Address, verified_key_package::KeyPackageVerificationError}; #[derive(Debug, Error)] pub enum IntentError { @@ -25,8 +22,6 @@ pub enum IntentError { TlsCodec(#[from] tls_codec::Error), #[error("generic: {0}")] Generic(String), - #[error(transparent)] - FromHex(#[from] hex::FromHexError), } #[derive(Debug, Clone)] @@ -71,24 +66,20 @@ impl From for Vec { #[derive(Debug, Clone)] pub struct AddMembersIntentData { - pub wallet_addresses: Vec
, + pub account_addresses: Vec
, } impl AddMembersIntentData { - pub fn new(wallet_addresses: Vec
) -> Self { - Self { wallet_addresses } + pub fn new(account_addresses: Vec
) -> Self { + Self { account_addresses } } - pub(crate) fn to_bytes(&self) -> Result, IntentError> { + pub(crate) fn to_bytes(self) -> Result, IntentError> { let mut buf = Vec::new(); - let wallet_addresses = self - .wallet_addresses - .iter() - .map(|addr| hex::decode(&addr[2..])) - .collect::, _>>()?; - AddMembersData { - version: Some(AddMembersVersion::V1(AddMembersV1 { wallet_addresses })), + version: Some(AddMembersVersion::V1(AddMembersV1 { + account_addresses: self.account_addresses, + })), } .encode(&mut buf) .expect("encode error"); @@ -98,14 +89,10 @@ impl AddMembersIntentData { pub(crate) fn from_bytes(data: &[u8]) -> Result { let msg = AddMembersData::decode(data)?; - let address_bytes = match msg.version { - Some(AddMembersVersion::V1(v1)) => v1.wallet_addresses, + let addresses = match msg.version { + Some(AddMembersVersion::V1(v1)) => v1.account_addresses, None => return Err(IntentError::Generic("missing payload".to_string())), }; - let addresses = address_bytes - .iter() - .map(|addr| format!("0x{}", hex::encode(addr))) - .collect(); Ok(Self::new(addresses)) } @@ -121,20 +108,20 @@ impl TryFrom for Vec { #[derive(Debug, Clone)] pub struct RemoveMembersIntentData { - pub installation_ids: Vec>, + pub account_addresses: Vec, } impl RemoveMembersIntentData { - pub fn new(installation_ids: Vec>) -> Self { - Self { installation_ids } + pub fn new(account_addresses: Vec) -> Self { + Self { account_addresses } } - pub(crate) fn to_bytes(&self) -> Vec { + pub(crate) fn to_bytes(self) -> Vec { let mut buf = Vec::new(); RemoveMembersData { version: Some(RemoveMembersVersion::V1(RemoveMembersV1 { - installation_ids: self.installation_ids.clone(), + account_addresses: self.account_addresses, })), } .encode(&mut buf) @@ -145,12 +132,12 @@ impl RemoveMembersIntentData { pub(crate) fn from_bytes(data: &[u8]) -> Result { let msg = RemoveMembersData::decode(data)?; - let installation_ids = match msg.version { - Some(RemoveMembersVersion::V1(v1)) => v1.installation_ids, + let account_addresses = match msg.version { + Some(RemoveMembersVersion::V1(v1)) => v1.account_addresses, None => return Err(IntentError::Generic("missing payload".to_string())), }; - Ok(Self::new(installation_ids)) + Ok(Self::new(account_addresses)) } } diff --git a/xmtp_mls/src/groups/members.rs b/xmtp_mls/src/groups/members.rs index 10810529d..0da408d28 100644 --- a/xmtp_mls/src/groups/members.rs +++ b/xmtp_mls/src/groups/members.rs @@ -67,10 +67,7 @@ mod tests { let group = amal.create_group().unwrap(); // Add both of Bola's installations to the group group - .add_members_by_installation_id(vec![ - bola_a.installation_public_key(), - bola_b.installation_public_key(), - ]) + .add_members(vec![bola_a.account_address(), bola_b.account_address()]) .await .unwrap(); diff --git a/xmtp_mls/src/groups/mod.rs b/xmtp_mls/src/groups/mod.rs index e14ab1869..03983bc89 100644 --- a/xmtp_mls/src/groups/mod.rs +++ b/xmtp_mls/src/groups/mod.rs @@ -434,20 +434,9 @@ where self.sync_with_conn(conn).await } - pub async fn add_members_by_installation_id( - &self, - _installation_ids: Vec>, - ) -> Result<(), GroupError> { - // remove - unimplemented!() - } - - pub(crate) async fn remove_members_by_installation_id( - &self, - installation_ids: Vec>, - ) -> Result<(), GroupError> { + pub async fn remove_members(&self, wallet_addresses: Vec) -> Result<(), GroupError> { let conn = &mut self.client.store.conn()?; - let intent_data: Vec = RemoveMembersIntentData::new(installation_ids).into(); + let intent_data: Vec = RemoveMembersIntentData::new(wallet_addresses).into(); let intent = NewGroupIntent::new( IntentKind::RemoveMembers, self.group_id.clone(), @@ -458,20 +447,6 @@ where self.sync_with_conn(conn).await } - pub async fn remove_members(&self, wallet_addresses: Vec) -> Result<(), GroupError> { - let installation_ids = self - .members()? - .into_iter() - .filter(|member| wallet_addresses.contains(&member.wallet_address)) - .fold(vec![], |mut acc, member| { - acc.extend(member.installation_ids); - acc - }); - - self.remove_members_by_installation_id(installation_ids) - .await - } - pub async fn key_update(&self) -> Result<(), GroupError> { let conn = &mut self.client.store.conn()?; let intent = NewGroupIntent::new(IntentKind::KeyUpdate, self.group_id.clone(), vec![]); @@ -566,15 +541,11 @@ where IntentKind::AddMembers => { let intent_data = AddMembersIntentData::from_bytes(intent.data.as_slice())?; - log::debug!("INTENT_DATA: {:?}", intent_data); - let key_packages = self .client - .get_key_packages_for_wallet_addresses(intent_data.wallet_addresses) + .get_key_packages_for_wallet_addresses(intent_data.account_addresses) .await?; - log::debug!("KEY PACKAGES: {:?}", key_packages); - let mls_key_packages: Vec = key_packages.iter().map(|kp| kp.inner.clone()).collect(); @@ -598,18 +569,32 @@ where } IntentKind::RemoveMembers => { let intent_data = RemoveMembersIntentData::from_bytes(intent.data.as_slice())?; + + let installation_ids = self + .members()? + .into_iter() + .filter(|member| { + intent_data + .account_addresses + .contains(&member.wallet_address) + }) + .fold(vec![], |mut acc, member| { + acc.extend(member.installation_ids); + acc + }); + let leaf_nodes: Vec = openmls_group .members() - .filter(|member| intent_data.installation_ids.contains(&member.signature_key)) + .filter(|member| installation_ids.contains(&member.signature_key)) .map(|member| member.index) .collect(); let num_leaf_nodes = leaf_nodes.len(); - if num_leaf_nodes != intent_data.installation_ids.len() { + if num_leaf_nodes != installation_ids.len() { return Err(GroupError::Generic(format!( "expected {} leaf nodes, found {}", - intent_data.installation_ids.len(), + installation_ids.len(), num_leaf_nodes ))); } @@ -741,7 +726,7 @@ mod tests { let amal_group = amal.create_group().unwrap(); // Add bola amal_group - .add_members_by_installation_id(vec![bola.installation_public_key()]) + .add_members(vec![bola.account_address()]) .await .unwrap(); @@ -751,11 +736,11 @@ mod tests { // Have amal and bola both invite charlie. amal_group - .add_members_by_installation_id(vec![charlie.installation_public_key()]) + .add_members(vec![charlie.account_address()]) .await .expect("failed to add charlie"); bola_group - .add_members_by_installation_id(vec![charlie.installation_public_key()]) + .add_members(vec![charlie.account_address()]) .await .unwrap(); @@ -828,9 +813,7 @@ mod tests { let client = ClientBuilder::new_test_client(generate_local_wallet().into()).await; let group = client.create_group().expect("create group"); - let result = group - .add_members_by_installation_id(vec![b"1234".to_vec()]) - .await; + let result = group.add_members(vec!["1234".to_string()]).await; assert!(result.is_err()); } @@ -844,19 +827,13 @@ mod tests { let group = client_1.create_group().expect("create group"); group - .add_members_by_installation_id(vec![client_2 - .identity - .installation_keys - .to_public_vec()]) + .add_members(vec![client_2.account_address()]) .await .expect("group create failure"); // Try and add another member without merging the pending commit group - .remove_members_by_installation_id(vec![client_2 - .identity - .installation_keys - .to_public_vec()]) + .remove_members(vec![client_2.account_address()]) .await .expect("group create failure"); @@ -901,10 +878,7 @@ mod tests { let group = client.create_group().expect("create group"); group - .add_members_by_installation_id(vec![client_2 - .identity - .installation_keys - .to_public_vec()]) + .add_members(vec![client_2.account_address()]) .await .unwrap(); diff --git a/xmtp_proto/src/gen/xmtp.mls.database.rs b/xmtp_proto/src/gen/xmtp.mls.database.rs index d8a838f1b..212fc2fed 100644 --- a/xmtp_proto/src/gen/xmtp.mls.database.rs +++ b/xmtp_proto/src/gen/xmtp.mls.database.rs @@ -35,8 +35,8 @@ pub mod add_members_data { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct V1 { - #[prost(bytes="vec", repeated, tag="1")] - pub wallet_addresses: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, + #[prost(string, repeated, tag="1")] + pub account_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] @@ -58,8 +58,8 @@ pub mod remove_members_data { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct V1 { - #[prost(bytes="vec", repeated, tag="1")] - pub installation_ids: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, + #[prost(string, repeated, tag="1")] + pub account_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] @@ -95,7 +95,7 @@ pub mod post_commit_action { } /// Encoded file descriptor set for the `xmtp.mls.database` package pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0xf0, 0x10, 0x0a, 0x1a, 0x6d, 0x6c, 0x73, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x0a, 0xf4, 0x10, 0x0a, 0x1a, 0x6d, 0x6c, 0x73, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x78, 0x6d, 0x74, 0x70, 0x2e, 0x6d, 0x6c, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, @@ -106,131 +106,131 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x29, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x86, 0x01, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x02, 0x76, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x78, 0x6d, 0x74, 0x70, 0x2e, 0x6d, 0x6c, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x31, 0x48, 0x00, 0x52, 0x02, 0x76, 0x31, - 0x1a, 0x2f, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x29, 0x0a, 0x10, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, - 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x42, 0x09, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8a, 0x01, 0x0a, - 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x39, 0x0a, 0x02, 0x76, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x78, 0x6d, 0x74, 0x70, 0x2e, 0x6d, 0x6c, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x44, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x31, 0x48, 0x00, 0x52, 0x02, 0x76, 0x31, 0x1a, 0x2f, 0x0a, - 0x02, 0x56, 0x31, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0f, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x42, 0x09, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xd7, 0x01, 0x0a, 0x10, 0x50, 0x6f, - 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, - 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x77, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x6d, 0x74, 0x70, 0x2e, 0x6d, 0x6c, 0x73, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, - 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x57, - 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x1a, 0x62, 0x0a, 0x0c, 0x53, 0x65, 0x6e, 0x64, 0x57, - 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0c, 0x52, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x77, 0x65, 0x6c, - 0x63, 0x6f, 0x6d, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x42, 0xb5, 0x01, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x2e, 0x78, 0x6d, 0x74, 0x70, - 0x2e, 0x6d, 0x6c, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x42, 0x0c, 0x49, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x28, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x78, 0x6d, 0x74, 0x70, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x33, 0x2f, 0x67, 0x6f, 0x2f, 0x6d, 0x6c, 0x73, 0x2f, 0x64, - 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0xa2, 0x02, 0x03, 0x58, 0x4d, 0x44, 0xaa, 0x02, 0x11, - 0x58, 0x6d, 0x74, 0x70, 0x2e, 0x4d, 0x6c, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0xca, 0x02, 0x11, 0x58, 0x6d, 0x74, 0x70, 0x5c, 0x4d, 0x6c, 0x73, 0x5c, 0x44, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0xe2, 0x02, 0x1d, 0x58, 0x6d, 0x74, 0x70, 0x5c, 0x4d, 0x6c, 0x73, - 0x5c, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x13, 0x58, 0x6d, 0x74, 0x70, 0x3a, 0x3a, 0x4d, 0x6c, - 0x73, 0x3a, 0x3a, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x4a, 0x8d, 0x0a, 0x0a, 0x06, - 0x12, 0x04, 0x01, 0x00, 0x37, 0x01, 0x0a, 0x27, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x01, 0x00, 0x12, - 0x1a, 0x1d, 0x20, 0x56, 0x33, 0x20, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x20, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x0a, 0x0a, - 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x03, 0x00, 0x1a, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, - 0x05, 0x00, 0x3f, 0x0a, 0x09, 0x0a, 0x02, 0x08, 0x0b, 0x12, 0x03, 0x05, 0x00, 0x3f, 0x0a, 0x34, - 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x09, 0x00, 0x12, 0x01, 0x1a, 0x28, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x20, 0x61, 0x20, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x09, 0x08, 0x17, - 0x0a, 0x2c, 0x0a, 0x04, 0x04, 0x00, 0x03, 0x00, 0x12, 0x04, 0x0b, 0x02, 0x0d, 0x03, 0x1a, 0x1e, - 0x20, 0x56, 0x31, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x44, 0x61, 0x74, 0x61, 0x0a, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x00, 0x03, 0x00, 0x01, 0x12, 0x03, 0x0b, 0x0a, 0x0c, 0x0a, 0x0d, 0x0a, 0x06, - 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x12, 0x03, 0x0c, 0x04, 0x1c, 0x0a, 0x0e, 0x0a, 0x07, 0x04, - 0x00, 0x03, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x0c, 0x04, 0x09, 0x0a, 0x0e, 0x0a, 0x07, 0x04, - 0x00, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0c, 0x0a, 0x17, 0x0a, 0x0e, 0x0a, 0x07, 0x04, - 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0c, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x00, 0x08, 0x00, 0x12, 0x04, 0x0f, 0x02, 0x11, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x08, - 0x00, 0x01, 0x12, 0x03, 0x0f, 0x08, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, - 0x03, 0x10, 0x04, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x10, - 0x04, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x10, 0x07, 0x09, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x10, 0x0c, 0x0d, 0x0a, 0x39, - 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x15, 0x00, 0x1e, 0x01, 0x1a, 0x2d, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x64, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, - 0x20, 0x61, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, - 0x12, 0x03, 0x15, 0x08, 0x16, 0x0a, 0x2b, 0x0a, 0x04, 0x04, 0x01, 0x03, 0x00, 0x12, 0x04, 0x17, - 0x02, 0x19, 0x03, 0x1a, 0x1d, 0x20, 0x56, 0x31, 0x20, 0x6f, 0x66, 0x20, 0x41, 0x64, 0x64, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x44, 0x61, 0x74, - 0x61, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x03, 0x00, 0x01, 0x12, 0x03, 0x17, 0x0a, 0x0c, - 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x12, 0x03, 0x18, 0x04, 0x28, 0x0a, - 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x18, 0x04, 0x0c, 0x0a, - 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x18, 0x0d, 0x12, 0x0a, - 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x18, 0x13, 0x23, 0x0a, - 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x18, 0x26, 0x27, 0x0a, - 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x08, 0x00, 0x12, 0x04, 0x1b, 0x02, 0x1d, 0x03, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x01, 0x08, 0x00, 0x01, 0x12, 0x03, 0x1b, 0x08, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, - 0x01, 0x02, 0x00, 0x12, 0x03, 0x1c, 0x04, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, - 0x06, 0x12, 0x03, 0x1c, 0x04, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, - 0x03, 0x1c, 0x07, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x1c, - 0x0c, 0x0d, 0x0a, 0x3e, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x21, 0x00, 0x2a, 0x01, 0x1a, 0x32, + 0x1a, 0x31, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8c, + 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x02, 0x76, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x78, 0x6d, 0x74, 0x70, 0x2e, 0x6d, 0x6c, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x31, 0x48, 0x00, 0x52, 0x02, 0x76, 0x31, 0x1a, + 0x31, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xd7, 0x01, + 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x77, 0x65, 0x6c, 0x63, 0x6f, + 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x78, 0x6d, 0x74, 0x70, + 0x2e, 0x6d, 0x6c, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x50, 0x6f, + 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, + 0x65, 0x6e, 0x64, 0x57, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x73, + 0x65, 0x6e, 0x64, 0x57, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x1a, 0x62, 0x0a, 0x0c, 0x53, + 0x65, 0x6e, 0x64, 0x57, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x65, 0x6c, 0x63, 0x6f, 0x6d, + 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0e, 0x77, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, + 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x42, 0xb5, 0x01, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x2e, + 0x78, 0x6d, 0x74, 0x70, 0x2e, 0x6d, 0x6c, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x42, 0x0c, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x78, 0x6d, + 0x74, 0x70, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x33, 0x2f, 0x67, 0x6f, 0x2f, 0x6d, + 0x6c, 0x73, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0xa2, 0x02, 0x03, 0x58, 0x4d, + 0x44, 0xaa, 0x02, 0x11, 0x58, 0x6d, 0x74, 0x70, 0x2e, 0x4d, 0x6c, 0x73, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0xca, 0x02, 0x11, 0x58, 0x6d, 0x74, 0x70, 0x5c, 0x4d, 0x6c, 0x73, + 0x5c, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0xe2, 0x02, 0x1d, 0x58, 0x6d, 0x74, 0x70, + 0x5c, 0x4d, 0x6c, 0x73, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x13, 0x58, 0x6d, 0x74, 0x70, + 0x3a, 0x3a, 0x4d, 0x6c, 0x73, 0x3a, 0x3a, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x4a, + 0x8d, 0x0a, 0x0a, 0x06, 0x12, 0x04, 0x01, 0x00, 0x37, 0x01, 0x0a, 0x27, 0x0a, 0x01, 0x0c, 0x12, + 0x03, 0x01, 0x00, 0x12, 0x1a, 0x1d, 0x20, 0x56, 0x33, 0x20, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, + 0x72, 0x65, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x03, 0x00, 0x1a, 0x0a, 0x08, 0x0a, + 0x01, 0x08, 0x12, 0x03, 0x05, 0x00, 0x3f, 0x0a, 0x09, 0x0a, 0x02, 0x08, 0x0b, 0x12, 0x03, 0x05, + 0x00, 0x3f, 0x0a, 0x34, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x09, 0x00, 0x12, 0x01, 0x1a, 0x28, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x20, 0x61, 0x20, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, + 0x03, 0x09, 0x08, 0x17, 0x0a, 0x2c, 0x0a, 0x04, 0x04, 0x00, 0x03, 0x00, 0x12, 0x04, 0x0b, 0x02, + 0x0d, 0x03, 0x1a, 0x1e, 0x20, 0x56, 0x31, 0x20, 0x6f, 0x66, 0x20, 0x53, 0x65, 0x6e, 0x64, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x44, 0x61, 0x74, + 0x61, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x03, 0x00, 0x01, 0x12, 0x03, 0x0b, 0x0a, 0x0c, + 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x12, 0x03, 0x0c, 0x04, 0x1c, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x0c, 0x04, 0x09, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0c, 0x0a, 0x17, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0c, 0x1a, 0x1b, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x00, 0x08, 0x00, 0x12, 0x04, 0x0f, 0x02, 0x11, 0x03, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x08, 0x00, 0x01, 0x12, 0x03, 0x0f, 0x08, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x00, 0x12, 0x03, 0x10, 0x04, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, + 0x06, 0x12, 0x03, 0x10, 0x04, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, + 0x03, 0x10, 0x07, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x10, + 0x0c, 0x0d, 0x0a, 0x39, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x15, 0x00, 0x1e, 0x01, 0x1a, 0x2d, 0x20, 0x54, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, - 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x6d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x21, 0x08, 0x19, 0x0a, 0x2e, - 0x0a, 0x04, 0x04, 0x02, 0x03, 0x00, 0x12, 0x04, 0x23, 0x02, 0x25, 0x03, 0x1a, 0x20, 0x20, 0x56, - 0x31, 0x20, 0x6f, 0x66, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x44, 0x61, 0x74, 0x61, 0x0a, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x02, 0x03, 0x00, 0x01, 0x12, 0x03, 0x23, 0x0a, 0x0c, 0x0a, 0x0d, 0x0a, 0x06, - 0x04, 0x02, 0x03, 0x00, 0x02, 0x00, 0x12, 0x03, 0x24, 0x04, 0x28, 0x0a, 0x0e, 0x0a, 0x07, 0x04, - 0x02, 0x03, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x24, 0x04, 0x0c, 0x0a, 0x0e, 0x0a, 0x07, 0x04, - 0x02, 0x03, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x24, 0x0d, 0x12, 0x0a, 0x0e, 0x0a, 0x07, 0x04, - 0x02, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x24, 0x13, 0x23, 0x0a, 0x0e, 0x0a, 0x07, 0x04, - 0x02, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x24, 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x04, 0x04, - 0x02, 0x08, 0x00, 0x12, 0x04, 0x27, 0x02, 0x29, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x08, - 0x00, 0x01, 0x12, 0x03, 0x27, 0x08, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, - 0x03, 0x28, 0x04, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x06, 0x12, 0x03, 0x28, - 0x04, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x28, 0x07, 0x09, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, 0x28, 0x0c, 0x0d, 0x0a, 0x3b, - 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, 0x2d, 0x00, 0x37, 0x01, 0x1a, 0x2f, 0x20, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x6f, 0x73, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, - 0x03, 0x01, 0x12, 0x03, 0x2d, 0x08, 0x18, 0x0a, 0x23, 0x0a, 0x04, 0x04, 0x03, 0x03, 0x00, 0x12, - 0x04, 0x2f, 0x02, 0x32, 0x03, 0x1a, 0x15, 0x20, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x65, 0x6c, 0x63, - 0x6f, 0x6d, 0x65, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x03, 0x03, 0x00, 0x01, 0x12, 0x03, 0x2f, 0x0a, 0x16, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x03, - 0x03, 0x00, 0x02, 0x00, 0x12, 0x03, 0x30, 0x04, 0x28, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x03, 0x03, - 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x30, 0x04, 0x0c, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x03, 0x03, - 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x30, 0x0d, 0x12, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x03, 0x03, - 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x30, 0x13, 0x23, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x03, 0x03, - 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x30, 0x26, 0x27, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x03, 0x03, - 0x00, 0x02, 0x01, 0x12, 0x03, 0x31, 0x04, 0x1e, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x03, 0x03, 0x00, - 0x02, 0x01, 0x05, 0x12, 0x03, 0x31, 0x04, 0x09, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x03, 0x03, 0x00, - 0x02, 0x01, 0x01, 0x12, 0x03, 0x31, 0x0a, 0x19, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x03, 0x03, 0x00, - 0x02, 0x01, 0x03, 0x12, 0x03, 0x31, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x03, 0x08, 0x00, - 0x12, 0x04, 0x34, 0x02, 0x36, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x08, 0x00, 0x01, 0x12, - 0x03, 0x34, 0x08, 0x0c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x35, 0x04, - 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x06, 0x12, 0x03, 0x35, 0x04, 0x10, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x35, 0x11, 0x1e, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, 0x03, 0x35, 0x21, 0x22, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x64, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x0a, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x15, 0x08, 0x16, 0x0a, 0x2b, 0x0a, 0x04, 0x04, 0x01, 0x03, + 0x00, 0x12, 0x04, 0x17, 0x02, 0x19, 0x03, 0x1a, 0x1d, 0x20, 0x56, 0x31, 0x20, 0x6f, 0x66, 0x20, + 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x44, 0x61, 0x74, 0x61, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x03, 0x00, 0x01, 0x12, + 0x03, 0x17, 0x0a, 0x0c, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x12, 0x03, + 0x18, 0x04, 0x2a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, + 0x18, 0x04, 0x0c, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, + 0x18, 0x0d, 0x13, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x18, 0x14, 0x25, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, + 0x18, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x08, 0x00, 0x12, 0x04, 0x1b, 0x02, 0x1d, + 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x08, 0x00, 0x01, 0x12, 0x03, 0x1b, 0x08, 0x0f, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x1c, 0x04, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, 0x03, 0x1c, 0x04, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x00, 0x01, 0x12, 0x03, 0x1c, 0x07, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, + 0x03, 0x12, 0x03, 0x1c, 0x0c, 0x0d, 0x0a, 0x3e, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x21, 0x00, + 0x2a, 0x01, 0x1a, 0x32, 0x20, 0x54, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x20, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x20, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x21, + 0x08, 0x19, 0x0a, 0x2e, 0x0a, 0x04, 0x04, 0x02, 0x03, 0x00, 0x12, 0x04, 0x23, 0x02, 0x25, 0x03, + 0x1a, 0x20, 0x20, 0x56, 0x31, 0x20, 0x6f, 0x66, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x44, 0x61, 0x74, + 0x61, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x03, 0x00, 0x01, 0x12, 0x03, 0x23, 0x0a, 0x0c, + 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x03, 0x00, 0x02, 0x00, 0x12, 0x03, 0x24, 0x04, 0x2a, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x02, 0x03, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x24, 0x04, 0x0c, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x02, 0x03, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x24, 0x0d, 0x13, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x02, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x24, 0x14, 0x25, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x02, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x24, 0x28, 0x29, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x08, 0x00, 0x12, 0x04, 0x27, 0x02, 0x29, 0x03, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x02, 0x08, 0x00, 0x01, 0x12, 0x03, 0x27, 0x08, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x02, 0x02, 0x00, 0x12, 0x03, 0x28, 0x04, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, + 0x06, 0x12, 0x03, 0x28, 0x04, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, + 0x03, 0x28, 0x07, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, 0x28, + 0x0c, 0x0d, 0x0a, 0x3b, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, 0x2d, 0x00, 0x37, 0x01, 0x1a, 0x2f, + 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x74, 0x79, + 0x70, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x70, 0x6f, 0x73, 0x74, 0x2d, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x0a, + 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, 0x2d, 0x08, 0x18, 0x0a, 0x23, 0x0a, 0x04, 0x04, + 0x03, 0x03, 0x00, 0x12, 0x04, 0x2f, 0x02, 0x32, 0x03, 0x1a, 0x15, 0x20, 0x53, 0x65, 0x6e, 0x64, + 0x57, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x03, 0x00, 0x01, 0x12, 0x03, 0x2f, 0x0a, 0x16, 0x0a, 0x0d, + 0x0a, 0x06, 0x04, 0x03, 0x03, 0x00, 0x02, 0x00, 0x12, 0x03, 0x30, 0x04, 0x28, 0x0a, 0x0e, 0x0a, + 0x07, 0x04, 0x03, 0x03, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x30, 0x04, 0x0c, 0x0a, 0x0e, 0x0a, + 0x07, 0x04, 0x03, 0x03, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x30, 0x0d, 0x12, 0x0a, 0x0e, 0x0a, + 0x07, 0x04, 0x03, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x30, 0x13, 0x23, 0x0a, 0x0e, 0x0a, + 0x07, 0x04, 0x03, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x30, 0x26, 0x27, 0x0a, 0x0d, 0x0a, + 0x06, 0x04, 0x03, 0x03, 0x00, 0x02, 0x01, 0x12, 0x03, 0x31, 0x04, 0x1e, 0x0a, 0x0e, 0x0a, 0x07, + 0x04, 0x03, 0x03, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x31, 0x04, 0x09, 0x0a, 0x0e, 0x0a, 0x07, + 0x04, 0x03, 0x03, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x31, 0x0a, 0x19, 0x0a, 0x0e, 0x0a, 0x07, + 0x04, 0x03, 0x03, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x31, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x03, 0x08, 0x00, 0x12, 0x04, 0x34, 0x02, 0x36, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, + 0x08, 0x00, 0x01, 0x12, 0x03, 0x34, 0x08, 0x0c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, + 0x12, 0x03, 0x35, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x06, 0x12, 0x03, + 0x35, 0x04, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x35, 0x11, + 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, 0x03, 0x35, 0x21, 0x22, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, ]; include!("xmtp.mls.database.serde.rs"); // @@protoc_insertion_point(module) \ No newline at end of file diff --git a/xmtp_proto/src/gen/xmtp.mls.database.serde.rs b/xmtp_proto/src/gen/xmtp.mls.database.serde.rs index 424806a66..936c2727d 100644 --- a/xmtp_proto/src/gen/xmtp.mls.database.serde.rs +++ b/xmtp_proto/src/gen/xmtp.mls.database.serde.rs @@ -103,12 +103,12 @@ impl serde::Serialize for add_members_data::V1 { { use serde::ser::SerializeStruct; let mut len = 0; - if !self.wallet_addresses.is_empty() { + if !self.account_addresses.is_empty() { len += 1; } let mut struct_ser = serializer.serialize_struct("xmtp.mls.database.AddMembersData.V1", len)?; - if !self.wallet_addresses.is_empty() { - struct_ser.serialize_field("walletAddresses", &self.wallet_addresses.iter().map(pbjson::private::base64::encode).collect::>())?; + if !self.account_addresses.is_empty() { + struct_ser.serialize_field("accountAddresses", &self.account_addresses)?; } struct_ser.end() } @@ -120,13 +120,13 @@ impl<'de> serde::Deserialize<'de> for add_members_data::V1 { D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "wallet_addresses", - "walletAddresses", + "account_addresses", + "accountAddresses", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - WalletAddresses, + AccountAddresses, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -148,7 +148,7 @@ impl<'de> serde::Deserialize<'de> for add_members_data::V1 { E: serde::de::Error, { match value { - "walletAddresses" | "wallet_addresses" => Ok(GeneratedField::WalletAddresses), + "accountAddresses" | "account_addresses" => Ok(GeneratedField::AccountAddresses), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -168,22 +168,19 @@ impl<'de> serde::Deserialize<'de> for add_members_data::V1 { where V: serde::de::MapAccess<'de>, { - let mut wallet_addresses__ = None; + let mut account_addresses__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::WalletAddresses => { - if wallet_addresses__.is_some() { - return Err(serde::de::Error::duplicate_field("walletAddresses")); + GeneratedField::AccountAddresses => { + if account_addresses__.is_some() { + return Err(serde::de::Error::duplicate_field("accountAddresses")); } - wallet_addresses__ = - Some(map.next_value::>>()? - .into_iter().map(|x| x.0).collect()) - ; + account_addresses__ = Some(map.next_value()?); } } } Ok(add_members_data::V1 { - wallet_addresses: wallet_addresses__.unwrap_or_default(), + account_addresses: account_addresses__.unwrap_or_default(), }) } } @@ -506,12 +503,12 @@ impl serde::Serialize for remove_members_data::V1 { { use serde::ser::SerializeStruct; let mut len = 0; - if !self.installation_ids.is_empty() { + if !self.account_addresses.is_empty() { len += 1; } let mut struct_ser = serializer.serialize_struct("xmtp.mls.database.RemoveMembersData.V1", len)?; - if !self.installation_ids.is_empty() { - struct_ser.serialize_field("installationIds", &self.installation_ids.iter().map(pbjson::private::base64::encode).collect::>())?; + if !self.account_addresses.is_empty() { + struct_ser.serialize_field("accountAddresses", &self.account_addresses)?; } struct_ser.end() } @@ -523,13 +520,13 @@ impl<'de> serde::Deserialize<'de> for remove_members_data::V1 { D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "installation_ids", - "installationIds", + "account_addresses", + "accountAddresses", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - InstallationIds, + AccountAddresses, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -551,7 +548,7 @@ impl<'de> serde::Deserialize<'de> for remove_members_data::V1 { E: serde::de::Error, { match value { - "installationIds" | "installation_ids" => Ok(GeneratedField::InstallationIds), + "accountAddresses" | "account_addresses" => Ok(GeneratedField::AccountAddresses), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -571,22 +568,19 @@ impl<'de> serde::Deserialize<'de> for remove_members_data::V1 { where V: serde::de::MapAccess<'de>, { - let mut installation_ids__ = None; + let mut account_addresses__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::InstallationIds => { - if installation_ids__.is_some() { - return Err(serde::de::Error::duplicate_field("installationIds")); + GeneratedField::AccountAddresses => { + if account_addresses__.is_some() { + return Err(serde::de::Error::duplicate_field("accountAddresses")); } - installation_ids__ = - Some(map.next_value::>>()? - .into_iter().map(|x| x.0).collect()) - ; + account_addresses__ = Some(map.next_value()?); } } } Ok(remove_members_data::V1 { - installation_ids: installation_ids__.unwrap_or_default(), + account_addresses: account_addresses__.unwrap_or_default(), }) } }