communities

package
v0.158.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 15, 2023 License: MPL-2.0, MPL-2.0 Imports: 43 Imported by: 0

Documentation

Index

Constants

View Source
const OR = " OR "

Variables

View Source
var (
	ErrTorrentTimedout                 = errors.New("torrent has timed out")
	ErrCommunityRequestAlreadyRejected = errors.New("that user was already rejected from the community")
)

errors

View Source
var ErrAlreadyJoined = errors.New("already joined")
View Source
var ErrAlreadyMember = errors.New("already a member")
View Source
var ErrCantRequestAccess = errors.New("can't request access")
View Source
var ErrCategoryAlreadyExists = errors.New("category already exists")
View Source
var ErrCategoryNotFound = errors.New("category not found")
View Source
var ErrChatAlreadyAssigned = errors.New("chat already assigned to a category")
View Source
var ErrChatAlreadyExists = errors.New("chat already exists")
View Source
var ErrChatNotFound = errors.New("chat not found")
View Source
var ErrInvalidCommunityDescription = errors.New("invalid community description")
View Source
var ErrInvalidCommunityDescriptionCategoryNoID = errors.New("invalid community category id")
View Source
var ErrInvalidCommunityDescriptionCategoryNoName = errors.New("invalid community category name")
View Source
var ErrInvalidCommunityDescriptionChatIdentity = errors.New("invalid community chat name, missing")
View Source
var ErrInvalidCommunityDescriptionDuplicatedName = errors.New("invalid community chat name, duplicated")
View Source
var ErrInvalidCommunityDescriptionMemberInChatButNotInOrg = errors.New("invalid community description member in chat but not in org")
View Source
var ErrInvalidCommunityDescriptionNoChatPermissions = errors.New("invalid community description no chat permissions")
View Source
var ErrInvalidCommunityDescriptionNoOrgPermissions = errors.New("invalid community description no org permissions")
View Source
var ErrInvalidCommunityDescriptionUnknownChatAccess = errors.New("invalid community description unknown chat access")
View Source
var ErrInvalidCommunityDescriptionUnknownChatCategory = errors.New("invalid community category in chat")
View Source
var ErrInvalidCommunityDescriptionUnknownOrgAccess = errors.New("invalid community description unknown org access")
View Source
var ErrInvalidCommunityTags = errors.New("invalid community tags")
View Source
var ErrInvalidGrant = errors.New("invalid grant")
View Source
var ErrInvalidMessage = errors.New("invalid community description message")
View Source
var ErrMemberNotFound = errors.New("member not found")
View Source
var ErrMemberWalletAlreadyExists = errors.New("member wallet already exists")
View Source
var ErrMemberWalletNotFound = errors.New("member wallet not found")
View Source
var ErrNoChangeInPosition = errors.New("no change in category position")
View Source
var ErrNoPermissionToJoin = errors.New("member has no permission to join")
View Source
var ErrNotAdmin = errors.New("no admin privileges for this community")
View Source
var ErrNotAuthorized = errors.New("not authorized")
View Source
var ErrNotEnoughPermissions = errors.New("not enough permissions for this community")
View Source
var ErrNotOwner = errors.New("no owner privileges for this community")
View Source
var ErrOldRequestToJoin = errors.New("old request to join")
View Source
var ErrOldRequestToLeave = errors.New("old request to leave")
View Source
var ErrOrgAlreadyJoined = errors.New("community already joined")
View Source
var ErrOrgNotFound = errors.New("community not found")
View Source
var ErrTokenPermissionAlreadyExists = errors.New("token permission already exists")
View Source
var ErrTokenPermissionNotFound = errors.New("token permission not found")

Functions

func AddTimeoutToRequestToJoinClock added in v0.146.4

func AddTimeoutToRequestToJoinClock(clock uint64) (uint64, error)

func CalculateRequestID added in v0.106.3

func CalculateRequestID(publicKey string, communityID types.HexBytes) types.HexBytes

func ExtractTokenCriteria added in v0.158.0

func ExtractTokenCriteria(permissions []*protobuf.CommunityTokenPermission) (erc20TokenCriteria map[uint64]map[string]*protobuf.TokenCriteria, erc721TokenCriteria map[uint64]map[string]*protobuf.TokenCriteria, ensTokenCriteria []string)

func ValidateCommunityDescription

func ValidateCommunityDescription(desc *protobuf.CommunityDescription) error

Types

type AccountChainIDsCombination added in v0.158.0

type AccountChainIDsCombination struct {
	Address  gethcommon.Address `json:"address"`
	ChainIDs []uint64           `json:"chainIds"`
}

type BalancesByChain added in v0.158.0

type BalancesByChain = map[uint64]map[gethcommon.Address]map[gethcommon.Address]*hexutil.Big

type CheckPermissionToJoinResponse added in v0.151.13

type CheckPermissionToJoinResponse struct {
	Satisfied         bool                                    `json:"satisfied"`
	Permissions       map[string]*CheckPermissionToJoinResult `json:"permissions"`
	ValidCombinations []*AccountChainIDsCombination           `json:"validCombinations"`
}

type CheckPermissionToJoinResult added in v0.151.13

type CheckPermissionToJoinResult struct {
	Criteria []bool `json:"criteria"`
}

type CollectiblesByChain added in v0.158.0

type CollectiblesByChain = map[uint64]map[gethcommon.Address]map[string][]opensea.Asset

type Community

type Community struct {
	// contains filtered or unexported fields
}

func New

func New(config Config) (*Community, error)

func (*Community) AcceptRequestToJoinAutomatically added in v0.103.2

func (o *Community) AcceptRequestToJoinAutomatically() bool

func (*Community) AddCommunityTokensMetadata added in v0.137.2

func (o *Community) AddCommunityTokensMetadata(token *protobuf.CommunityTokenMetadata) (*protobuf.CommunityDescription, error)

func (*Community) AddMember added in v0.103.2

func (o *Community) AddMember(publicKey *ecdsa.PublicKey, roles []protobuf.CommunityMember_Roles) (*CommunityChanges, error)

func (*Community) AddMemberRevealedAccounts added in v0.158.0

func (o *Community) AddMemberRevealedAccounts(memberID string, accounts []*protobuf.RevealedAccount) (*CommunityChanges, error)

func (*Community) AddRequestToJoin added in v0.83.8

func (o *Community) AddRequestToJoin(request *RequestToJoin)

func (*Community) AddRoleToMember added in v0.115.5

func (*Community) AddTokenPermission added in v0.136.0

func (o *Community) AddTokenPermission(permission *protobuf.CommunityTokenPermission) (*CommunityChanges, error)

func (*Community) AdminSettings added in v0.158.0

func (o *Community) AdminSettings() *protobuf.CommunityAdminSettings

func (*Community) AllowsAllMembersToPinMessage added in v0.100.0

func (o *Community) AllowsAllMembersToPinMessage() bool

func (*Community) BanUserFromCommunity added in v0.73.9

func (o *Community) BanUserFromCommunity(pk *ecdsa.PublicKey) (*protobuf.CommunityDescription, error)

func (*Community) BuildGrant added in v0.103.2

func (o *Community) BuildGrant(key *ecdsa.PublicKey, chatID string) ([]byte, error)

func (*Community) CanDeleteMessageForEveryone added in v0.115.5

func (o *Community) CanDeleteMessageForEveryone(pk *ecdsa.PublicKey) bool

func (*Community) CanManageUsers added in v0.72.0

func (o *Community) CanManageUsers(pk *ecdsa.PublicKey) bool

func (*Community) CanManageUsersPublicKeys added in v0.74.2

func (o *Community) CanManageUsersPublicKeys() ([]*ecdsa.PublicKey, error)

func (*Community) CanMemberIdentityPost added in v0.94.12

func (o *Community) CanMemberIdentityPost(chatID string) (bool, error)

func (*Community) CanPost

func (o *Community) CanPost(pk *ecdsa.PublicKey, chatID string, grantBytes []byte) (bool, error)

func (*Community) CanRequestAccess added in v0.72.0

func (o *Community) CanRequestAccess(pk *ecdsa.PublicKey) bool

func (*Community) Categories added in v0.79.3

func (o *Community) Categories() map[string]*protobuf.CommunityCategory

func (*Community) ChatIDs added in v0.97.4

func (o *Community) ChatIDs() (chatIDs []string)

func (*Community) Chats

func (o *Community) Chats() map[string]*protobuf.CommunityChat

func (*Community) ChatsByCategoryID added in v0.102.6

func (o *Community) ChatsByCategoryID(categoryID string) []string

func (*Community) Clock added in v0.72.0

func (o *Community) Clock() uint64

func (*Community) Color added in v0.101.1

func (o *Community) Color() string

func (*Community) CommunityTokensMetadata added in v0.137.2

