use sui::table;
Explore this module further in the Mover Registry: @sage/shared

Structs

Member

Data that represents a single member of a larger organization.
public struct Member has store

Membership

Table of individual members of an organization.
public struct Membership has store

Constants

Represents a wallet address.
const WALLET: u8 = 0;
Represents an object address.
const OBJECT: u8 = 1;
Represents a member addition.
const MEMBER_ADD: u8 = 10;
Represents a member removal.
const MEMBER_REMOVE: u8 = 11;
Error code when an address is already a member of an organization.
const EIsMember: u64 = 370;
Error code when an address is not a member of an organization.
const EIsNotMember: u64 = 371;

Functions

assert_is_member

Aborts with EIsNotMember if the address is not a member.
public fun assert_is_member(membership: &Membership, member_address: address)

create

Creates a new Membership instance.
public fun create(ctx: &mut TxContext): Membership

get_count

Get number of times the Member has joined the Membership.
public fun get_count(membership: &Membership, member_address: address): u64

get_created_at

Get timestamp of when the Member first joined.
public fun get_created_at(membership: &Membership, member_address: address): u64

get_member_length

Get the number of current Members.
public fun get_member_length(membership: &Membership): u64

get_type

Get whether the Member is an object or a wallet.
public fun get_type(membership: &Membership, member_address: address): u8

get_updated_at

Get timestamp of when the Membership was most recently updated.
public fun get_updated_at(membership: &Membership, member_address: address): u64

is_member

Returns true or false depending on whether the address is a Member.
public fun is_member(membership: &Membership, member_address: address): bool

object_join

Join a Membership as an object.
public fun object_join(membership: &mut Membership, obj_address: address, timestamp: u64): (u8, u8, u64)

object_leave

Leave a Membership as an object.
public fun object_leave(membership: &mut Membership, obj_address: address, timestamp: u64): (u8, u8, u64)

wallet_join

Join a Membership as a wallet.
public fun wallet_join(membership: &mut Membership, user_address: address, timestamp: u64 ): (u8, u8, u64)

wallet_leave

Leave a Membership as a wallet.
public fun wallet_leave(membership: &mut Membership, user_address: address, timestamp: u64 ): (u8, u8, u64)