Commit Graph

78 Commits

Author SHA1 Message Date
Vitaly Vlasov 3ef445dbcf fix_: share all future addresses storage 2024-07-18 12:08:40 +03:00
Mikhail Rogachev 4f493a533e
chore(identity)_: remove old social links implementation () 2024-05-24 10:35:34 +02:00
frank 3b5eab3bf1
fix_:sync contact request decision ()
* fix_:sync contact request decision

* chore_:optimise test

* chore_:address feedback from review
2024-05-15 08:01:47 +08:00
yqrashawn aa73a0512c
feat: add contact customization color () 2024-04-03 22:49:57 +08:00
Patryk Osmaczko eeaff0d3e3 fix: sync&backup channels encryption keys
fixes: 
2024-02-26 16:41:30 +01:00
Igor Sirotin 85c0e282ae
feature: profile showcase preferences sync&backup () 2024-02-17 18:07:20 +00:00
Ibrahem Khalil 436d229856
Add last opened at key for community () 2024-01-21 12:55:14 +02:00
Dario Gabriel Lipicar 0d2c3cef7c feat: implement token management settings for collectibles 2024-01-18 11:46:35 -03:00
Sale Djenic 280f48877d chore(savedaddresses)!: favourite property removed and primary key updated
- favourite column removed from the saved_addresses table
- favourite property removed from the SavedAddress struct
- ens name removed from the primary key, the primary key now is composed of address and is_test columns
- ens parameter removed from wakuext_deleteSavedAddress
- wallet_getSavedAddresses moved to wakuext_getSavedAddresses (to keep them all in a single place)
- saved addresses related endpoints removed from the wallet service, even they logically belong there, a reason for that
is avoiding emitting sync message if one uses calls from the wallet service, while that's not the case in ext service. Once
we refactor this and introduce devices syncing mechanism in the wallet service, we should not only these but other wallet
related endpoints move there (removed: wallet_getSavedAddresses, wallet_addSavedAddress and wallet_deleteSavedAddress).

Affected area:
Saved addresses
2024-01-10 19:30:56 +01:00
Ibrahem Khalil e1b52f9eae
Add joined at key to communities () 2024-01-09 20:36:47 +02:00
Sale Djenic a8357dceac feat: color field added to saved address
- `color` column added to `saved_addresses` table
- `colorId` parameter exposed via `SavedAddress` struct

Affected area - saved addresses.

The following endpoints return or receive `SavedAddress` instance:
- `UpsertSavedAddress`
- `GetSavedAddresses`
- `AddSavedAddress`
2023-12-29 10:39:52 +01:00
Cuteivist 04873ef880
feat: token order API () 2023-12-04 11:18:05 +01:00
frank 054356fed2
remove sync AC state () 2023-11-02 23:07:03 +08:00
frank 06a9fe4f81
fix: sync decision on join community request ()
* fix: sync community request decision

* make generate

* simplify test

* make generate
2023-10-26 12:17:18 +08:00
Patryk Osmaczko 345851c396 feat: ensure unique control node across devices
closes: 
2023-10-22 21:50:41 +02:00
frank 624996a7e9
only sync decisions/state of AC notifications () 2023-10-22 17:41:20 +08:00
Jonathan Rainville c8910d69fe
feat(pairing): sync 1-1 chats and groups on pairing devices ()
Fixes 
2023-10-17 09:24:15 -04:00
Jonathan Rainville 466dccc809
feat(backup): add 1-1 chats and group chats to backup ()
* feat(backup): add 1-1 chats and group chats to backup

* add active

* add clock

* add muted
2023-10-12 17:15:05 -04:00
Sale Djenic 6894295ac3 feat: register and maintain keycard local pairing file by `status-go`
Closes: 
2023-09-13 17:15:32 +02:00
Andrea Maria Piana 8dd1b66d69 Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
Sale Djenic 2325bc5565 fix: accounts should keep the origin operability when local pairing 2023-08-10 16:09:29 +02:00
Anthony Laibe 1df8c1c511 feat: save preferred networks 2023-07-31 22:50:02 +02:00
Mikhail Rogachev 631962ce88
feat: add api to remove private key ()
* feat: add api to remove private key and separete owner from private key ownership

For https://github.com/status-im/status-desktop/issues/11475

* feat: introduce IsControlNode for Community

* feat: remove community private key from syncing

* feat: add IsControlNode flag to Community json serialisation

* Update protocol/protobuf/pairing.proto

Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>

---------

Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2023-07-21 13:41:26 +04:00
Sale Djenic 543b087896 fix: wallet accounts ordering improvements 2023-07-20 14:32:41 +02:00
frank 71ca35bf34
Feat/sync customization color ()
* sync customization color

* addressed feedback from @cammellos