func (o *Community) CommunityTokensMetadata() []*protobuf.CommunityTokenMetadata

func (*Community) CreateCategory added in v0.79.3

func (o *Community) CreateCategory(categoryID string, categoryName string, chatIDs []string) (*CommunityChanges, error)

func (*Community) CreateChat

func (o *Community) CreateChat(chatID string, chat *protobuf.CommunityChat) (*CommunityChanges, error)

func (*Community) DefaultFilters added in v0.83.2

func (o *Community) DefaultFilters() []string

func (*Community) DeleteCategory added in v0.79.3

func (o *Community) DeleteCategory(categoryID string) (*CommunityChanges, error)

func (*Community) DeleteChat

func (o *Community) DeleteChat(chatID string) (*CommunityChanges, error)

func (*Community) DeleteTokenPermission added in v0.136.0

func (o *Community) DeleteTokenPermission(permissionID string) (*CommunityChanges, error)

func (*Community) Description added in v0.76.3

func (o *Community) Description() *protobuf.CommunityDescription

func (*Community) DescriptionText added in v0.83.8

func (o *Community) DescriptionText() string

func (*Community) Edit added in v0.79.0

func (o *Community) Edit(description *protobuf.CommunityDescription)

func (*Community) EditCategory added in v0.79.3

func (o *Community) EditCategory(categoryID string, categoryName string, chatIDs []string) (*CommunityChanges, error)

func (*Community) EditChat added in v0.79.8

func (o *Community) EditChat(chatID string, chat *protobuf.CommunityChat) (*CommunityChanges, error)

func (*Community) Encrypted added in v0.102.2

func (o *Community) Encrypted() bool

func (*Community) GetMemberAdmins added in v0.158.0

func (o *Community) GetMemberAdmins() []*ecdsa.PublicKey

func (*Community) GetMemberPubkeys added in v0.102.2

func (o *Community) GetMemberPubkeys() []*ecdsa.PublicKey

func (*Community) HasMember

func (o *Community) HasMember(pk *ecdsa.PublicKey) bool

func (*Community) HasTokenPermissions added in v0.141.1

func (o *Community) HasTokenPermissions() bool

func (*Community) ID

func (o *Community) ID() types.HexBytes

func (*Community) IDString

func (o *Community) IDString() string

func (*Community) Identity added in v0.158.0

func (o *Community) Identity() *protobuf.ChatIdentity

func (*Community) Images added in v0.101.1

func (o *Community) Images() map[string]*protobuf.IdentityImage

func (*Community) IntroMessage added in v0.100.1

func (o *Community) IntroMessage() string

func (*Community) InvitationOnly added in v0.72.0

func (o *Community) InvitationOnly() bool

func (*Community) InviteUserToChat

func (o *Community) InviteUserToChat(pk *ecdsa.PublicKey, chatID string) (*protobuf.CommunityInvitation, error)

func (*Community) InviteUserToOrg

func (o *Community) InviteUserToOrg(pk *ecdsa.PublicKey) (*protobuf.CommunityInvitation, error)

func (*Community) IsAdmin

func (o *Community) IsAdmin() bool

func (*Community) IsBanned added in v0.73.9

func (o *Community) IsBanned(pk *ecdsa.PublicKey) bool

func (*Community) IsMemberAdmin added in v0.74.2

func (o *Community) IsMemberAdmin(publicKey *ecdsa.PublicKey) bool

func (*Community) IsMemberInChat

func (o *Community) IsMemberInChat(pk *ecdsa.PublicKey, chatID string) bool

func (*Community) IsMemberOwner added in v0.158.0

func (o *Community) IsMemberOwner(publicKey *ecdsa.PublicKey) bool

func (*Community) IsMemberOwnerOrAdmin added in v0.158.0

func (o *Community) IsMemberOwnerOrAdmin(publicKey *ecdsa.PublicKey) bool

func (*Community) IsOwner added in v0.158.0

func (o *Community) IsOwner() bool

func (*Community) IsOwnerOrAdmin added in v0.158.0

func (o *Community) IsOwnerOrAdmin() bool

func (*Community) Join

func (o *Community) Join()

func (*Community) Joined

func (o *Community) Joined() bool

func (*Community) Leave

func (o *Community) Leave()

func (*Community) MagnetlinkMessageChannelID added in v0.96.2

func (o *Community) MagnetlinkMessageChannelID() string

func (*Community) MarshalJSON

func (o *Community) MarshalJSON() ([]byte, error)

func (*Community) MarshalPublicAPIJSON added in v0.86.2

func (o *Community) MarshalPublicAPIJSON() ([]byte, error)

func (*Community) MarshaledDescription

func (o *Community) MarshaledDescription() ([]byte, error)

func (*Community) MemberIdentity added in v0.94.12

func (o *Community) MemberIdentity() *ecdsa.PublicKey

func (*Community) MemberRole added in v0.158.0

func (o *Community) MemberRole(pubKey *ecdsa.PublicKey) protobuf.CommunityMember_Roles

func (*Community) MemberUpdateChannelID added in v0.103.3

func (o *Community) MemberUpdateChannelID() string

func (*Community) Members added in v0.140.0

func (o *Community) Members() map[string]*protobuf.CommunityMember

func (*Community) MembersCount added in v0.76.3

func (o *Community) MembersCount() int

func (*Community) Muted added in v0.83.8

func (o *Community) Muted() bool

func (*Community) Name added in v0.74.2

func (o *Community) Name() string

func (*Community) OnRequest added in v0.72.0

func (o *Community) OnRequest() bool

func (*Community) OutroMessage added in v0.100.1

func (o *Community) OutroMessage() string

func (*Community) PatchCommunityDescriptionByAdminEvent added in v0.158.0

func (o *Community) PatchCommunityDescriptionByAdminEvent(adminEvent *protobuf.CommunityAdminEvent) (*protobuf.CommunityDescription, error)

func (*Community) Permissions added in v0.158.0

func (o *Community) Permissions() *protobuf.CommunityPermissions

func (*Community) PrivateKey

func (o *Community) PrivateKey() *ecdsa.PrivateKey

func (*Community) PublicKey added in v0.72.0

func (o *Community) PublicKey() *ecdsa.PublicKey

func (*Community) RemoveOurselvesFromOrg added in v0.110.2

func (o *Community) RemoveOurselvesFromOrg(pk *ecdsa.PublicKey)

func (*Community) RemoveRoleFromMember added in v0.115.5

func (*Community) RemoveUserFromChat

func (o *Community) RemoveUserFromChat(pk *ecdsa.PublicKey, chatID string) (*protobuf.CommunityDescription, error)

func (*Community) RemoveUserFromOrg

func (o *Community) RemoveUserFromOrg(pk *ecdsa.PublicKey) (*protobuf.CommunityDescription, error)

func (*Community) ReorderCategories added in v0.79.3

func (o *Community) ReorderCategories(categoryID string, newPosition int) (*CommunityChanges, error)

func (*Community) ReorderChat added in v0.79.3

func (o *Community) ReorderChat(categoryID string, chatID string, newPosition int) (*CommunityChanges, error)

func (*Community) RequestedToJoinAt added in v0.72.0

func (o *Community) RequestedToJoinAt() uint64

func (*Community) RequestsToJoin added in v0.83.8

func (o *Community) RequestsToJoin() []*RequestToJoin

func (*Community) SetActiveMembersCount added in v0.142.1

func (o *Community) SetActiveMembersCount(activeMembersCount uint64) (updated bool, err error)

func (*Community) SetEncrypted added in v0.148.4

func (o *Community) SetEncrypted(encrypted bool)

func (*Community) SortCategoryChats added in v0.79.3

func (o *Community) SortCategoryChats(changes *CommunityChanges, categoryID string)

func (*Community) Spectate added in v0.111.5

func (o *Community) Spectate()

func (*Community) Spectated added in v0.111.5

func (o *Community) Spectated() bool

func (*Community) StatusUpdatesChannelID added in v0.83.2

func (o *Community) StatusUpdatesChannelID() string

func (*Community) Tags added in v0.102.5

func (o *Community) Tags() []CommunityTag

func (*Community) TagsRaw added in v0.158.0

func (o *Community) TagsRaw() []string

func (*Community) ToBanCommunityMemberAdminEvent added in v0.158.0

func (o *Community) ToBanCommunityMemberAdminEvent(pubkey string) *protobuf.CommunityAdminEvent

func (*Community) ToBytes

func (o *Community) ToBytes() ([]byte, error)

ToBytes returns the community in a wrapped & signed protocol message

func (*Community) ToCommunityBecomeMemberTokenPermissionChangeAdminEvent added in v0.158.0

func (o *Community) ToCommunityBecomeMemberTokenPermissionChangeAdminEvent() *protobuf.CommunityAdminEvent

