UNPKG

@river-build/sdk

Version:

For more details, visit the following resources:

43 lines 1.99 kB
import { removeCommon } from './utils'; export class StreamStateView_Members_Solicitations { streamId; constructor(streamId) { this.streamId = streamId; } initSolicitations(members, sigBundle, encryptionEmitter) { encryptionEmitter?.emit('initKeySolicitations', this.streamId, members.map((member) => ({ userId: member.userId, userAddress: member.userAddress, solicitations: member.solicitations, })), sigBundle); } applySolicitation(user, eventId, solicitation, sigBundle, encryptionEmitter) { user.solicitations = user.solicitations.filter((x) => x.deviceKey !== solicitation.deviceKey); const newSolicitation = { deviceKey: solicitation.deviceKey, fallbackKey: solicitation.fallbackKey, isNewDevice: solicitation.isNewDevice, sessionIds: solicitation.sessionIds.toSorted(), srcEventId: eventId, }; user.solicitations.push(newSolicitation); encryptionEmitter?.emit('newKeySolicitation', this.streamId, user.userId, user.userAddress, newSolicitation, sigBundle); } applyFulfillment(user, fulfillment, sigBundle, encryptionEmitter) { const index = user.solicitations.findIndex((x) => x.deviceKey === fulfillment.deviceKey); if (index === undefined || index === -1) { return; } const prev = user.solicitations[index]; const newEvent = { deviceKey: prev.deviceKey, fallbackKey: prev.fallbackKey, isNewDevice: false, sessionIds: [...removeCommon(prev.sessionIds, fulfillment.sessionIds.toSorted())], srcEventId: prev.srcEventId, }; user.solicitations[index] = newEvent; encryptionEmitter?.emit('updatedKeySolicitation', this.streamId, user.userId, user.userAddress, newEvent, sigBundle); } } //# sourceMappingURL=streamStateView_Members_Solicitations.js.map