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)