func (*Community) ToCommunityBecomeMemberTokenPermissionDeleteAdminEvent added in v0.158.0

func (o *Community) ToCommunityBecomeMemberTokenPermissionDeleteAdminEvent() *protobuf.CommunityAdminEvent

func (*Community) ToCommunityEditAdminEvent added in v0.158.0

func (o *Community) ToCommunityEditAdminEvent() *protobuf.CommunityAdminEvent

func (*Community) ToCommunityRequestToJoinAcceptAdminEvent added in v0.158.0

func (o *Community) ToCommunityRequestToJoinAcceptAdminEvent(changes *CommunityAdminEventChanges) *protobuf.CommunityAdminEvent

func (*Community) ToCommunityRequestToJoinRejectAdminEvent added in v0.158.0

func (o *Community) ToCommunityRequestToJoinRejectAdminEvent(changes *CommunityAdminEventChanges) *protobuf.CommunityAdminEvent

func (*Community) ToCreateCategoryAdminEvent added in v0.158.0

func (o *Community) ToCreateCategoryAdminEvent(categoryID string, categoryName string, channelsIds []string) *protobuf.CommunityAdminEvent

func (*Community) ToCreateChannelAdminEvent added in v0.158.0

func (o *Community) ToCreateChannelAdminEvent(channelID string, channel *protobuf.CommunityChat) *protobuf.CommunityAdminEvent

func (*Community) ToDeleteCategoryAdminEvent added in v0.158.0

func (o *Community) ToDeleteCategoryAdminEvent(categoryID string) *protobuf.CommunityAdminEvent

func (*Community) ToDeleteChannelAdminEvent added in v0.158.0

func (o *Community) ToDeleteChannelAdminEvent(channelID string) *protobuf.CommunityAdminEvent

func (*Community) ToEditCategoryAdminEvent added in v0.158.0

func (o *Community) ToEditCategoryAdminEvent(categoryID string, categoryName string, channelsIds []string) *protobuf.CommunityAdminEvent

func (*Community) ToEditChannelAdminEvent added in v0.158.0

func (o *Community) ToEditChannelAdminEvent(channelID string, channel *protobuf.CommunityChat) *protobuf.CommunityAdminEvent

func (*Community) ToKickCommunityMemberAdminEvent added in v0.158.0

func (o *Community) ToKickCommunityMemberAdminEvent(pubkey string) *protobuf.CommunityAdminEvent

func (*Community) ToReorderCategoryAdminEvent added in v0.158.0

func (o *Community) ToReorderCategoryAdminEvent(categoryID string, position int) *protobuf.CommunityAdminEvent

func (*Community) ToReorderChannelAdminEvent added in v0.158.0

func (o *Community) ToReorderChannelAdminEvent(categoryID string, channelID string, position int) *protobuf.CommunityAdminEvent

func (*Community) ToSyncCommunityProtobuf added in v0.83.8

func (o *Community) ToSyncCommunityProtobuf(clock uint64, communitySettings *CommunitySettings) (*protobuf.SyncCommunity, error)

func (*Community) ToUnbanCommunityMemberAdminEvent added in v0.158.0

func (o *Community) ToUnbanCommunityMemberAdminEvent(pubkey string) *protobuf.CommunityAdminEvent

func (*Community) TokenPermissions added in v0.139.1

func (o *Community) TokenPermissions() map[string]*protobuf.CommunityTokenPermission

func (*Community) TokenPermissionsByType added in v0.139.1

func (o *Community) TokenPermissionsByType(permissionType protobuf.CommunityTokenPermission_Type) []*protobuf.CommunityTokenPermission

func (*Community) UnbanUserFromCommunity added in v0.102.6

func (o *Community) UnbanUserFromCommunity(pk *ecdsa.PublicKey) (*protobuf.CommunityDescription, error)

func (*Community) UpdateChatFirstMessageTimestamp added in v0.109.1

func (o *Community) UpdateChatFirstMessageTimestamp(chatID string, timestamp uint32) (*CommunityChanges, error)

func (*Community) UpdateCommunityDescription added in v0.72.0

func (o *Community) UpdateCommunityDescription(description *protobuf.CommunityDescription, rawMessage []byte) (*CommunityChanges, error)

UpdateCommunityDescription will update the community to the new community description and return a list of changes

func (*Community) UpdateTokenPermission added in v0.136.0

func (o *Community) UpdateTokenPermission(permissionID string, tokenPermission *protobuf.CommunityTokenPermission) (*CommunityChanges, error)

func (*Community) ValidateRequestToJoin added in v0.72.0

func (o *Community) ValidateRequestToJoin(signer *ecdsa.PublicKey, request *protobuf.CommunityRequestToJoin) error

ValidateRequestToJoin validates a request, checks that the right permissions are applied

func (*Community) Verified added in v0.83.8

func (o *Community) Verified() bool

func (*Community) VerifyGrantSignature

func (o *Community) VerifyGrantSignature(data []byte) (*protobuf.Grant, error)

type CommunityAdminEventChanges added in v0.158.0

type CommunityAdminEventChanges struct {
	*CommunityChanges
	// `RejectedRequestsToJoin` is a map of signer keys to requests to join
	RejectedRequestsToJoin map[string]*protobuf.CommunityRequestToJoin `json:"rejectedRequestsToJoin"`
	// `AcceptedRequestsToJoin` is a map of signer keys to requests to join
	AcceptedRequestsToJoin map[string]*protobuf.CommunityRequestToJoin `json:"acceptedRequestsToJoin"`
}

