clean up
This commit is contained in:
@@ -110,17 +110,7 @@ fn deleted_ids(authors: &BTreeMap<EventId, PublicKey>, deletes: &[Event]) -> BTr
|
||||
.iter()
|
||||
.filter(|event| event.kind == Kind::EventDeletion)
|
||||
{
|
||||
for tag in event.tags.iter() {
|
||||
let fields = tag.as_slice();
|
||||
|
||||
if fields.len() < 2 || fields[0] != "e" {
|
||||
continue;
|
||||
}
|
||||
|
||||
let Ok(id) = EventId::from_hex(&fields[1]) else {
|
||||
continue;
|
||||
};
|
||||
|
||||
for id in event.tags.event_ids() {
|
||||
if authors.get(&id) == Some(&event.pubkey) {
|
||||
deleted.insert(id);
|
||||
}
|
||||
|
||||
@@ -9,10 +9,10 @@ use concord::cord02::{self, ControlFold, ImageRef};
|
||||
use concord::cord04::AuthorityCitation;
|
||||
use concord::cord04::roles::{Permissions, citation_ok};
|
||||
use concord::cord05::{
|
||||
self, BundleState, ChannelGrant, CommunityInvite, InviteEntry, InviteList, ParsedInviteLink,
|
||||
self, BundleState, CommunityInvite, InviteEntry, InviteList, ParsedInviteLink,
|
||||
};
|
||||
use concord::derive::{
|
||||
TOKEN_LEN, channel_group_key, control_group_key, control_signer_group_key, guestbook_group_key,
|
||||
channel_group_key, control_group_key, control_signer_group_key, guestbook_group_key,
|
||||
invite_bundle_key,
|
||||
};
|
||||
use concord::state::{CommunityState, HeldKey, HeldRoot, list_entry};
|
||||
@@ -225,25 +225,11 @@ where
|
||||
S: AsyncGetPublicKey + AsyncSignEvent + AsyncNip44 + ?Sized,
|
||||
{
|
||||
let link_signer = Keys::generate();
|
||||
|
||||
let mut token = [0u8; TOKEN_LEN];
|
||||
token.copy_from_slice(&link_signer.secret_key().as_secret_bytes()[..TOKEN_LEN]);
|
||||
let token = cord05::mint_token()?;
|
||||
|
||||
let bundle_key = invite_bundle_key(&token);
|
||||
let relays: Vec<String> = state.relays.iter().map(|relay| relay.to_string()).collect();
|
||||
|
||||
let channels = state
|
||||
.channels
|
||||
.iter()
|
||||
.map(|channel| ChannelGrant {
|
||||
id: channel.id,
|
||||
key: channel.key.map(|key| HEXLOWER.encode(&key)),
|
||||
epoch: channel.epoch,
|
||||
name: channel.name.clone(),
|
||||
extra: Default::default(),
|
||||
})
|
||||
.collect();
|
||||
|
||||
let invite = CommunityInvite {
|
||||
community_id: state.id,
|
||||
owner: state.owner,
|
||||
@@ -251,7 +237,7 @@ where
|
||||
community_root: HEXLOWER.encode(&state.community_root),
|
||||
root_epoch: state.root_epoch,
|
||||
control_pk: state.control_pks.get(&state.root_epoch.0).copied(),
|
||||
channels,
|
||||
channels: Vec::new(),
|
||||
relays: relays.clone(),
|
||||
name: state.name.clone().unwrap_or_default(),
|
||||
icon: None,
|
||||
@@ -273,7 +259,7 @@ where
|
||||
community_id: state.id,
|
||||
url: url.clone(),
|
||||
label: None,
|
||||
created_at: Timestamp::now().as_secs().saturating_mul(1000),
|
||||
created_at: Timestamp::now().as_secs(),
|
||||
expires_at: None,
|
||||
extra: Default::default(),
|
||||
};
|
||||
|
||||
@@ -396,6 +396,12 @@ pub fn bundle_naddr(link_signer: &PublicKey) -> Result<String, InviteError> {
|
||||
.map_err(|_| InviteError::BadLink("invalid naddr"))
|
||||
}
|
||||
|
||||
pub fn mint_token() -> Result<[u8; TOKEN_LEN], InviteError> {
|
||||
let mut token = [0u8; TOKEN_LEN];
|
||||
crate::fill_random(&mut token).map_err(crypto_error)?;
|
||||
Ok(token)
|
||||
}
|
||||
|
||||
pub fn build_invite_url(
|
||||
base: &str,
|
||||
link_signer: &PublicKey,
|
||||
|
||||
Reference in New Issue
Block a user