status-go/protocol/protobuf
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
..
anon_metrics.pb.go Add collapsed community categories 2023-03-14 17:13:21 +00:00
anon_metrics.proto
application_metadata_message.pb.go feat(keycard): keycard details are being synced among devices 2023-02-27 16:03:02 +01:00
application_metadata_message.proto feat(keycard): keycard details are being synced among devices 2023-02-27 16:03:02 +01:00
chat_identity.pb.go feat: add and distribute `chatIdentity.FirstMessageTimestamp` 2022-09-09 08:59:39 +02:00
chat_identity.proto feat: add and distribute `chatIdentity.FirstMessageTimestamp` 2022-09-09 08:59:39 +02:00
chat_message.pb.go Add collapsed community categories 2023-03-14 17:13:21 +00:00
chat_message.proto Handle a few edge cases in contact requests 2023-02-08 17:48:09 +00:00
command.pb.go
command.proto
communities.pb.go feat: add verified wallet accounts to community requests 2023-03-22 13:50:25 +01:00
communities.proto feat: add verified wallet accounts to community requests 2023-03-22 13:50:25 +01:00
contact.pb.go Handle a few edge cases in contact requests 2023-02-08 17:48:09 +00:00
contact.proto Handle a few edge cases in contact requests 2023-02-08 17:48:09 +00:00
contact_verification.pb.go feat(ActivityCenter): Add missing AC notifications for verification requests (#3029) 2022-12-26 08:35:46 +04:00
contact_verification.proto feat(ActivityCenter): Add missing AC notifications for verification requests (#3029) 2022-12-26 08:35:46 +04:00
emoji_reaction.pb.go
emoji_reaction.proto
enums.pb.go feat(protobuf): introduce `CommunityTokenType` enum 2023-03-03 08:20:51 +01:00
enums.proto feat(protobuf): introduce `CommunityTokenType` enum 2023-03-03 08:20:51 +01:00
group_chat_invitation.pb.go
group_chat_invitation.proto
membership_update_message.pb.go Add collapsed community categories 2023-03-14 17:13:21 +00:00
membership_update_message.proto feat: Handle image in group chat 2022-09-01 12:19:01 +02:00
pairing.pb.go feat: add verified wallet accounts to community requests 2023-03-22 13:50:25 +01:00
pairing.proto feat: add verified wallet accounts to community requests 2023-03-22 13:50:25 +01:00
pin_message.pb.go
pin_message.proto
pubkey.go
push_notifications.pb.go
push_notifications.proto
service.go
status_update.pb.go Add collapsed community categories 2023-03-14 17:13:21 +00:00
status_update.proto
sync_settings.pb.go Add collapsed community categories 2023-03-14 17:13:21 +00:00
sync_settings.proto feat: backup profile data to waku and sync them from waku 2022-12-23 15:07:14 +01:00