UNPKG

@wasserstoff/tribes-sdk

Version:

SDK for integrating with Tribes by Astrix platform on any EVM compatible chain

146 lines (145 loc) 4.99 kB
import { BaseModule } from '../core/BaseModule'; import { CreateTribeParams, UpdateTribeParams, UpdateTribeConfigParams, JoinTribeParams, RequestToJoinTribeParams, JoinTribeWithCodeParams, ManageMemberParams, CreateInviteCodeParams, TribeDetails, MemberStatus } from '../types/tribes'; /** * Module for managing tribes and tribe membership */ export declare class TribesModule extends BaseModule { /** * Get the TribeController contract * @param useSigner Whether to use the signer */ private getTribeControllerContract; /** * Create a new tribe * @param params Tribe creation parameters * @returns Tribe ID of the newly created tribe */ createTribe(params: CreateTribeParams): Promise<number>; /** * Update tribe configuration * @param params Tribe configuration update parameters * @returns Transaction hash */ updateTribeConfig(params: UpdateTribeConfigParams): Promise<string>; /** * Update tribe metadata and whitelist * @param params Tribe update parameters * @returns Transaction hash */ updateTribe(params: UpdateTribeParams): Promise<string>; /** * Join a tribe * @param params Join tribe parameters * @returns Transaction hash */ joinTribe(params: JoinTribeParams): Promise<string>; /** * Request to join a private tribe * @param params Request to join parameters * @returns Transaction hash */ requestToJoinTribe(params: RequestToJoinTribeParams): Promise<string>; /** * Join a tribe using an invite code * @param params Join with code parameters * @returns Transaction hash */ joinTribeWithCode(params: JoinTribeWithCodeParams): Promise<string>; /** * Approve a member's request to join * @param params Manage member parameters * @returns Transaction hash */ approveMember(params: ManageMemberParams): Promise<string>; /** * Remove a member from a tribe * @param params Manage member parameters * @returns Transaction hash */ removeMember(params: ManageMemberParams): Promise<string>; /** * Ban a member from a tribe * @param params Manage member parameters * @returns Transaction hash */ banMember(params: ManageMemberParams): Promise<string>; /** * Create an invite code for a tribe * @param params Create invite code parameters * @returns Transaction hash */ createInviteCode(params: CreateInviteCodeParams): Promise<string>; /** * Get tribe details * @param tribeId Tribe ID * @returns Tribe details object */ getTribeDetails(tribeId: number): Promise<TribeDetails>; /** * Check if an address is a member of a tribe * @param tribeId Tribe ID * @param address Address to check * @returns Member status */ getMemberStatus(tribeId: number, address: string): Promise<MemberStatus>; /** * Get all members of a tribe * @param tribeId Tribe ID * @returns Array of member addresses */ getMembers(tribeId: number): Promise<string[]>; /** * Get all tribes a user is a member of * @param address User address * @returns Array of tribe IDs */ getUserTribes(address: string): Promise<number[]>; /** * Check if an invite code is valid * @param tribeId Tribe ID * @param code Invite code * @returns True if the code is valid */ isInviteCodeValid(tribeId: number, code: string): Promise<boolean>; /** * Get all tribes with pagination * @param offset The starting index for pagination * @param limit The maximum number of tribes to return * @returns Object containing tribe IDs and total count */ getAllTribes(offset?: number, limit?: number): Promise<{ tribeIds: number[]; total: number; }>; /** * Check if a tribe exists * @param tribeId Tribe ID to check * @returns True if the tribe exists */ tribeExists(tribeId: number): Promise<boolean>; /** * Get the total number of tribes * @returns Total number of tribes */ getTribeCount(): Promise<number>; /** * Check if a user is an active member of a tribe * @param tribeId Tribe ID * @param address User address * @returns True if the user is an active member */ isActiveMember(tribeId: number, address: string): Promise<boolean>; /** * Find the first tribe the user is a member of, useful for testing * @param address User address * @returns Tribe ID of the first tribe the user is a member of, or 0 if none */ findFirstActiveTribe(address: string): Promise<number>; /** * Check if a user can post in a tribe * @param tribeId Tribe ID * @param address User address * @returns True if the user can post in the tribe */ canPostInTribe(tribeId: number, address: string): Promise<boolean>; }