status-go/protocol/requests
Pascal Precht 051314aad0 feat: add verified wallet accounts to community requests
This commit extends the `CommunityRequestToJoin` with `RevealedAddresses` which represent wallet addresses and signatures provided by the sender, to proof a community owner ownership of those wallet addresses.

**Note: This only works with keystore files maanged by status-go**

At high level, the follwing happens:

1. User instructs Status to send a request to join to a community. By adding a password hash to the instruction, Status will try to unlock the users keystore and verify each wallet account.
2. For every verified wallet account, a signature is created for the following payload, using each wallet's private key

   ``` keccak256(chatkey + communityID + requestToJoinID) ``` A map of walletAddress->signature is then attached to the community request to join, which will be sent to the community owner
3. The owner node receives the request, and if the community requires users to hold tokens to become a member, it will check and verify whether the given wallet addresses are indeed owned by the sender. If any signature provided by the request cannot be recovered, the request is immediately declined by the owner.
4. The verified addresses are then added to the owner node's database such that, once the request should be accepted, the addresses can be used to check on chain whether they own the necessary funds to fulfill the community's permissions

The checking of required funds is **not** part of this commit. It will be added in a follow-up commit.
2023-03-22 13:50:25 +01:00
..
accept_contact_request.go Initial support for mutual contact requests 2022-05-31 09:12:36 +01:00
accept_latest_contact_request_for_contact.go Accept/Dismiss LastestContactRequestForContact endpoint (#2702) 2022-06-17 12:20:43 -04:00
accept_request_to_join_community.go Handle connection state 2021-05-21 07:22:58 +02:00
add_contact.go Add spiff workflow cmd 2023-03-16 14:31:34 +00:00
add_role_to_member.go Allow owner/admin to delete messages of a community (#2958) 2022-12-02 19:34:02 +08:00
add_wallet_connect_session.go Implement wallet connect session CRUD API 2022-08-19 12:32:00 +01:00
ban_user_from_community.go Ban user from community 2021-03-24 09:29:21 +01:00
build_contact.go Update wakuext_buildContact 2023-03-14 16:57:33 +01:00
cancel_request_to_join_community.go feat(communities): Cancel request to join community (#2915) 2022-10-28 11:41:20 +03:00
clear_history.go Handle connection state 2021-05-21 07:22:58 +02:00
community_tags.go fix: lint (#2845) 2022-09-27 18:59:02 -04:00
create_account.go Make image path optional 2023-03-20 19:36:41 +00:00
create_community_category.go refactor(import-tool): process import data in chunks 2023-01-30 12:23:56 +01:00
create_community_request.go Move images to shared namespace 2023-02-02 19:18:06 +00:00
create_community_token_permission_request.go feat: add CommunityTokenPermission to community description 2023-03-03 09:46:49 +01:00
create_one_to_one_chat.go Block contact endpoint 2021-11-15 18:53:35 +00:00
create_profile_chat.go Handle connection state 2021-05-21 07:22:58 +02:00
create_public_chat.go Handle connection state 2021-05-21 07:22:58 +02:00
deactivate_chat.go Handle connection state 2021-05-21 07:22:58 +02:00
decline_contact_request.go Support outgoing contact requests (#3120) 2023-02-21 19:08:11 +01:00
decline_request_to_join_community.go Handle connection state 2021-05-21 07:22:58 +02:00
delete_community_category.go fix: allow empty category id when sorting chats and fix error messages (#2301) 2021-08-25 12:52:28 -04:00
delete_community_token_permission.go feat: add CommunityTokenPermission to community description 2023-03-03 09:46:49 +01:00
dismiss_latest_contact_request_for_contact.go Accept/Dismiss LastestContactRequestForContact endpoint (#2702) 2022-06-17 12:20:43 -04:00
edit_community.go feat: add intro/outro message to communities 2022-05-31 11:41:26 +02:00
edit_community_category.go Community categories (#2228) 2021-05-23 09:34:17 -04:00
edit_community_token_permission_request.go feat: add CommunityTokenPermission to community description 2023-03-03 09:46:49 +01:00
edit_message.go feat: edit/delete/reply for emoji/sticker/audio (#2771) 2022-10-05 21:54:47 +04:00
import_discord_community.go feat: introduce discord import tool 2022-10-28 09:52:26 +02:00
invite_users_to_community.go Handle connection state 2021-05-21 07:22:58 +02:00
remove_role_from_member.go Allow owner/admin to delete messages of a community (#2958) 2022-12-02 19:34:02 +08:00
reorder_community_category.go fix: allow empty category id when sorting chats and fix error messages (#2301) 2021-08-25 12:52:28 -04:00
reorder_community_chat.go fix: allow empty category id when sorting chats and fix error messages (#2301) 2021-08-25 12:52:28 -04:00
request_to_join_community.go feat: add verified wallet accounts to community requests 2023-03-22 13:50:25 +01:00
retract_contact_request.go Support outgoing contact requests (#3120) 2023-02-21 19:08:11 +01:00
send_contact_request.go Add spiff workflow cmd 2023-03-16 14:31:34 +00:00
send_group_chat_message.go Add spiff workflow cmd 2023-03-16 14:31:34 +00:00
send_one_to_one_message.go Add spiff workflow cmd 2023-03-16 14:31:34 +00:00
set_contact_local_nickname.go Create contact if not in contacts when setting nickname 2021-11-15 18:53:35 +00:00
share_community.go feat: add optional inviteMessage to share-community request (#2776) 2022-08-08 13:49:39 +03:00
share_image_message.go resolved conflicts 2022-02-24 23:11:36 +03:00
toggle_collapsed_community_category.go Add collapsed community categories 2023-03-14 17:13:21 +00:00
unban_user_from_community.go feat: unban user in community 2022-07-04 09:02:33 +02:00
upsert_switcher_card.go Persist switcher cards (#3049) 2023-01-05 21:41:57 +05:30
verified_trusted.go Add notification for trustworthy/untrustworthy 2022-11-16 16:17:13 +00:00
verified_untrustworthy.go Add notification for trustworthy/untrustworthy 2022-11-16 16:17:13 +00:00