* add param customizationColorClock to function generateOrImportAccount
2023-07-18 21:35:06 +08:00
Sale Djenic 7063ad11aa chore: synchronization improvements applied to keycards
This is the second step of improvements over keypairs/keycards/accounts.
- `SyncKeycardAction` protobuf removed
- `SyncKeypair` protobuf is used for syncing keycards state as well as for all
keycards related changes
- `last_update_clock` column removed from `keypairs` table cause as well as
for accounts, any keycard related change is actually a change made on a related
keypair, thus a keypair's clock keeps the clock of the last change
- `position` column added to `keypairs` table, needed to display keycards in
the same order accross devices
2023-07-11 15:14:49 +02:00
Sale Djenic 61527f8c78 chore: synchronization improvements applied to keypairs/accounts
This is the first step of improvements over keypairs/keycards/accounts.
- `SyncKeypairFull` protobuf removed
- `SyncKeypair` protobuf is used for syncing all but the watch only accounts
- `SyncAccount` is used only for syncing watch only accounts
- related keycards are synced together with a keypair
- on any keypair change (either it's just a keypair name or any change made over an
account which belongs to that keypair) entire keypair is synced including related keycards
- on any watch only account related change, that account is synced with all its details
2023-07-05 14:41:26 +02:00
Sale Djenic 5738cf7e21 keypairs pairing details added to local pairing 2023-06-28 14:04:47 +02:00
Sale Djenic 413120e299 feat: local pairing - adding support for syncing from a profile which is migrated to a Keycard 2023-06-28 14:04:47 +02:00
Pascal Precht 1a2ca21070 Add chainIds to revealed accounts in memberhsip requests
This commit does a few things:

- Adds a migration that adds chainids to communities_request_to_join_revealed_addresses
- Removes RevealedAddress in favor of RevealedAccount which is now a struct that contains the revealed address, as well as the signature and a list of chain IDs on which to check for user funds
- Changes the logic of sending requests to join a community, such that after creating address signatures, the user node will also check which of the addresses has funds on which networks for the community's token permissions, and add the chainds to the RevealedAccount
- Updates checkPermissionToJoin() such that only relevant chainids are used when checking user's funds. Chain IDs are retrieved from RevealedAccounts and matched against token permission criteria chain IDs
2023-06-12 10:49:29 +02:00
frank b6d4e75cf1
Feat/sync activity center notification ()
fix flaky test: TestRetrieveBlockedContact

resolve conflict when rebase origin/develop

Feat/sync activity center notification ()

* feat: sync activity center notification

* add test

* fix lint issue

* fix failed test

* addressed feedback from sale

* fix failed test

* addressed feedback from ilmotta

go generate ./protocol/migrations/sqlite/...

feat: add updated_at for syncing activity center notification
2023-06-10 10:00:17 +08:00
Sale Djenic cff7d2f693 fix: profile social links updated 2023-06-06 09:59:12 +02:00
Sale Djenic c6192bd26c fix: issues caused by wrong `pairing.proto` fixed 2023-06-05 09:29:34 +02:00
Khushboo-dev-cpp 8b91e3aaaf
chore: Add ColorId for Wallet accounts that can be shared with mobile () 2023-06-02 17:06:51 +02:00
Sale Djenic eeaaf0ce3f feat: accounts improvements applied
- old `accounts` table is moved/mapped to `keypairs` and `keypairs_accounts`
- `keycards` table has foreign key which refers to `keypairs.key_uid`
- `Keypair` introduced as a new type
- api endpoints updated according to this change
2023-05-25 19:46:47 +02:00
frank a2ed1b78dd
feat:support backup/sync ens name () 2023-04-26 23:37:18 +08:00
Sale Djenic f1e3ae5b46 feat: sync and backup wallet accounts
Changes applied here introduce:
- improvements to sync wallet accounts among devices (including all account types)
- backing up wallet accounts to and fetch them from waku (an information about received
wallet accounts is sent via `waku.backedup.wallet-account` signal to a client)
2023-04-21 16:35:24 +02:00
frank 272173c939
feat:support backup/sync social settings ()
* feat:support backup/sync social settings

* update binddata.go

* fix lint issue

* addressed feedback from @saledjenic @osmaczko

* addressed feedback from @saledjenic @osmaczko

* add corresponding test for local pairing

* addressed feedback from @saledjenic
2023-04-20 06:59:09 +08:00
Samuel Hawksby-Robinson 8c94c5f3f1 Added versioning package and addressed feedback 2023-04-17 12:01:38 +01:00
Samuel Hawksby-Robinson 0177e10c15 Refined local pairing peer discovery architecture 2023-04-17 12:01:38 +01:00
Samuel Hawksby-Robinson 17bc1e9f5d Rough initial proof of concept for udp network checking 2023-04-17 12:01:38 +01:00
Andrea Maria Piana e2082bf5bd Add customization color 2023-03-24 14:22:29 +00:00
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
IvanBelyakoff 48078393f9
feat: Update saved addresses DB to store ENS, isTest flag and chains ()
prefixes. Changed primary keys and API methods.
Fixed tests and added new ones.
Fixed saved addresses and transaction tests to use ':memory:' sqlite
DB instead of a tmp file to speed up testing by hundred of times.

Fixes 
2023-03-06 16:26:46 +03:00
Sale Djenic 93de01e32e feat: backup keycards to and fetch them from waku
Changes applied here introduce backing up keycards data to and fetch them from waku.
Information about received keycards data is sent via `sync.from.waku.keycards` signal.
2023-02-28 19:23:36 +01:00
frank 837bf2ca42
support local pairing after logged in as receiver; pair installation;() 2023-02-28 20:32:45 +08:00
Sale Djenic 2d16e7b891 feat(keycard): keycard details are being synced among devices
- sync all keycards state
- sync every keycard change
2023-02-27 16:03:02 +01:00
frank e64091c779
support passing kdf and node config from receiver when local pairing () 2023-02-17 21:02:42 +08:00
Andrea Maria Piana 0b2f0ef289
Sync display names 2023-02-15 12:14:27 +00:00
Andrea Maria Piana cefa0089dc
Split clock values for contacts 2023-01-31 15:43:00 +00:00