`CommunityAdminEventChanges contain additional changes that don't live on a `Community` but still have to be propagated to other admin and control nodes

type CommunityAdminSettings added in v0.100.0

type CommunityAdminSettings struct {
	PinMessageAllMembersEnabled bool `json:"pinMessageAllMembersEnabled"`
}

type CommunityCategory added in v0.79.3

type CommunityCategory struct {
	ID       string `json:"id"`
	Name     string `json:"name"`
	Position int    `json:"position"` // Position is used to sort the categories
}

type CommunityChanges

type CommunityChanges struct {
	Community      *Community                           `json:"community"`
	MembersAdded   map[string]*protobuf.CommunityMember `json:"membersAdded"`
	MembersRemoved map[string]*protobuf.CommunityMember `json:"membersRemoved"`

	TokenPermissionsAdded    map[string]*protobuf.CommunityTokenPermission `json:"tokenPermissionsAdded"`
	TokenPermissionsModified map[string]*protobuf.CommunityTokenPermission `json:"tokenPermissionsModified"`
	TokenPermissionsRemoved  []string                                      `json:"tokenPermissionsRemoved"`

	ChatsRemoved  map[string]*protobuf.CommunityChat `json:"chatsRemoved"`
	ChatsAdded    map[string]*protobuf.CommunityChat `json:"chatsAdded"`
	ChatsModified map[string]*CommunityChatChanges   `json:"chatsModified"`

	CategoriesRemoved  []string                               `json:"categoriesRemoved"`
	CategoriesAdded    map[string]*protobuf.CommunityCategory `json:"categoriesAdded"`
	CategoriesModified map[string]*protobuf.CommunityCategory `json:"categoriesModified"`

	MemberWalletsRemoved []string                               `json:"memberWalletsRemoved"`
	MemberWalletsAdded   map[string][]*protobuf.RevealedAccount `json:"memberWalletsAdded"`

	// ShouldMemberJoin indicates whether the user should join this community
	// automatically
	ShouldMemberJoin bool `json:"memberAdded"`

	// ShouldMemberJoin indicates whether the user should leave this community
	// automatically
	ShouldMemberLeave bool `json:"memberRemoved"`
}

func (*CommunityChanges) HasMemberLeft added in v0.72.0

func (c *CommunityChanges) HasMemberLeft(identity string) bool

func (*CommunityChanges) HasNewMember added in v0.72.0

func (c *CommunityChanges) HasNewMember(identity string) bool

type CommunityChat added in v0.72.0

type CommunityChat struct {
	ID          string                               `json:"id"`
	Name        string                               `json:"name"`
	Color       string                               `json:"color"`
	Emoji       string                               `json:"emoji"`
	Description string                               `json:"description"`
	Members     map[string]*protobuf.CommunityMember `json:"members"`
	Permissions *protobuf.CommunityPermissions       `json:"permissions"`
	CanPost     bool                                 `json:"canPost"`
	Position    int                                  `json:"position"`
	CategoryID  string                               `json:"categoryID"`
}

type CommunityChatChanges

type CommunityChatChanges struct {
	ChatModified                  *protobuf.CommunityChat
	MembersAdded                  map[string]*protobuf.CommunityMember
	MembersRemoved                map[string]*protobuf.CommunityMember
	CategoryModified              string
	PositionModified              int
	FirstMessageTimestampModified uint32
}

type CommunityResponse added in v0.72.0

type CommunityResponse struct {
	Community *Community        `json:"community"`
	Changes   *CommunityChanges `json:"changes"`
}

type CommunitySettings added in v0.96.4

type CommunitySettings struct {
	CommunityID                  string `json:"communityId"`
	HistoryArchiveSupportEnabled bool   `json:"historyArchiveSupportEnabled"`
	Clock                        uint64 `json:"clock"`
}

type CommunityTag added in v0.102.5

type CommunityTag struct {
	Name  string `json:"name"`
	Emoji string `json:"emoji"`
}

type CommunityToken added in v0.133.2

type CommunityToken struct {
	TokenType          protobuf.CommunityTokenType `json:"tokenType"`
	CommunityID        string                      `json:"communityId"`
	Address            string                      `json:"address"`
	Name               string                      `json:"name"`
	Symbol             string                      `json:"symbol"`
	Description        string                      `json:"description"`
	Supply             int                         `json:"supply"`
	InfiniteSupply     bool                        `json:"infiniteSupply"`
	Transferable       bool                        `json:"transferable"`
	RemoteSelfDestruct bool                        `json:"remoteSelfDestruct"`
	ChainID            int                         `json:"chainId"`
	DeployState        DeployState                 `json:"deployState"`
	Base64Image        string                      `json:"image"`
}

type Config

type Config struct {
	PrivateKey                    *ecdsa.PrivateKey
	CommunityDescription          *protobuf.CommunityDescription
	MarshaledCommunityDescription []byte
	ID                            *ecdsa.PublicKey
	Joined                        bool
	Requested                     bool
	Verified                      bool
	Spectated                     bool
	Muted                         bool
	Logger                        *zap.Logger
	RequestedToJoinAt             uint64
	RequestsToJoin                []*RequestToJoin
	MemberIdentity                *ecdsa.PublicKey
	SyncedAt                      uint64
}

type DefaultTokenManager added in v0.151.13

type DefaultTokenManager struct {
	// contains filtered or unexported fields
}

func NewDefaultTokenManager added in v0.151.13

func NewDefaultTokenManager(tm *token.Manager) *DefaultTokenManager

func (*DefaultTokenManager) GetAllChainIDs added in v0.158.0

func (m *DefaultTokenManager) GetAllChainIDs() ([]uint64, error)

func (*DefaultTokenManager) GetBalancesByChain added in v0.151.13

func (m *DefaultTokenManager) GetBalancesByChain(ctx context.Context, accounts, tokenAddresses []gethcommon.Address, chainIDs []uint64) (BalancesByChain, error)

type DeployState added in v0.133.2

type DeployState uint8
const (
	Failed DeployState = iota
	InProgress
	Deployed
)

type EncodedArchiveData added in v0.98.1

type EncodedArchiveData struct {
	// contains filtered or unexported fields
}

type HistoryArchiveDownloadTask added in v0.117.1

type HistoryArchiveDownloadTask struct {
	CancelChan chan struct{}
	Waiter     sync.WaitGroup

	Cancelled bool
	// contains filtered or unexported fields
}

func (*HistoryArchiveDownloadTask) Cancel added in v0.117.1

func (t *HistoryArchiveDownloadTask) Cancel()

func (*HistoryArchiveDownloadTask) IsCancelled added in v0.125.1

func (t *HistoryArchiveDownloadTask) IsCancelled() bool

type HistoryArchiveDownloadTaskInfo added in v0.117.1

type HistoryArchiveDownloadTaskInfo struct {
	TotalDownloadedArchivesCount int
	TotalArchivesCount           int
	Cancelled                    bool
}

type KnownCommunitiesResponse added in v0.100.1

type KnownCommunitiesResponse struct {
	ContractCommunities         []string              `json:"contractCommunities"`
	ContractFeaturedCommunities []string              `json:"contractFeaturedCommunities"`
	Descriptions                map[string]*Community `json:"communities"`
	UnknownCommunities          []string              `json:"unknownCommunities"`
}

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

func NewManager

func NewManager(identity *ecdsa.PrivateKey, db *sql.DB, encryptor *encryption.Protocol, logger *zap.Logger, verifier *ens.Verifier, transport *transport.Transport, torrentConfig *params.TorrentConfig, opts ...ManagerOption) (*Manager, error)

func (*Manager) AcceptRequestToJoin added in v0.72.0

func (m *Manager) AcceptRequestToJoin(request *requests.AcceptRequestToJoinCommunity) (*Community, error)

func (*Manager) AcceptedRequestsToJoinForCommunity added in v0.158.0

func (m *Manager) AcceptedRequestsToJoinForCommunity(id types.HexBytes) ([]*RequestToJoin, error)

func (*Manager) AddCommunityToken added in v0.133.2

func (m *Manager) AddCommunityToken(token *CommunityToken) (*CommunityToken, error)

func (*Manager) AddHistoryArchiveDownloadTask added in v0.117.1

func (m *Manager) AddHistoryArchiveDownloadTask(communityID string, task *HistoryArchiveDownloadTask)

func (*Manager) AddMemberOwnerToCommunity added in v0.115.6

func (m *Manager) AddMemberOwnerToCommunity(communityID types.HexBytes, pk *ecdsa.PublicKey) (*Community, error)

func (*Manager) AddRoleToMember added in v0.115.5

func (m *Manager) AddRoleToMember(request *requests.AddRoleToMember) (*Community, error)

func (*Manager) All

func (m *Manager) All() ([]*Community, error)

func (*Manager) BanUserFromCommunity added in v0.73.9

func (m *Manager) BanUserFromCommunity(request *requests.BanUserFromCommunity) (*Community, error)

func (*Manager) CanPost

func (m *Manager) CanPost(pk *ecdsa.PublicKey, communityID string, chatID string, grant []byte) (bool, error)

func (*Manager) CancelRequestToJoin added in v0.114.1

func (m *Manager) CancelRequestToJoin(request *requests.CancelRequestToJoinCommunity) (*RequestToJoin, *Community, error)

func (*Manager) CanceledRequestsToJoinForCommunity added in v0.114.1

func (m *Manager) CanceledRequestsToJoinForCommunity(id types.HexBytes) ([]*RequestToJoin, error)

func (*Manager) CanceledRequestsToJoinForUser added in v0.114.1

func (m *Manager) CanceledRequestsToJoinForUser(pk *ecdsa.PublicKey) ([]*RequestToJoin, error)

func (*Manager) CheckMemberPermissionsPeriodically added in v0.140.0

func (m *Manager) CheckMemberPermissionsPeriodically(communityID types.HexBytes)

func (*Manager) CheckPermissionToJoin added in v0.151.13

func (m *Manager) CheckPermissionToJoin(id []byte, addresses []gethcommon.Address) (*CheckPermissionToJoinResponse, error)

func (*Manager) CommunitySettingsExist added in v0.96.4

func (m *Manager) CommunitySettingsExist(id types.HexBytes) (bool, error)

func (*Manager) CreateAndSeedHistoryArchive added in v0.98.1

func (m *Manager) CreateAndSeedHistoryArchive(communityID types.HexBytes, topics []types.TopicType, startDate time.Time, endDate time.Time, partition time.Duration, encrypt bool) error

func (*Manager) CreateCategory added in v0.79.3

func (m *Manager) CreateCategory(request *requests.CreateCommunityCategory, publish bool) (*Community, *CommunityChanges, error)

func (*Manager) CreateChat

func (m *Manager) CreateChat(communityID types.HexBytes, chat *protobuf.CommunityChat, publish bool, thirdPartyID string) (*Community, *CommunityChanges, error)

func (*Manager) CreateCommunity

func (m *Manager) CreateCommunity(request *requests.CreateCommunity, publish bool) (*Community, error)

CreateCommunity takes a description, generates an ID for it, saves it and return it

func (*Manager) CreateCommunityTokenPermission added in v0.136.0

func (m *Manager) CreateCommunityTokenPermission(request *requests.CreateCommunityTokenPermission) (*Community, *CommunityChanges, error)

func (*Manager) CreateHistoryArchiveTorrent added in v0.98.1

func (m *Manager) CreateHistoryArchiveTorrent(communityID types.HexBytes, msgs []*types.Message, topics []types.TopicType, startDate time.Time, endDate time.Time, partition time.Duration, encrypt bool) ([]string, error)

func (*Manager) CreateHistoryArchiveTorrentFromDB added in v0.113.0

func (m *Manager) CreateHistoryArchiveTorrentFromDB(communityID types.HexBytes, topics []types.TopicType, startDate time.Time, endDate time.Time, partition time.Duration, encrypt bool) ([]string, error)

func (*Manager) CreateHistoryArchiveTorrentFromMessages added in v0.113.0

func (m *Manager) CreateHistoryArchiveTorrentFromMessages(communityID types.HexBytes, messages []*types.Message, topics []types.TopicType, startDate time.Time, endDate time.Time, partition time.Duration, encrypt bool) ([]string, error)

func (*Manager) Created

func (m *Manager) Created() ([]*Community, error)

func (*Manager) DeclineRequestToJoin added in v0.72.0

func (m *Manager) DeclineRequestToJoin(request *requests.DeclineRequestToJoinCommunity) error

func (*Manager) DeclinedRequestsToJoinForCommunity added in v0.106.1

func (m *Manager) DeclinedRequestsToJoinForCommunity(id types.HexBytes) ([]*RequestToJoin, error)

func (*Manager) DeleteCategory added in v0.79.3

func (m *Manager) DeleteCategory(request *requests.DeleteCommunityCategory) (*Community, *CommunityChanges, error)

func (*Manager) DeleteChat added in v0.83.8

func (m *Manager) DeleteChat(communityID types.HexBytes, chatID string) (*Community, *CommunityChanges, error)

func (*Manager) DeleteCommunity added in v0.114.1

func (m *Manager) DeleteCommunity(id types.HexBytes) error

func (*Manager) DeleteCommunitySettings added in v0.96.4

func (m *Manager) DeleteCommunitySettings(id types.HexBytes) error

func (*Manager) DeleteCommunityTokenPermission added in v0.136.0

func (m *Manager) DeleteCommunityTokenPermission(request *requests.DeleteCommunityTokenPermission) (*Community, *CommunityChanges, error)

func (*Manager) DeleteHistoryArchiveDownloadTask added in v0.117.3

func (m *Manager) DeleteHistoryArchiveDownloadTask(communityID string)

func (*Manager) DeletePendingRequestToJoin added in v0.146.4

func (m *Manager) DeletePendingRequestToJoin(request *RequestToJoin) error

func (*Manager) DeletedCommunities added in v0.98.3

func (m *Manager) DeletedCommunities() ([]*Community, error)
func (m *Manager) DownloadHistoryArchivesByMagnetlink(communityID types.HexBytes, magnetlink string, cancelTask chan struct{}) (*HistoryArchiveDownloadTaskInfo, error)

func (*Manager) EditCategory added in v0.79.3

func (m *Manager) EditCategory(request *requests.EditCommunityCategory) (*Community, *CommunityChanges, error)

func (*Manager) EditChat added in v0.79.8

func (m *Manager) EditChat(communityID types.HexBytes, chatID string, chat *protobuf.CommunityChat) (*Community, *CommunityChanges, error)

func (*Manager) EditChatFirstMessageTimestamp added in v0.109.1

func (m *Manager) EditChatFirstMessageTimestamp(communityID types.HexBytes, chatID string, timestamp uint32) (*Community, *CommunityChanges, error)

func (*Manager) EditCommunity added in v0.79.0

func (m *Manager) EditCommunity(request *requests.EditCommunity) (*Community, error)

EditCommunity takes a description, updates the community with the description, saves it and returns it

func (*Manager) EditCommunityTokenPermission added in v0.136.0

func (m *Manager) EditCommunityTokenPermission(request *requests.EditCommunityTokenPermission) (*Community, *CommunityChanges, error)

func (*Manager) ExportCommunity

func (m *Manager) ExportCommunity(id types.HexBytes) (*ecdsa.PrivateKey, error)

func (*Manager) ExtractMessagesFromHistoryArchive added in v0.125.0

func (m *Manager) ExtractMessagesFromHistoryArchive(communityID types.HexBytes, archiveID string) ([]*protobuf.WakuMessage, error)

func (*Manager) GetAdminCommunitiesChatIDs added in v0.97.4

func (m *Manager) GetAdminCommunitiesChatIDs() (map[string]bool, error)

func (*Manager) GetAllCommunityTokens added in v0.148.4

func (m *Manager) GetAllCommunityTokens() ([]*CommunityToken, error)

func (*Manager) GetByID added in v0.72.0

func (m *Manager) GetByID(id []byte) (*Community, error)

func (*Manager) GetByIDString

func (m *Manager) GetByIDString(idString string) (*Community, error)

func (*Manager) GetCommunitiesSettings added in v0.96.4

func (m *Manager) GetCommunitiesSettings() ([]CommunitySettings, error)

func (*Manager) GetCommunityChatsFilters added in v0.98.1

func (m *Manager) GetCommunityChatsFilters(communityID types.HexBytes) ([]*transport.Filter, error)

func (*Manager) GetCommunityChatsTopics added in v0.98.1

func (m *Manager) GetCommunityChatsTopics(communityID types.HexBytes) ([]types.TopicType, error)

func (*Manager) GetCommunitySettingsByID added in v0.96.4

func (m *Manager) GetCommunitySettingsByID(id types.HexBytes) (*CommunitySettings, error)

func (*Manager) GetCommunityTokens added in v0.133.2

func (m *Manager) GetCommunityTokens(communityID string) ([]*CommunityToken, error)

func (*Manager) GetHistoryArchiveDownloadTask added in v0.117.1

func (m *Manager) GetHistoryArchiveDownloadTask(communityID string) *HistoryArchiveDownloadTask
func (m *Manager) GetHistoryArchiveMagnetlink(communityID types.HexBytes) (string, error)

func (*Manager) GetHistoryArchivePartitionStartTimestamp added in v0.98.1

func (m *Manager) GetHistoryArchivePartitionStartTimestamp(communityID types.HexBytes) (uint64, error)

func (*Manager) GetLastMessageArchiveEndDate added in v0.98.1

func (m *Manager) GetLastMessageArchiveEndDate(communityID types.HexBytes) (uint64, error)
func (m *Manager) GetLastSeenMagnetlink(communityID types.HexBytes) (string, error)

func (*Manager) GetLatestWakuMessageTimestamp added in v0.98.1

func (m *Manager) GetLatestWakuMessageTimestamp(topics []types.TopicType) (uint64, error)

func (*Manager) GetMagnetlinkMessageClock added in v0.98.1

func (m *Manager) GetMagnetlinkMessageClock(communityID types.HexBytes) (uint64, error)

func (*Manager) GetMessageArchiveIDsToImport added in v0.117.1

func (m *Manager) GetMessageArchiveIDsToImport(communityID types.HexBytes) ([]string, error)

func (*Manager) GetOldestWakuMessageTimestamp added in v0.98.1

func (m *Manager) GetOldestWakuMessageTimestamp(topics []types.TopicType) (uint64, error)

func (*Manager) GetOwnedERC721Tokens added in v0.158.0

func (m *Manager) GetOwnedERC721Tokens(walletAddresses []gethcommon.Address, tokenRequirements map[uint64]map[string]*protobuf.TokenCriteria, chainIDs []uint64) (CollectiblesByChain, error)

func (*Manager) GetRequestToJoin added in v0.103.2

func (m *Manager) GetRequestToJoin(ID types.HexBytes) (*RequestToJoin, error)

func (*Manager) GetRequestToJoinIDByPkAndCommunityID added in v0.113.0

func (m *Manager) GetRequestToJoinIDByPkAndCommunityID(pk *ecdsa.PublicKey, communityID []byte) ([]byte, error)

func (*Manager) GetStoredDescriptionForCommunities added in v0.100.1

func (m *Manager) GetStoredDescriptionForCommunities(communityIDs []types.HexBytes) (response *KnownCommunitiesResponse, err error)

func (*Manager) GetSyncedRawCommunity added in v0.83.8

func (m *Manager) GetSyncedRawCommunity(id []byte) (*RawCommunityRow, error)

func (*Manager) HandleCommunityAdminEvent added in v0.158.0

func (m *Manager) HandleCommunityAdminEvent(signer *ecdsa.PublicKey, adminEvent *protobuf.CommunityAdminEvent, payload []byte) (*CommunityResponse, error)

func (*Manager) HandleCommunityCancelRequestToJoin added in v0.114.1

func (m *Manager) HandleCommunityCancelRequestToJoin(signer *ecdsa.PublicKey, request *protobuf.CommunityCancelRequestToJoin) (*RequestToJoin, error)

func (*Manager) HandleCommunityDescriptionMessage

func (m *Manager) HandleCommunityDescriptionMessage(signer *ecdsa.PublicKey, description *protobuf.CommunityDescription, payload []byte) (*CommunityResponse, error)

func (*Manager) HandleCommunityInvitation

func (m *Manager) HandleCommunityInvitation(signer *ecdsa.PublicKey, invitation *protobuf.CommunityInvitation, payload []byte) (*CommunityResponse, error)

TODO: This is not fully implemented, we want to save the grant passed at this stage and make sure it's used when publishing.

func (*Manager) HandleCommunityRequestToJoin added in v0.72.0

func (m *Manager) HandleCommunityRequestToJoin(signer *ecdsa.PublicKey, request *protobuf.CommunityRequestToJoin) (*RequestToJoin, error)

func (*Manager) HandleCommunityRequestToJoinResponse added in v0.103.2

func (m *Manager) HandleCommunityRequestToJoinResponse(signer *ecdsa.PublicKey, request *protobuf.CommunityRequestToJoinResponse) (*RequestToJoin, error)

func (*Manager) HandleCommunityRequestToLeave added in v0.106.3

func (m *Manager) HandleCommunityRequestToLeave(signer *ecdsa.PublicKey, proto *protobuf.CommunityRequestToLeave) error

func (*Manager) HandleSyncCommunitySettings added in v0.102.2

func (m *Manager) HandleSyncCommunitySettings(syncCommunitySettings *protobuf.SyncCommunitySettings) (*CommunitySettings, error)

func (*Manager) HandleWrappedCommunityDescriptionMessage

func (m *Manager) HandleWrappedCommunityDescriptionMessage(payload []byte) (*CommunityResponse, error)

func (*Manager) ImageToBase64 added in v0.139.1

func (m *Manager) ImageToBase64(uri string) string

func (*Manager) ImportCommunity

func (m *Manager) ImportCommunity(key *ecdsa.PrivateKey) (*Community, error)

func (*Manager) InviteUsersToCommunity added in v0.72.0

func (m *Manager) InviteUsersToCommunity(communityID types.HexBytes, pks []*ecdsa.PublicKey) (*Community, error)

func (*Manager) IsAdminCommunity added in v0.100.0

func (m *Manager) IsAdminCommunity(pubKey *ecdsa.PublicKey) (bool, error)

func (*Manager) IsAdminCommunityByID added in v0.106.3

func (m *Manager) IsAdminCommunityByID(communityID types.HexBytes) (bool, error)

func (*Manager) IsEncrypted added in v0.102.2

func (m *Manager) IsEncrypted(communityID string) (bool, error)

func (*Manager) IsJoinedCommunity added in v0.100.0

func (m *Manager) IsJoinedCommunity(pubKey *ecdsa.PublicKey) (bool, error)

func (*Manager) IsSeedingHistoryArchiveTorrent added in v0.98.1

func (m *Manager) IsSeedingHistoryArchiveTorrent(communityID types.HexBytes) bool

func (*Manager) JoinCommunity

func (m *Manager) JoinCommunity(id types.HexBytes, forceJoin bool) (*Community, error)

func (*Manager) Joined

func (m *Manager) Joined() ([]*Community, error)

func (*Manager) JoinedAndPendingCommunitiesWithRequests added in v0.83.8

func (m *Manager) JoinedAndPendingCommunitiesWithRequests() ([]*Community, error)

func (*Manager) LeaveCommunity

func (m *Manager) LeaveCommunity(id types.HexBytes) (*Community, error)

func (*Manager) LoadHistoryArchiveIndexFromFile added in v0.100.0

func (m *Manager) LoadHistoryArchiveIndexFromFile(myKey *ecdsa.PrivateKey, communityID types.HexBytes) (*protobuf.WakuMessageArchiveIndex, error)

func (*Manager) LogStdout added in v0.111.5

func (m *Manager) LogStdout(msg string, fields ...zap.Field)

func (*Manager) PendingRequestsToJoin added in v0.146.4

func (m *Manager) PendingRequestsToJoin() ([]*RequestToJoin, error)

func (*Manager) PendingRequestsToJoinForCommunity added in v0.72.0

func (m *Manager) PendingRequestsToJoinForCommunity(id types.HexBytes) ([]*RequestToJoin, error)

func (*Manager) PendingRequestsToJoinForUser added in v0.72.0

func (m *Manager) PendingRequestsToJoinForUser(pk *ecdsa.PublicKey) ([]*RequestToJoin, error)

func (*Manager) RemoveRoleFromMember added in v0.115.5

func (m *Manager) RemoveRoleFromMember(request *requests.RemoveRoleFromMember) (*Community, error)

func (*Manager) RemoveUserFromCommunity

func (m *Manager) RemoveUserFromCommunity(id types.HexBytes, pk *ecdsa.PublicKey) (*Community, error)

func (*Manager) ReorderCategories added in v0.79.3

func (m *Manager) ReorderCategories(request *requests.ReorderCommunityCategories) (*Community, *CommunityChanges, error)

func (*Manager) ReorderChat added in v0.79.3

func (m *Manager) ReorderChat(request *requests.ReorderCommunityChat) (*Community, *CommunityChanges, error)

func (*Manager) RequestToJoin added in v0.72.0

func (m *Manager) RequestToJoin(requester *ecdsa.PublicKey, request *requests.RequestToJoinCommunity) (*Community, *RequestToJoin, error)

func (*Manager) SaveCommunitySettings added in v0.96.4

func (m *Manager) SaveCommunitySettings(settings CommunitySettings) error

func (*Manager) SaveRequestToJoin added in v0.83.8

func (m *Manager) SaveRequestToJoin(request *RequestToJoin) error

func (*Manager) SeedHistoryArchiveTorrent added in v0.98.1

func (m *Manager) SeedHistoryArchiveTorrent(communityID types.HexBytes) error

func (*Manager) SetCommunityActiveMembersCount added in v0.142.1

func (m *Manager) SetCommunityActiveMembersCount(communityID string, activeMembersCount uint64) error

func (*Manager) SetMessageArchiveIDImported added in v0.117.1

func (m *Manager) SetMessageArchiveIDImported(communityID types.HexBytes, hash string, imported bool) error

func (*Manager) SetMuted added in v0.81.0

func (m *Manager) SetMuted(id types.HexBytes, muted bool) error

func (*Manager) SetPrivateKey added in v0.83.8

func (m *Manager) SetPrivateKey(id []byte, privKey *ecdsa.PrivateKey) error

func (*Manager) SetSyncClock added in v0.83.8

func (m *Manager) SetSyncClock(id []byte, clock uint64) error

func (*Manager) SetTorrentConfig added in v0.98.1

func (m *Manager) SetTorrentConfig(config *params.TorrentConfig)

func (*Manager) ShouldHandleSyncCommunity added in v0.83.8

func (m *Manager) ShouldHandleSyncCommunity(community *protobuf.SyncCommunity) (bool, error)

func (*Manager) ShouldHandleSyncCommunitySettings added in v0.102.2

func (m *Manager) ShouldHandleSyncCommunitySettings(communitySettings *protobuf.SyncCommunitySettings) (bool, error)

func (*Manager) SpectateCommunity added in v0.111.5

func (m *Manager) SpectateCommunity(id types.HexBytes) (*Community, error)

func (*Manager) Spectated added in v0.111.5

func (m *Manager) Spectated() ([]*Community, error)

func (*Manager) Start added in v0.72.0

func (m *Manager) Start() error

func (*Manager) StartHistoryArchiveTasksInterval added in v0.98.1

func (m *Manager) StartHistoryArchiveTasksInterval(community *Community, interval time.Duration)

func (*Manager) StartTorrentClient added in v0.98.1

func (m *Manager) StartTorrentClient() error

func (*Manager) Stop

func (m *Manager) Stop() error

func (*Manager) StopHistoryArchiveTasksInterval added in v0.98.1

func (m *Manager) StopHistoryArchiveTasksInterval(communityID types.HexBytes)

func (*Manager) StopHistoryArchiveTasksIntervals added in v0.98.1

func (m *Manager) StopHistoryArchiveTasksIntervals()

func (*Manager) StopTorrentClient added in v0.98.1

func (m *Manager) StopTorrentClient() []error

func (*Manager) StoreWakuMessage added in v0.97.4

func (m *Manager) StoreWakuMessage(message *types.Message) error

func (*Manager) StoreWakuMessages added in v0.114.1

func (m *Manager) StoreWakuMessages(messages []*types.Message) error

func (*Manager) Subscribe

func (m *Manager) Subscribe() chan *Subscription

func (*Manager) TorrentClientStarted added in v0.98.1

func (m *Manager) TorrentClientStarted() bool

func (*Manager) TorrentFileExists added in v0.110.2

func (m *Manager) TorrentFileExists(communityID string) bool

func (*Manager) UnbanUserFromCommunity added in v0.102.6

func (m *Manager) UnbanUserFromCommunity(request *requests.UnbanUserFromCommunity) (*Community, error)

func (*Manager) UnseedHistoryArchiveTorrent added in v0.98.1

func (m *Manager) UnseedHistoryArchiveTorrent(communityID types.HexBytes)

func (*Manager) UpdateClockInRequestToJoin added in v0.146.4

func (m *Manager) UpdateClockInRequestToJoin(id types.HexBytes, clock uint64) error

UpdateClockInRequestToJoin method is used for testing

func (*Manager) UpdateCommunity added in v0.148.4

func (m *Manager) UpdateCommunity(c *Community) error

UpdateCommunity takes a Community persists it and republishes it. The clock is incremented meaning even a no change update will be republished by the admin, and parsed by the member.

func (*Manager) UpdateCommunityDescriptionMagnetlinkMessageClock added in v0.98.1

func (m *Manager) UpdateCommunityDescriptionMagnetlinkMessageClock(communityID types.HexBytes, clock uint64) error

func (*Manager) UpdateCommunitySettings added in v0.96.4

func (m *Manager) UpdateCommunitySettings(settings CommunitySettings) error

func (*Manager) UpdateCommunityTokenState added in v0.133.2

func (m *Manager) UpdateCommunityTokenState(chainID int, contractAddress string, deployState DeployState) error

func (*Manager) UpdateCommunityTokenSupply added in v0.158.0

func (m *Manager) UpdateCommunityTokenSupply(chainID int, contractAddress string, supply int) error
func (m *Manager) UpdateLastSeenMagnetlink(communityID types.HexBytes, magnetlinkURI string) error

func (*Manager) UpdateMagnetlinkMessageClock added in v0.98.1

func (m *Manager) UpdateMagnetlinkMessageClock(communityID types.HexBytes, clock uint64) error

type ManagerOption added in v0.139.1

type ManagerOption func(*managerOptions)

func WithAccountManager added in v0.139.1

func WithAccountManager(accountsManager *account.GethManager) ManagerOption

func WithOpenseaClientBuilder added in v0.151.13

func WithOpenseaClientBuilder(builder openseaClientBuilder) ManagerOption

func WithTokenManager added in v0.140.0

func WithTokenManager(tokenManager TokenManager) ManagerOption

func WithWalletConfig added in v0.142.2

func WithWalletConfig(walletConfig *params.WalletConfig) ManagerOption

type Persistence

type Persistence struct {
	// contains filtered or unexported fields
}

func (*Persistence) AcceptedRequestsToJoinForCommunity added in v0.158.0

func (p *Persistence) AcceptedRequestsToJoinForCommunity(id []byte) ([]*RequestToJoin, error)

func (*Persistence) AddCommunityToken added in v0.133.2

func (p *Persistence) AddCommunityToken(token *CommunityToken) error

func (*Persistence) AllCommunities

func (p *Persistence) AllCommunities(memberIdentity *ecdsa.PublicKey) ([]*Community, error)

func (*Persistence) CanceledRequestsToJoinForCommunity added in v0.114.1

func (p *Persistence) CanceledRequestsToJoinForCommunity(id []byte) ([]*RequestToJoin, error)

func (*Persistence) CanceledRequestsToJoinForUser added in v0.114.1

func (p *Persistence) CanceledRequestsToJoinForUser(pk string) ([]*RequestToJoin, error)

func (*Persistence) CommunitySettingsExist added in v0.96.4

func (p *Persistence) CommunitySettingsExist(communityID types.HexBytes) (bool, error)

func (*Persistence) CreatedCommunities

func (p *Persistence) CreatedCommunities(memberIdentity *ecdsa.PublicKey) ([]*Community, error)

func (*Persistence) DeclinedRequestsToJoinForCommunity added in v0.106.1

func (p *Persistence) DeclinedRequestsToJoinForCommunity(id []byte) ([]*RequestToJoin, error)

func (*Persistence) DeleteCommunity added in v0.114.1

func (p *Persistence) DeleteCommunity(id types.HexBytes) error

func (*Persistence) DeleteCommunitySettings added in v0.96.4

func (p *Persistence) DeleteCommunitySettings(communityID types.HexBytes) error

func (*Persistence) DeletePendingRequestToJoin added in v0.146.4

func (p *Persistence) DeletePendingRequestToJoin(id []byte) error

func (*Persistence) DeletedCommunities added in v0.98.3

func (p *Persistence) DeletedCommunities(memberIdentity *ecdsa.PublicKey) (comms []*Community, err error)

func (*Persistence) GetAllCommunityTokens added in v0.148.4

func (p *Persistence) GetAllCommunityTokens() ([]*CommunityToken, error)

func (*Persistence) GetByID

func (p *Persistence) GetByID(memberIdentity *ecdsa.PublicKey, id []byte) (*Community, error)

func (*Persistence) GetCommunitiesSettings added in v0.96.4

func (p *Persistence) GetCommunitiesSettings() ([]CommunitySettings, error)

func (*Persistence) GetCommunityChatIDs added in v0.98.1

func (p *Persistence) GetCommunityChatIDs(communityID types.HexBytes) ([]string, error)

func (*Persistence) GetCommunitySettingsByID added in v0.96.4

func (p *Persistence) GetCommunitySettingsByID(communityID types.HexBytes) (*CommunitySettings, error)

func (*Persistence) GetCommunityTokens added in v0.133.2

func (p *Persistence) GetCommunityTokens(communityID string) ([]*CommunityToken, error)

func (*Persistence) GetDownloadedMessageArchiveIDs added in v0.117.1

func (p *Persistence) GetDownloadedMessageArchiveIDs(communityID types.HexBytes) ([]string, error)

func (*Persistence) GetLastMessageArchiveEndDate added in v0.98.1

func (p *Persistence) GetLastMessageArchiveEndDate(communityID types.HexBytes) (uint64, error)
func (p *Persistence) GetLastSeenMagnetlink(communityID types.HexBytes) (string, error)

func (*Persistence) GetLatestWakuMessageTimestamp added in v0.98.1

func (p *Persistence) GetLatestWakuMessageTimestamp(topics []types.TopicType) (uint64, error)

func (*Persistence) GetMagnetlinkMessageClock added in v0.98.1

func (p *Persistence) GetMagnetlinkMessageClock(communityID types.HexBytes) (uint64, error)

func (*Persistence) GetMessageArchiveIDsToImport added in v0.117.1

func (p *Persistence) GetMessageArchiveIDsToImport(communityID types.HexBytes) ([]string, error)

func (*Persistence) GetOldestWakuMessageTimestamp added in v0.98.1

func (p *Persistence) GetOldestWakuMessageTimestamp(topics []types.TopicType) (uint64, error)

func (*Persistence) GetRequestToJoin added in v0.72.0

func (p *Persistence) GetRequestToJoin(id []byte) (*RequestToJoin, error)

func (*Persistence) GetRequestToJoinByPk added in v0.114.1

func (p *Persistence) GetRequestToJoinByPk(pk string, communityID []byte, state RequestToJoinState) (*RequestToJoin, error)

func (*Persistence) GetRequestToJoinByPkAndCommunityID added in v0.129.3

func (p *Persistence) GetRequestToJoinByPkAndCommunityID(pk string, communityID []byte) (*RequestToJoin, error)

func (*Persistence) GetRequestToJoinIDByPkAndCommunityID added in v0.113.0

func (p *Persistence) GetRequestToJoinIDByPkAndCommunityID(pk string, communityID []byte) ([]byte, error)

func (*Persistence) GetRequestToJoinRevealedAddresses added in v0.139.1

func (p *Persistence) GetRequestToJoinRevealedAddresses(requestID []byte) ([]*protobuf.RevealedAccount, error)

func (*Persistence) GetWakuMessagesByFilterTopic added in v0.98.1

func (p *Persistence) GetWakuMessagesByFilterTopic(topics []types.TopicType, from uint64, to uint64) ([]types.Message, error)

func (*Persistence) HasCommunityArchiveInfo added in v0.100.0

func (p *Persistence) HasCommunityArchiveInfo(communityID types.HexBytes) (exists bool, err error)

func (*Persistence) HasMessageArchiveID added in v0.100.0

func (p *Persistence) HasMessageArchiveID(communityID types.HexBytes, hash string) (exists bool, err error)

func (*Persistence) HasPendingRequestsToJoinForUserAndCommunity added in v0.72.0

func (p *Persistence) HasPendingRequestsToJoinForUserAndCommunity(userPk string, communityID []byte) (bool, error)

func (*Persistence) JoinedAndPendingCommunitiesWithRequests added in v0.83.8

func (p *Persistence) JoinedAndPendingCommunitiesWithRequests(memberIdentity *ecdsa.PublicKey) (comms []*Community, err error)

func (*Persistence) JoinedCommunities

func (p *Persistence) JoinedCommunities(memberIdentity *ecdsa.PublicKey) ([]*Community, error)

func (*Persistence) PendingRequestsToJoin added in v0.146.4

func (p *Persistence) PendingRequestsToJoin() ([]*RequestToJoin, error)

func (*Persistence) PendingRequestsToJoinForCommunity added in v0.72.0

func (p *Persistence) PendingRequestsToJoinForCommunity(id []byte) ([]*RequestToJoin, error)

func (*Persistence) PendingRequestsToJoinForUser added in v0.72.0

func (p *Persistence) PendingRequestsToJoinForUser(pk string) ([]*RequestToJoin, error)

func (*Persistence) RequestsToJoinForCommunityWithState added in v0.106.1

func (p *Persistence) RequestsToJoinForCommunityWithState(id []byte, state RequestToJoinState) ([]*RequestToJoin, error)

func (*Persistence) SaveCommunity

func (p *Persistence) SaveCommunity(community *Community) error

func (*Persistence) SaveCommunityArchiveInfo added in v0.100.0

func (p *Persistence) SaveCommunityArchiveInfo(communityID types.HexBytes, clock uint64, lastArchiveEndDate uint64) error

func (*Persistence) SaveCommunitySettings added in v0.96.4

func (p *Persistence) SaveCommunitySettings(communitySettings CommunitySettings) error

func (*Persistence) SaveLastMessageArchiveEndDate added in v0.98.1

func (p *Persistence) SaveLastMessageArchiveEndDate(communityID types.HexBytes, endDate uint64) error

func (*Persistence) SaveMessageArchiveID added in v0.100.0

func (p *Persistence) SaveMessageArchiveID(communityID types.HexBytes, hash string) error

func (*Persistence) SaveRequestToJoin added in v0.72.0

func (p *Persistence) SaveRequestToJoin(request *RequestToJoin) (err error)

func (*Persistence) SaveRequestToJoinRevealedAddresses added in v0.139.1

func (p *Persistence) SaveRequestToJoinRevealedAddresses(request *RequestToJoin) (err error)

func (*Persistence) SaveRequestToLeave added in v0.106.3

func (p *Persistence) SaveRequestToLeave(request *RequestToLeave) error

func (*Persistence) SaveWakuMessage added in v0.97.4

func (p *Persistence) SaveWakuMessage(message *types.Message) error

func (*Persistence) SaveWakuMessages added in v0.111.5

func (p *Persistence) SaveWakuMessages(messages []*types.Message) (err error)

func (*Persistence) SetMessageArchiveIDImported added in v0.117.1

func (p *Persistence) SetMessageArchiveIDImported(communityID types.HexBytes, hash string, imported bool) error

func (*Persistence) SetMuted added in v0.81.0

func (p *Persistence) SetMuted(communityID []byte, muted bool) error

func (*Persistence) SetPrivateKey added in v0.83.8

func (p *Persistence) SetPrivateKey(id []byte, privKey *ecdsa.PrivateKey) error

func (*Persistence) SetRequestToJoinState added in v0.72.0

func (p *Persistence) SetRequestToJoinState(pk string, communityID []byte, state RequestToJoinState) error

func (*Persistence) SetSyncClock added in v0.83.8

func (p *Persistence) SetSyncClock(id []byte, clock uint64) error

func (*Persistence) ShouldHandleSyncCommunity added in v0.83.8

func (p *Persistence) ShouldHandleSyncCommunity(community *protobuf.SyncCommunity) (bool, error)

func (*Persistence) ShouldHandleSyncCommunitySettings added in v0.102.2

func (p *Persistence) ShouldHandleSyncCommunitySettings(settings *protobuf.SyncCommunitySettings) (bool, error)

func (*Persistence) SpectatedCommunities added in v0.111.5

func (p *Persistence) SpectatedCommunities(memberIdentity *ecdsa.PublicKey) ([]*Community, error)

func (*Persistence) UpdateClockInRequestToJoin added in v0.146.4

func (p *Persistence) UpdateClockInRequestToJoin(id []byte, clock uint64) error

UpdateClockInRequestToJoin method is used for testing

func (*Persistence) UpdateCommunitySettings added in v0.96.4

func (p *Persistence) UpdateCommunitySettings(communitySettings CommunitySettings) error

func (*Persistence) UpdateCommunityTokenState added in v0.133.2

func (p *Persistence) UpdateCommunityTokenState(chainID int, contractAddress string, deployState DeployState) error

func (*Persistence) UpdateCommunityTokenSupply added in v0.158.0

func (p *Persistence) UpdateCommunityTokenSupply(chainID int, contractAddress string, supply int) error

func (*Persistence) UpdateLastMessageArchiveEndDate added in v0.98.1

func (p *Persistence) UpdateLastMessageArchiveEndDate(communityID types.HexBytes, endDate uint64) error
func (p *Persistence) UpdateLastSeenMagnetlink(communityID types.HexBytes, magnetlinkURI string) error

func (*Persistence) UpdateMagnetlinkMessageClock added in v0.98.1

func (p *Persistence) UpdateMagnetlinkMessageClock(communityID types.HexBytes, clock uint64) error

type RawCommunityRow added in v0.97.4

type RawCommunityRow struct {
	ID          []byte
	PrivateKey  []byte
	Description []byte
	Joined      bool
	Spectated   bool
	Verified    bool
	SyncedAt    uint64
	Muted       bool
}

type RequestToJoin added in v0.72.0

type RequestToJoin struct {
	ID               types.HexBytes              `json:"id"`
	PublicKey        string                      `json:"publicKey"`
	Clock            uint64                      `json:"clock"`
	ENSName          string                      `json:"ensName,omitempty"`
	ChatID           string                      `json:"chatId"`
	CommunityID      types.HexBytes              `json:"communityId"`
	State            RequestToJoinState          `json:"state"`
	Our              bool                        `json:"our"`
	Deleted          bool                        `json:"deleted"`
	RevealedAccounts []*protobuf.RevealedAccount `json:"revealedAccounts,omitempty"`
}

func (*RequestToJoin) CalculateID added in v0.72.0

func (r *RequestToJoin) CalculateID()

func (*RequestToJoin) Empty added in v0.83.8

func (r *RequestToJoin) Empty() bool

func (*RequestToJoin) InitFromSyncProtobuf added in v0.83.8

func (r *RequestToJoin) InitFromSyncProtobuf(proto *protobuf.SyncCommunityRequestsToJoin)

func (*RequestToJoin) ToCommunityRequestToJoinProtobuf added in v0.158.0

func (r *RequestToJoin) ToCommunityRequestToJoinProtobuf() *protobuf.CommunityRequestToJoin

func (*RequestToJoin) ToSyncProtobuf added in v0.83.8

func (r *RequestToJoin) ToSyncProtobuf() *protobuf.SyncCommunityRequestsToJoin

type RequestToJoinState added in v0.83.8

type RequestToJoinState uint
const (
	RequestToJoinStatePending RequestToJoinState = iota + 1
	RequestToJoinStateDeclined
	RequestToJoinStateAccepted
	RequestToJoinStateCanceled
)

type RequestToLeave added in v0.106.3

type RequestToLeave struct {
	ID          types.HexBytes `json:"id"`
	PublicKey   string         `json:"publicKey"`
	Clock       uint64         `json:"clock"`
	CommunityID types.HexBytes `json:"communityId"`
}

func NewRequestToLeave added in v0.106.3

func NewRequestToLeave(publicKey string, protobuf *protobuf.CommunityRequestToLeave) *RequestToLeave

type Subscription

type Subscription struct {
	Community                                *Community
	Invitations                              []*protobuf.CommunityInvitation
	CreatingHistoryArchivesSignal            *signal.CreatingHistoryArchivesSignal
	HistoryArchivesCreatedSignal             *signal.HistoryArchivesCreatedSignal
	NoHistoryArchivesCreatedSignal           *signal.NoHistoryArchivesCreatedSignal
	HistoryArchivesSeedingSignal             *signal.HistoryArchivesSeedingSignal
	HistoryArchivesUnseededSignal            *signal.HistoryArchivesUnseededSignal
	HistoryArchiveDownloadedSignal           *signal.HistoryArchiveDownloadedSignal
	DownloadingHistoryArchivesStartedSignal  *signal.DownloadingHistoryArchivesStartedSignal
	DownloadingHistoryArchivesFinishedSignal *signal.DownloadingHistoryArchivesFinishedSignal
	ImportingHistoryArchiveMessagesSignal    *signal.ImportingHistoryArchiveMessagesSignal
	CommunityAdminEvent                      *protobuf.CommunityAdminEvent
}

type TokenManager added in v0.151.13

type TokenManager interface {
	GetBalancesByChain(ctx context.Context, accounts, tokens []gethcommon.Address, chainIDs []uint64) (map[uint64]map[gethcommon.Address]map[gethcommon.Address]*hexutil.Big, error)
	GetAllChainIDs() ([]uint64, error)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL