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