[identity] Refactor types for inbound/outbound keys
Summary:
Part of ENG-5842.
Previous approach to passing inbound/outbound keys was using HashMaps of strings to strings. Also, with new device list, we were serializing these to hashmaps, just to parse them back a few lines later.
This was error prone and hard to maintain, so this diff introduces new, simplified and type-safe structs for inbound/outbound keys.
Also, removed the logic for checking social proof existence for each device, which turned out to be incorrect. The social proof is still checked when creating the EthereumIdentity response struct.
Depends on D10700
Test Plan:
- Identity integration tests
- Manually called Get{Inbound,Outbound}KeysForUser RPCs and made sure they're returning correct response format
- For wallet users, inbound keys RPC fails because of https://linear.app/comm/issue/ENG-6480/store-socialproof-in-users-table#comment-2176dde1
Reviewers: varun, will, michal
Reviewed By: varun
Subscribers: ashoat, tomek, will
Differential Revision: https://phab.comm.dev/D10701