Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

memberstore source realm

Constants 1

Functions 10

func GetTierPower

Action
1func GetTierPower(tierName string, members MembersByTier) float64
source

GetTierPower calculates the effective voting power for a tier given the current members. This is a safe accessor that uses the internal tiers configuration.

func IterateTiers

Action
1func IterateTiers(fn func(name string, tier Tier) bool)
source

IterateTiers iterates over all tiers in order. This is a read-only accessor. The callback receives the tier name and tier data. Return true from the callback to stop iteration.

func RenderCharts

Action
1func RenderCharts(members MembersByTier) string
source

RenderCharts generates two pie charts for member tiers: 1) distribution of member counts per tier 2) distribution of power per tier

func RenderMembers

Action
1func RenderMembers(path string, members MembersByTier) string
source

RenderMembers returns the members list with tier filters and pagination.

func Get

Action
1func Get(_ int, rlm realm) MembersByTier
source

Get gets the Members store.

rlm is the cur of an in-scope crossing frame, threaded by the caller. The IsCurrent() check rejects stale or stashed realm values — a malicious realm cannot replay an old cur to claim allowed-DAO identity. After the check, rlm.PkgPath() is the authentic immediate caller's realm.

func GetTier

Action
1func GetTier(name string) (Tier, bool)
source

GetTier returns a tier by name. This is a read-only accessor.

Types 5

type ErrMemberAlreadyExists

struct
1type ErrMemberAlreadyExists struct {
2	Tier string
3}
source

Methods on ErrMemberAlreadyExists

func Error

method on ErrMemberAlreadyExists
1func (e *ErrMemberAlreadyExists) Error() string
source

type MembersByTier

struct
1type MembersByTier struct {
2	*bptree.BPTree // tier name -> address -> member
3}
source

MembersByTier contains all `Member`s indexed by their Address.

Methods on MembersByTier

func DeleteAll

method on MembersByTier
1func (mbt MembersByTier) DeleteAll()
source

func GetMember

method on MembersByTier
1func (mbt MembersByTier) GetMember(addr address) (m *Member, t string)
source

GetMember iterate over all tiers to try to find a member by its address. The tier ID is also returned if the Member is found.

func GetTierSize

method on MembersByTier
1func (mbt MembersByTier) GetTierSize(tn string) int
source

GetTierSize tries to get how many members are on the specified tier. If the tier does not exists, it returns 0.

func GetTotalPower

method on MembersByTier
1func (mbt MembersByTier) GetTotalPower() float64
source

GetTotalPower obtains the total voting power from all the specified tiers.

func RemoveMember

method on MembersByTier
1func (mbt MembersByTier) RemoveMember(addr address) (t string)
source

RemoveMember removes a member from any tier

func SetMember

method on MembersByTier
1func (mbt MembersByTier) SetMember(tier string, addr address, member *Member) error
source

SetMember adds a new member to the specified tier. The tier index is created on the fly if it does not exists.

func SetTier

method on MembersByTier
1func (mbt MembersByTier) SetTier(tier string) error
source

type Tier

struct
 1type Tier struct {
 2	// BasePower defines the standard voting power for the members on this tier.
 3	BasePower float64
 4
 5	// InvitationPoints defines how many invitation points users on that tier will receive.
 6	InvitationPoints int
 7
 8	// MaxSize calculates the max amount of members expected to be on this tier.
 9	MaxSize func(membersByTier MembersByTier, tiersByName TiersByName) int
10
11	// MinSize calculates the min amount of members expected to be on this tier.
12	MinSize func(membersByTier MembersByTier, tiersByName TiersByName) int
13
14	// PowerHandler calculates what is the final power of this tier after taking into account Members by other tiers.
15	PowerHandler func(membersByTier MembersByTier, tiersByName TiersByName) float64
16}
source

type TiersByName

struct
1type TiersByName struct {
2	*bptree.BPTree // *bptree.BPTree[string]Tier
3}
source

TiersByName contains all tier objects indexed by its name.

Methods on TiersByName

func GetTier

method on TiersByName
1func (tbn TiersByName) GetTier(tn string) (Tier, bool)
source

GetTier obtains a Tier struct by its name. It returns false if the Tier is not found.

Imports 14

Source Files 8