summaryrefslogtreecommitdiff
path: root/internal/client/ui/core/state/state.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/client/ui/core/state/state.go')
-rw-r--r--internal/client/ui/core/state/state.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/internal/client/ui/core/state/state.go b/internal/client/ui/core/state/state.go
index 182a957..03b7b9d 100644
--- a/internal/client/ui/core/state/state.go
+++ b/internal/client/ui/core/state/state.go
@@ -1,6 +1,7 @@
package state
import (
+ "crypto/ed25519"
"encoding/json"
"slices"
@@ -28,6 +29,7 @@ type state struct {
Frequencies map[snowflake.ID][]data.Frequency // key is network id
Members map[snowflake.ID]map[snowflake.ID]data.Member // key is network id then user id
Users map[snowflake.ID]data.User // key is user id
+ Trusteds map[snowflake.ID]ed25519.PublicKey // key is user id
}
var State state = state{
@@ -38,6 +40,7 @@ var State state = state{
Frequencies: map[snowflake.ID][]data.Frequency{},
Members: map[snowflake.ID]map[snowflake.ID]data.Member{},
Users: map[snowflake.ID]data.User{},
+ Trusteds: map[snowflake.ID]ed25519.PublicKey{},
}
type UserData struct {
@@ -195,3 +198,13 @@ func FromJsonUserData(s string) {
}
Data = data
}
+
+func UpdateTrusteds(info *packet.TrustInfo) {
+ for _, removed := range info.RemovedTrusteds {
+ delete(State.Trusteds, removed)
+ }
+
+ for i, trusted := range info.Trusteds {
+ State.Trusteds[trusted] = info.TrustedPublicKeys[i]
+ }
+}