UNPKG

@river-build/sdk

Version:

For more details, visit the following resources:

97 lines 3.1 kB
import { addressFromUserId } from '../../../id'; export class Myself { member; streamId; riverConnection; constructor(member, streamId, riverConnection) { this.member = member; this.streamId = streamId; this.riverConnection = riverConnection; } get userId() { return this.member.data.userId; } get username() { return this.member.username; } get displayName() { return this.member.displayName; } get ensAddress() { return this.member.ensAddress; } get nft() { return this.member.nft; } get membership() { return this.member.membership; } async setUsername(username) { const streamId = this.streamId; const oldData = { username: this.member.data.username, isUsernameConfirmed: this.member.data.isUsernameConfirmed, isUsernameEncrypted: this.member.data.isUsernameEncrypted, }; this.member.setData({ username, isUsernameConfirmed: true, isUsernameEncrypted: false }); return this.riverConnection .withStream(streamId) .call((client) => client.setUsername(streamId, username)) .catch((e) => { this.member.setData(oldData); throw e; }); } async setDisplayName(displayName) { const streamId = this.streamId; const oldData = { displayName: this.member.data.displayName, isDisplayNameEncrypted: this.member.data.isDisplayNameEncrypted, }; this.member.setData({ displayName, isDisplayNameEncrypted: false }); return this.riverConnection .withStream(streamId) .call((client) => client.setDisplayName(streamId, displayName)) .catch((e) => { this.member.setData(oldData); throw e; }); } async setEnsAddress(ensAddress) { const streamId = this.streamId; const oldData = { ensAddress: this.member.data.ensAddress, }; this.member.setData({ ensAddress }); const bytes = addressFromUserId(ensAddress); return this.riverConnection .withStream(streamId) .call((client) => client.setEnsAddress(streamId, bytes)) .catch((e) => { this.member.setData(oldData); throw e; }); } async setNft(nft) { const streamId = this.streamId; const oldData = { nft: this.member.data.nft, }; const { contractAddress, tokenId, chainId } = nft; this.member.setData({ nft: { contractAddress, tokenId, chainId, }, }); return this.riverConnection .withStream(streamId) .call((client) => client.setNft(streamId, nft.tokenId, nft.chainId, nft.contractAddress)) .catch((e) => { this.member.setData(oldData); throw e; }); } } //# sourceMappingURL=myself.js.map