@river-build/sdk
Version:
For more details, visit the following resources:
66 lines • 2.5 kB
TypeScript
import { PersistedObservable } from '../../../observable/persistedObservable';
import type { Store } from '../../../store/store';
import type { RiverConnection } from '../../river-connection/riverConnection';
import { MembershipOp } from '@river-build/proto';
export type MemberModel = {
/**
* The store id of the member.
* @internal
*/
id: string;
/** The id of the user. */
userId: string;
/** The id of the stream where the data belongs to. */
streamId: string;
/** Whether the SyncAgent has loaded this data. */
initialized: boolean;
/** Username of the member. */
username: string;
/** Whether the username has been confirmed by the River node. */
isUsernameConfirmed: boolean;
/** Whether the username is encrypted. */
isUsernameEncrypted: boolean;
/** Display name of the member. */
displayName: string;
/** Whether the display name is encrypted. */
isDisplayNameEncrypted?: boolean;
/**
* ENS address of the member.
* Should not be trusted, as it can be spoofed.
* You should be validating it.
*/
ensAddress?: string;
/**
* {@link NftModel} of the member.
* Should not be trusted, as it can be spoofed.
* You should be validating it.
*/
nft?: NftModel;
/** {@link MembershipOp} of the member. */
membership?: MembershipOp;
};
export type NftModel = {
/** The contract address of the NFT. */
contractAddress: string;
/** The token id of the NFT. */
tokenId: string;
/** The chain id of the NFT. */
chainId: number;
};
export declare class Member extends PersistedObservable<MemberModel> {
private userId;
protected riverConnection: RiverConnection;
constructor(userId: string, streamId: string, riverConnection: RiverConnection, store: Store);
onStreamInitialized(streamId: string): void;
onStreamUsernameUpdated(streamId: string, userId: string): void;
onStreamNftUpdated: (streamId: string, userId: string) => void;
onStreamEnsAddressUpdated: (streamId: string, userId: string) => void;
onStreamDisplayNameUpdated: (streamId: string, userId: string) => void;
onStreamMembershipUpdated: (streamId: string, userId: string, membership: MembershipOp) => void;
get username(): string;
get displayName(): string;
get ensAddress(): string | undefined;
get nft(): NftModel | undefined;
get membership(): MembershipOp | undefined;
}
//# sourceMappingURL=member.d.ts.map