@towns-labs/sdk 2.0.11 → 2.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +13 -31
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +113 -328
- package/dist/client.js.map +1 -1
- package/dist/clientDecryptionExtensions.d.ts.map +1 -1
- package/dist/clientDecryptionExtensions.js +10 -28
- package/dist/clientDecryptionExtensions.js.map +1 -1
- package/dist/createApp.d.ts +1 -1
- package/dist/createApp.d.ts.map +1 -1
- package/dist/createApp.js +6 -2
- package/dist/createApp.js.map +1 -1
- package/dist/id.d.ts +1 -17
- package/dist/id.d.ts.map +1 -1
- package/dist/id.js +1 -53
- package/dist/id.js.map +1 -1
- package/dist/index.d.ts +0 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -22
- package/dist/index.js.map +1 -1
- package/dist/migrations/snapshotMigration0001.d.ts.map +1 -1
- package/dist/migrations/snapshotMigration0001.js +0 -4
- package/dist/migrations/snapshotMigration0001.js.map +1 -1
- package/dist/migrations/snapshotMigration0002.d.ts.map +1 -1
- package/dist/migrations/snapshotMigration0002.js +1 -19
- package/dist/migrations/snapshotMigration0002.js.map +1 -1
- package/dist/migrations/snapshotMigration0004.d.ts.map +1 -1
- package/dist/migrations/snapshotMigration0004.js +1 -27
- package/dist/migrations/snapshotMigration0004.js.map +1 -1
- package/dist/migrations/snapshotMigration0005.d.ts.map +1 -1
- package/dist/migrations/snapshotMigration0005.js +1 -26
- package/dist/migrations/snapshotMigration0005.js.map +1 -1
- package/dist/notificationsClient.d.ts +1 -5
- package/dist/notificationsClient.d.ts.map +1 -1
- package/dist/notificationsClient.js +2 -103
- package/dist/notificationsClient.js.map +1 -1
- package/dist/persistenceStore.d.ts.map +1 -1
- package/dist/persistenceStore.js +6 -18
- package/dist/persistenceStore.js.map +1 -1
- package/dist/streamEvents.d.ts +0 -6
- package/dist/streamEvents.d.ts.map +1 -1
- package/dist/streamStateView.d.ts +0 -9
- package/dist/streamStateView.d.ts.map +1 -1
- package/dist/streamStateView.js +3 -64
- package/dist/streamStateView.js.map +1 -1
- package/dist/streamStateView_MemberMetadata.d.ts +3 -36
- package/dist/streamStateView_MemberMetadata.d.ts.map +1 -1
- package/dist/streamStateView_MemberMetadata.js +3 -83
- package/dist/streamStateView_MemberMetadata.js.map +1 -1
- package/dist/streamStateView_Members.d.ts +1 -5
- package/dist/streamStateView_Members.d.ts.map +1 -1
- package/dist/streamStateView_Members.js +4 -91
- package/dist/streamStateView_Members.js.map +1 -1
- package/dist/streamStateView_User.d.ts.map +1 -1
- package/dist/streamStateView_User.js +1 -0
- package/dist/streamStateView_User.js.map +1 -1
- package/dist/streamStateView_UserInbox.d.ts.map +1 -1
- package/dist/streamStateView_UserInbox.js +1 -0
- package/dist/streamStateView_UserInbox.js.map +1 -1
- package/dist/streamStateView_UserMetadata.d.ts.map +1 -1
- package/dist/streamStateView_UserMetadata.js +1 -0
- package/dist/streamStateView_UserMetadata.js.map +1 -1
- package/dist/streamStateView_UserSettings.d.ts.map +1 -1
- package/dist/streamStateView_UserSettings.js +9 -1
- package/dist/streamStateView_UserSettings.js.map +1 -1
- package/dist/streamUtils.d.ts.map +1 -1
- package/dist/streamUtils.js +0 -8
- package/dist/streamUtils.js.map +1 -1
- package/dist/sync/SyncedStreamsControllerLite.d.ts.map +1 -1
- package/dist/sync/SyncedStreamsControllerLite.js +7 -11
- package/dist/sync/SyncedStreamsControllerLite.js.map +1 -1
- package/dist/sync-agent/db.d.ts +1 -6
- package/dist/sync-agent/db.d.ts.map +1 -1
- package/dist/sync-agent/db.js +0 -10
- package/dist/sync-agent/db.js.map +1 -1
- package/dist/sync-agent/gdms/gdms.d.ts +5 -6
- package/dist/sync-agent/gdms/gdms.d.ts.map +1 -1
- package/dist/sync-agent/gdms/gdms.js +12 -27
- package/dist/sync-agent/gdms/gdms.js.map +1 -1
- package/dist/sync-agent/gdms/models/gdm.d.ts +10 -8
- package/dist/sync-agent/gdms/models/gdm.d.ts.map +1 -1
- package/dist/sync-agent/gdms/models/gdm.js +29 -34
- package/dist/sync-agent/gdms/models/gdm.js.map +1 -1
- package/dist/sync-agent/members/members.d.ts +6 -18
- package/dist/sync-agent/members/members.d.ts.map +1 -1
- package/dist/sync-agent/members/members.js +25 -124
- package/dist/sync-agent/members/members.js.map +1 -1
- package/dist/sync-agent/members/models/member.d.ts +3 -45
- package/dist/sync-agent/members/models/member.d.ts.map +1 -1
- package/dist/sync-agent/members/models/member.js +15 -114
- package/dist/sync-agent/members/models/member.js.map +1 -1
- package/dist/sync-agent/members/models/myself.d.ts +1 -11
- package/dist/sync-agent/members/models/myself.d.ts.map +1 -1
- package/dist/sync-agent/members/models/myself.js +1 -84
- package/dist/sync-agent/members/models/myself.js.map +1 -1
- package/dist/sync-agent/river-connection/riverConnection.d.ts +6 -17
- package/dist/sync-agent/river-connection/riverConnection.d.ts.map +1 -1
- package/dist/sync-agent/river-connection/riverConnection.js +30 -37
- package/dist/sync-agent/river-connection/riverConnection.js.map +1 -1
- package/dist/sync-agent/syncAgent.d.ts +11 -22
- package/dist/sync-agent/syncAgent.d.ts.map +1 -1
- package/dist/sync-agent/syncAgent.js +3 -20
- package/dist/sync-agent/syncAgent.js.map +1 -1
- package/dist/sync-agent/user/models/userInbox.d.ts +4 -17
- package/dist/sync-agent/user/models/userInbox.d.ts.map +1 -1
- package/dist/sync-agent/user/models/userInbox.js +14 -61
- package/dist/sync-agent/user/models/userInbox.js.map +1 -1
- package/dist/sync-agent/user/models/userMemberships.d.ts +6 -22
- package/dist/sync-agent/user/models/userMemberships.d.ts.map +1 -1
- package/dist/sync-agent/user/models/userMemberships.js +16 -68
- package/dist/sync-agent/user/models/userMemberships.js.map +1 -1
- package/dist/sync-agent/user/models/userMetadata.d.ts +4 -17
- package/dist/sync-agent/user/models/userMetadata.d.ts.map +1 -1
- package/dist/sync-agent/user/models/userMetadata.js +14 -61
- package/dist/sync-agent/user/models/userMetadata.js.map +1 -1
- package/dist/sync-agent/user/models/userSettings.d.ts +5 -8
- package/dist/sync-agent/user/models/userSettings.d.ts.map +1 -1
- package/dist/sync-agent/user/models/userSettings.js +15 -42
- package/dist/sync-agent/user/models/userSettings.js.map +1 -1
- package/dist/sync-agent/user/user.d.ts +2 -6
- package/dist/sync-agent/user/user.d.ts.map +1 -1
- package/dist/sync-agent/user/user.js +9 -20
- package/dist/sync-agent/user/user.js.map +1 -1
- package/dist/syncedStreamsExtension.d.ts.map +1 -1
- package/dist/syncedStreamsExtension.js +10 -22
- package/dist/syncedStreamsExtension.js.map +1 -1
- package/dist/syncedStreamsLoop.d.ts.map +1 -1
- package/dist/syncedStreamsLoop.js +4 -18
- package/dist/syncedStreamsLoop.js.map +1 -1
- package/dist/tests/bob_testUtils.d.ts.map +1 -1
- package/dist/tests/bob_testUtils.js +35 -69
- package/dist/tests/bob_testUtils.js.map +1 -1
- package/dist/tests/multi_ne/aliceAndFriends10for10.test.js +1 -1
- package/dist/tests/multi_ne/aliceAndFriends10for10.test.js.map +1 -1
- package/dist/tests/multi_ne/aliceAndFriendslongAndRandom.test.js +1 -1
- package/dist/tests/multi_ne/aliceAndFriendslongAndRandom.test.js.map +1 -1
- package/dist/tests/multi_ne/bobFlushes.test.js.map +1 -1
- package/dist/tests/multi_ne/channels.test.js +6 -9
- package/dist/tests/multi_ne/channels.test.js.map +1 -1
- package/dist/tests/multi_ne/client.test.js +24 -98
- package/dist/tests/multi_ne/client.test.js.map +1 -1
- package/dist/tests/multi_ne/clientCrypto.test.js +3 -3
- package/dist/tests/multi_ne/clientCrypto.test.js.map +1 -1
- package/dist/tests/multi_ne/clientDecryptionExtensions.test.js +12 -47
- package/dist/tests/multi_ne/clientDecryptionExtensions.test.js.map +1 -1
- package/dist/tests/multi_ne/ephemeralEvents.test.js +1 -1
- package/dist/tests/multi_ne/ephemeralEvents.test.js.map +1 -1
- package/dist/tests/multi_ne/id.test.js +6 -20
- package/dist/tests/multi_ne/id.test.js.map +1 -1
- package/dist/tests/multi_ne/media.test.js +20 -61
- package/dist/tests/multi_ne/media.test.js.map +1 -1
- package/dist/tests/multi_ne/memberMetadata.test.d.ts +0 -3
- package/dist/tests/multi_ne/memberMetadata.test.d.ts.map +1 -1
- package/dist/tests/multi_ne/memberMetadata.test.js +14 -582
- package/dist/tests/multi_ne/memberMetadata.test.js.map +1 -1
- package/dist/tests/multi_ne/outboundGroupSession.test.js +15 -13
- package/dist/tests/multi_ne/outboundGroupSession.test.js.map +1 -1
- package/dist/tests/multi_ne/restart.test.js +11 -34
- package/dist/tests/multi_ne/restart.test.js.map +1 -1
- package/dist/tests/multi_ne/sign.test.js +2 -2
- package/dist/tests/multi_ne/sign.test.js.map +1 -1
- package/dist/tests/multi_ne/streamMembershipHardening.test.js +0 -3
- package/dist/tests/multi_ne/streamMembershipHardening.test.js.map +1 -1
- package/dist/tests/multi_ne/streamRpcClient.test.js +58 -349
- package/dist/tests/multi_ne/streamRpcClient.test.js.map +1 -1
- package/dist/tests/multi_ne/streamRpcClientSync.test.js +63 -124
- package/dist/tests/multi_ne/streamRpcClientSync.test.js.map +1 -1
- package/dist/tests/multi_ne/streamStateView_User.test.js +23 -20
- package/dist/tests/multi_ne/streamStateView_User.test.js.map +1 -1
- package/dist/tests/{multi/spaceDapp.test.d.ts → multi_ne/sync-agent/gdms.test.d.ts} +1 -1
- package/dist/tests/multi_ne/sync-agent/gdms.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/gdms.test.js +34 -0
- package/dist/tests/multi_ne/sync-agent/gdms.test.js.map +1 -0
- package/dist/tests/{multi/legacySpace.test.d.ts → multi_ne/sync-agent/member.test.d.ts} +1 -1
- package/dist/tests/multi_ne/sync-agent/member.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/member.test.js +31 -0
- package/dist/tests/multi_ne/sync-agent/member.test.js.map +1 -0
- package/dist/tests/{multi/disableSpace.test.d.ts → multi_ne/sync-agent/members.test.d.ts} +1 -1
- package/dist/tests/multi_ne/sync-agent/members.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/members.test.js +40 -0
- package/dist/tests/multi_ne/sync-agent/members.test.js.map +1 -0
- package/dist/tests/multi_ne/sync-agent/riverConnection.test.d.ts +5 -0
- package/dist/tests/multi_ne/sync-agent/riverConnection.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/riverConnection.test.js +39 -0
- package/dist/tests/multi_ne/sync-agent/riverConnection.test.js.map +1 -0
- package/dist/tests/multi_ne/sync-agent/streams.test.d.ts +5 -0
- package/dist/tests/multi_ne/sync-agent/streams.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/streams.test.js +27 -0
- package/dist/tests/multi_ne/sync-agent/streams.test.js.map +1 -0
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.d.ts +5 -0
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.js +66 -0
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.js.map +1 -0
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.d.ts +5 -0
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.js +117 -0
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.js.map +1 -0
- package/dist/tests/multi_ne/sync-agent/timeline.test.d.ts +2 -0
- package/dist/tests/multi_ne/sync-agent/timeline.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/timeline.test.js +155 -0
- package/dist/tests/multi_ne/sync-agent/timeline.test.js.map +1 -0
- package/dist/tests/multi_ne/sync-agent/user.test.d.ts +5 -0
- package/dist/tests/multi_ne/sync-agent/user.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/user.test.js +53 -0
- package/dist/tests/multi_ne/sync-agent/user.test.js.map +1 -0
- package/dist/tests/multi_ne/syncWithBlocks.test.d.ts +3 -0
- package/dist/tests/multi_ne/syncWithBlocks.test.d.ts.map +1 -1
- package/dist/tests/multi_ne/syncWithBlocks.test.js +47 -77
- package/dist/tests/multi_ne/syncWithBlocks.test.js.map +1 -1
- package/dist/tests/multi_ne/syncedStream.test.js +1 -1
- package/dist/tests/multi_ne/syncedStream.test.js.map +1 -1
- package/dist/tests/multi_ne/syncedStreams.test.js +1 -1
- package/dist/tests/multi_ne/syncedStreams.test.js.map +1 -1
- package/dist/tests/multi_ne/userInboxMessage.test.js +4 -4
- package/dist/tests/multi_ne/userInboxMessage.test.js.map +1 -1
- package/dist/tests/multi_ne/userSettings.test.js +3 -16
- package/dist/tests/multi_ne/userSettings.test.js.map +1 -1
- package/dist/tests/multi_ne/workflows.test.js +22 -50
- package/dist/tests/multi_ne/workflows.test.js.map +1 -1
- package/dist/tests/testDriver_testUtils.d.ts.map +1 -1
- package/dist/tests/testDriver_testUtils.js +6 -22
- package/dist/tests/testDriver_testUtils.js.map +1 -1
- package/dist/tests/testUtils.d.ts +3 -104
- package/dist/tests/testUtils.d.ts.map +1 -1
- package/dist/tests/testUtils.js +6 -625
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/unit/snapshotMigration0001.test.js +4 -20
- package/dist/tests/unit/snapshotMigration0001.test.js.map +1 -1
- package/dist/tests/unit/snapshotMigration0004.test.js +5 -43
- package/dist/tests/unit/snapshotMigration0004.test.js.map +1 -1
- package/dist/tests/unit/snapshotMigration0005.test.js +5 -43
- package/dist/tests/unit/snapshotMigration0005.test.js.map +1 -1
- package/dist/tests/unit/streamUtils.test.js +21 -22
- package/dist/tests/unit/streamUtils.test.js.map +1 -1
- package/dist/tests/unit/tags.test.js +5 -7
- package/dist/tests/unit/tags.test.js.map +1 -1
- package/dist/types.d.ts +1 -21
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -231
- package/dist/types.js.map +1 -1
- package/dist/views/models/timelineEvent.d.ts.map +1 -1
- package/dist/views/models/timelineEvent.js +132 -157
- package/dist/views/models/timelineEvent.js.map +1 -1
- package/dist/views/models/timelineTypes.d.ts +51 -30
- package/dist/views/models/timelineTypes.d.ts.map +1 -1
- package/dist/views/models/timelineTypes.js +3 -4
- package/dist/views/models/timelineTypes.js.map +1 -1
- package/dist/views/streams/timelines.d.ts +1 -1
- package/dist/views/streams/timelines.d.ts.map +1 -1
- package/dist/views/streams/timelines.js +3 -3
- package/dist/views/streams/timelines.js.map +1 -1
- package/dist/views/streams/userInboxStreams.d.ts +3 -0
- package/dist/views/streams/userInboxStreams.d.ts.map +1 -1
- package/dist/views/streams/userInboxStreams.js +15 -4
- package/dist/views/streams/userInboxStreams.js.map +1 -1
- package/dist/views/streams/userMetadataStreams.d.ts +3 -0
- package/dist/views/streams/userMetadataStreams.d.ts.map +1 -1
- package/dist/views/streams/userMetadataStreams.js +15 -4
- package/dist/views/streams/userMetadataStreams.js.map +1 -1
- package/dist/views/streams/userSettingsStreams.d.ts +3 -0
- package/dist/views/streams/userSettingsStreams.d.ts.map +1 -1
- package/dist/views/streams/userSettingsStreams.js +17 -6
- package/dist/views/streams/userSettingsStreams.js.map +1 -1
- package/dist/views/streams/userStreamsView.d.ts +3 -0
- package/dist/views/streams/userStreamsView.d.ts.map +1 -1
- package/dist/views/streams/userStreamsView.js +21 -10
- package/dist/views/streams/userStreamsView.js.map +1 -1
- package/dist/views/streamsView.d.ts +0 -6
- package/dist/views/streamsView.d.ts.map +1 -1
- package/dist/views/streamsView.js +0 -11
- package/dist/views/streamsView.js.map +1 -1
- package/dist/views/transforms/dmsAndGdmsTransform.d.ts +0 -2
- package/dist/views/transforms/dmsAndGdmsTransform.d.ts.map +1 -1
- package/dist/views/transforms/dmsAndGdmsTransform.js +1 -26
- package/dist/views/transforms/dmsAndGdmsTransform.js.map +1 -1
- package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.d.ts +1 -2
- package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.d.ts.map +1 -1
- package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.js +2 -5
- package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.js.map +1 -1
- package/dist/views/transforms/spaceIdsTransform.d.ts +1 -1
- package/dist/views/transforms/spaceIdsTransform.d.ts.map +1 -1
- package/dist/views/transforms/spaceIdsTransform.js +3 -10
- package/dist/views/transforms/spaceIdsTransform.js.map +1 -1
- package/dist/views/transforms/spaceMentionsTransform.d.ts.map +1 -1
- package/dist/views/transforms/spaceMentionsTransform.js +13 -14
- package/dist/views/transforms/spaceMentionsTransform.js.map +1 -1
- package/dist/views/transforms/spaceUnreadsTransform.d.ts.map +1 -1
- package/dist/views/transforms/spaceUnreadsTransform.js +21 -22
- package/dist/views/transforms/spaceUnreadsTransform.js.map +1 -1
- package/dist/views/transforms/unreadMarkersTransform.js +2 -4
- package/dist/views/transforms/unreadMarkersTransform.js.map +1 -1
- package/package.json +10 -9
- package/dist/memberMetadata_DisplayNames.d.ts +0 -26
- package/dist/memberMetadata_DisplayNames.d.ts.map +0 -1
- package/dist/memberMetadata_DisplayNames.js +0 -95
- package/dist/memberMetadata_DisplayNames.js.map +0 -1
- package/dist/memberMetadata_EnsAddresses.d.ts +0 -25
- package/dist/memberMetadata_EnsAddresses.d.ts.map +0 -1
- package/dist/memberMetadata_EnsAddresses.js +0 -86
- package/dist/memberMetadata_EnsAddresses.js.map +0 -1
- package/dist/memberMetadata_Nft.d.ts +0 -31
- package/dist/memberMetadata_Nft.d.ts.map +0 -1
- package/dist/memberMetadata_Nft.js +0 -95
- package/dist/memberMetadata_Nft.js.map +0 -1
- package/dist/memberMetadata_Usernames.d.ts +0 -35
- package/dist/memberMetadata_Usernames.d.ts.map +0 -1
- package/dist/memberMetadata_Usernames.js +0 -162
- package/dist/memberMetadata_Usernames.js.map +0 -1
- package/dist/streamStateView_Channel.d.ts +0 -16
- package/dist/streamStateView_Channel.d.ts.map +0 -1
- package/dist/streamStateView_Channel.js +0 -76
- package/dist/streamStateView_Channel.js.map +0 -1
- package/dist/streamStateView_DMChannel.d.ts +0 -25
- package/dist/streamStateView_DMChannel.d.ts.map +0 -1
- package/dist/streamStateView_DMChannel.js +0 -114
- package/dist/streamStateView_DMChannel.js.map +0 -1
- package/dist/streamStateView_Space.d.ts +0 -31
- package/dist/streamStateView_Space.d.ts.map +0 -1
- package/dist/streamStateView_Space.js +0 -193
- package/dist/streamStateView_Space.js.map +0 -1
- package/dist/sync-agent/dms/dms.d.ts +0 -24
- package/dist/sync-agent/dms/dms.d.ts.map +0 -1
- package/dist/sync-agent/dms/dms.js +0 -60
- package/dist/sync-agent/dms/dms.js.map +0 -1
- package/dist/sync-agent/dms/models/dm.d.ts +0 -74
- package/dist/sync-agent/dms/models/dm.d.ts.map +0 -1
- package/dist/sync-agent/dms/models/dm.js +0 -149
- package/dist/sync-agent/dms/models/dm.js.map +0 -1
- package/dist/sync-agent/river-connection/models/transactionalClient.d.ts +0 -11
- package/dist/sync-agent/river-connection/models/transactionalClient.d.ts.map +0 -1
- package/dist/sync-agent/river-connection/models/transactionalClient.js +0 -14
- package/dist/sync-agent/river-connection/models/transactionalClient.js.map +0 -1
- package/dist/sync-agent/spaces/models/channel.d.ts +0 -121
- package/dist/sync-agent/spaces/models/channel.d.ts.map +0 -1
- package/dist/sync-agent/spaces/models/channel.js +0 -182
- package/dist/sync-agent/spaces/models/channel.js.map +0 -1
- package/dist/sync-agent/spaces/models/space.d.ts +0 -57
- package/dist/sync-agent/spaces/models/space.d.ts.map +0 -1
- package/dist/sync-agent/spaces/models/space.js +0 -125
- package/dist/sync-agent/spaces/models/space.js.map +0 -1
- package/dist/sync-agent/spaces/spaces.d.ts +0 -28
- package/dist/sync-agent/spaces/spaces.d.ts.map +0 -1
- package/dist/sync-agent/spaces/spaces.js +0 -71
- package/dist/sync-agent/spaces/spaces.js.map +0 -1
- package/dist/tests/multi/channelSpaceSettings.test.d.ts +0 -5
- package/dist/tests/multi/channelSpaceSettings.test.d.ts.map +0 -1
- package/dist/tests/multi/channelSpaceSettings.test.js +0 -204
- package/dist/tests/multi/channelSpaceSettings.test.js.map +0 -1
- package/dist/tests/multi/disableChannel.test.d.ts +0 -5
- package/dist/tests/multi/disableChannel.test.d.ts.map +0 -1
- package/dist/tests/multi/disableChannel.test.js +0 -30
- package/dist/tests/multi/disableChannel.test.js.map +0 -1
- package/dist/tests/multi/disableSpace.test.d.ts.map +0 -1
- package/dist/tests/multi/disableSpace.test.js +0 -37
- package/dist/tests/multi/disableSpace.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.js +0 -129
- package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.js +0 -44
- package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.js +0 -125
- package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.js +0 -72
- package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelsWithEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js +0 -57
- package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.js +0 -86
- package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.js +0 -69
- package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.js +0 -145
- package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.js +0 -53
- package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/membershipRenewals.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/membershipRenewals.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/membershipRenewals.test.js +0 -150
- package/dist/tests/multi/entitlements/membershipRenewals.test.js.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.js +0 -131
- package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/spaceWithEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithEntitlements.test.js +0 -109
- package/dist/tests/multi/entitlements/spaceWithEntitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.js +0 -103
- package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.js +0 -84
- package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.js +0 -168
- package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.js +0 -45
- package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.js.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.js +0 -79
- package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.js.map +0 -1
- package/dist/tests/multi/legacySpace.test.d.ts.map +0 -1
- package/dist/tests/multi/legacySpace.test.js +0 -48
- package/dist/tests/multi/legacySpace.test.js.map +0 -1
- package/dist/tests/multi/mediaWithEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/mediaWithEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/mediaWithEntitlements.test.js +0 -152
- package/dist/tests/multi/mediaWithEntitlements.test.js.map +0 -1
- package/dist/tests/multi/membershipManagement.test.d.ts +0 -5
- package/dist/tests/multi/membershipManagement.test.d.ts.map +0 -1
- package/dist/tests/multi/membershipManagement.test.js +0 -76
- package/dist/tests/multi/membershipManagement.test.js.map +0 -1
- package/dist/tests/multi/riverAirdropDapp.test.d.ts +0 -5
- package/dist/tests/multi/riverAirdropDapp.test.d.ts.map +0 -1
- package/dist/tests/multi/riverAirdropDapp.test.js +0 -43
- package/dist/tests/multi/riverAirdropDapp.test.js.map +0 -1
- package/dist/tests/multi/spaceDapp.test.d.ts.map +0 -1
- package/dist/tests/multi/spaceDapp.test.js +0 -61
- package/dist/tests/multi/spaceDapp.test.js.map +0 -1
- package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.d.ts +0 -2
- package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.d.ts.map +0 -1
- package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.js +0 -63
- package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.js.map +0 -1
- package/dist/tests/multi/withEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/withEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/withEntitlements.test.js +0 -125
- package/dist/tests/multi/withEntitlements.test.js.map +0 -1
- package/dist/tests/multi_ne/dms.test.d.ts +0 -5
- package/dist/tests/multi_ne/dms.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/dms.test.js +0 -131
- package/dist/tests/multi_ne/dms.test.js.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.d.ts +0 -5
- package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.js +0 -54
- package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.js.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.d.ts +0 -5
- package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.js +0 -37
- package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.js.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_Nft.test.d.ts +0 -5
- package/dist/tests/multi_ne/memberMetadata_Nft.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_Nft.test.js +0 -49
- package/dist/tests/multi_ne/memberMetadata_Nft.test.js.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_Usernames.test.d.ts +0 -5
- package/dist/tests/multi_ne/memberMetadata_Usernames.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_Usernames.test.js +0 -126
- package/dist/tests/multi_ne/memberMetadata_Usernames.test.js.map +0 -1
- package/dist/tests/multi_ne/space.test.d.ts +0 -5
- package/dist/tests/multi_ne/space.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/space.test.js +0 -284
- package/dist/tests/multi_ne/space.test.js.map +0 -1
- package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.d.ts +0 -6
- package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.js +0 -78
- package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.js.map +0 -1
- package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.d.ts +0 -6
- package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.d.ts.map +0 -1
- package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.js +0 -89
- package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.js.map +0 -1
- package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.d.ts +0 -6
- package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.js +0 -88
- package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.js.map +0 -1
- package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.d.ts +0 -6
- package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.d.ts.map +0 -1
- package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.js +0 -105
- package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.js.map +0 -1
- package/dist/tests/multi_v2/updateRole.test.d.ts +0 -5
- package/dist/tests/multi_v2/updateRole.test.d.ts.map +0 -1
- package/dist/tests/multi_v2/updateRole.test.js +0 -25
- package/dist/tests/multi_v2/updateRole.test.js.map +0 -1
- package/dist/tests/unit/snapshotMigration0002.test.d.ts +0 -2
- package/dist/tests/unit/snapshotMigration0002.test.d.ts.map +0 -1
- package/dist/tests/unit/snapshotMigration0002.test.js +0 -31
- package/dist/tests/unit/snapshotMigration0002.test.js.map +0 -1
- package/dist/views/streams/channelStreams.d.ts +0 -8
- package/dist/views/streams/channelStreams.d.ts.map +0 -1
- package/dist/views/streams/channelStreams.js +0 -9
- package/dist/views/streams/channelStreams.js.map +0 -1
- package/dist/views/streams/dmStreams.d.ts +0 -13
- package/dist/views/streams/dmStreams.d.ts.map +0 -1
- package/dist/views/streams/dmStreams.js +0 -33
- package/dist/views/streams/dmStreams.js.map +0 -1
- package/dist/views/streams/spaceStreams.d.ts +0 -17
- package/dist/views/streams/spaceStreams.d.ts.map +0 -1
- package/dist/views/streams/spaceStreams.js +0 -52
- package/dist/views/streams/spaceStreams.js.map +0 -1
|
@@ -1,94 +1,61 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @group main
|
|
3
3
|
*/
|
|
4
|
-
import { makeEvent, makeEvents
|
|
5
|
-
import { MembershipOp
|
|
4
|
+
import { makeEvent, makeEvents } from '../../sign';
|
|
5
|
+
import { MembershipOp } from '@towns-labs/proto';
|
|
6
6
|
import { bin_equal, dlog } from '@towns-labs/utils';
|
|
7
|
-
import { makeEvent_test, makeRandomUserContext, makeUserContextFromWallet, makeTestRpcClient,
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
7
|
+
import { makeEvent_test, makeRandomUserContext, makeUserContextFromWallet, makeTestRpcClient, TEST_ENCRYPTED_MESSAGE_PROPS, } from '../testUtils';
|
|
8
|
+
import { makeUniqueGDMChannelStreamId, makeUserStreamId, streamIdToBytes, userIdFromAddress, } from '../../id';
|
|
9
|
+
import { make_GDMChannelPayload_Inception, make_GDMChannelPayload_Message, make_MemberPayload_Membership2, make_UserPayload_Inception, make_UserPayload_UserMembership, } from '../../types';
|
|
10
10
|
import { bobTalksToHimself } from '../bob_testUtils';
|
|
11
11
|
import { ethers } from 'ethers';
|
|
12
12
|
import { makeSignerContext } from '../../signerContext';
|
|
13
13
|
const log = dlog('csb:test:streamRpcClient');
|
|
14
14
|
describe('streamRpcClient', () => {
|
|
15
15
|
let bobsContext;
|
|
16
|
-
let alicesContext;
|
|
17
16
|
beforeEach(async () => {
|
|
18
17
|
bobsContext = await makeRandomUserContext();
|
|
19
|
-
alicesContext = await makeRandomUserContext();
|
|
20
18
|
});
|
|
21
19
|
test('makeStreamRpcClient', async () => {
|
|
22
20
|
const client = await makeTestRpcClient();
|
|
23
|
-
log('makeStreamRpcClient', 'url', client.url);
|
|
24
21
|
expect(client).toBeDefined();
|
|
25
22
|
const result = await client.info({ debug: ['graffiti'] });
|
|
26
23
|
expect(result).toBeDefined();
|
|
27
24
|
expect(result.graffiti).toEqual('River Node welcomes you!');
|
|
28
25
|
});
|
|
29
26
|
test('ping', async () => {
|
|
30
|
-
// ping is a debug endpoint, so it's not available in production
|
|
31
27
|
const client = await makeTestRpcClient();
|
|
32
|
-
log('ping', 'url', client.url);
|
|
33
|
-
expect(client).toBeDefined();
|
|
34
28
|
const result = await client.info({ debug: ['ping'] });
|
|
35
29
|
expect(result).toBeDefined();
|
|
36
30
|
expect(result.graffiti).toEqual('pong');
|
|
37
31
|
});
|
|
38
32
|
test('error', async () => {
|
|
39
33
|
const client = await makeTestRpcClient();
|
|
40
|
-
expect(client).
|
|
41
|
-
let err = undefined;
|
|
42
|
-
try {
|
|
43
|
-
await client.info({ debug: ['error'] });
|
|
44
|
-
}
|
|
45
|
-
catch (e) {
|
|
46
|
-
expect(e).toBeInstanceOf(Error);
|
|
47
|
-
err = e;
|
|
48
|
-
}
|
|
49
|
-
log('error', err);
|
|
50
|
-
expect(err).toBeDefined();
|
|
51
|
-
log('error', err.toString());
|
|
52
|
-
expect(err.toString()).toContain('Error requested through Info request');
|
|
34
|
+
await expect(client.info({ debug: ['error'] })).rejects.toThrow('Error requested through Info request');
|
|
53
35
|
});
|
|
54
36
|
test('error_untyped', async () => {
|
|
55
37
|
const client = await makeTestRpcClient();
|
|
56
|
-
expect(client).
|
|
57
|
-
let err = undefined;
|
|
58
|
-
try {
|
|
59
|
-
await client.info({ debug: ['error_untyped'] });
|
|
60
|
-
}
|
|
61
|
-
catch (e) {
|
|
62
|
-
expect(e).toBeInstanceOf(Error);
|
|
63
|
-
err = e;
|
|
64
|
-
}
|
|
65
|
-
log('error_untyped', err);
|
|
66
|
-
expect(err).toBeDefined();
|
|
67
|
-
log('error_untyped', err.toString());
|
|
68
|
-
expect(err.toString()).toContain('[unknown] error requested through Info request');
|
|
38
|
+
await expect(client.info({ debug: ['error_untyped'] })).rejects.toThrow('[unknown] error requested through Info request');
|
|
69
39
|
});
|
|
70
40
|
test('charlieUsesRegularOldWallet', async () => {
|
|
71
41
|
const wallet = ethers.Wallet.createRandom();
|
|
72
42
|
const charliesContext = await makeUserContextFromWallet(wallet);
|
|
73
43
|
const charlie = await makeTestRpcClient();
|
|
74
44
|
const userId = userIdFromAddress(charliesContext.creatorAddress);
|
|
75
|
-
const
|
|
76
|
-
const streamId = streamIdToBytes(streamIdStr);
|
|
45
|
+
const streamId = streamIdToBytes(makeUserStreamId(userId));
|
|
77
46
|
await charlie.createStream({
|
|
78
47
|
events: [
|
|
79
48
|
await makeEvent(charliesContext, make_UserPayload_Inception({
|
|
80
|
-
streamId
|
|
49
|
+
streamId,
|
|
81
50
|
})),
|
|
82
51
|
],
|
|
83
|
-
streamId
|
|
52
|
+
streamId,
|
|
84
53
|
});
|
|
85
54
|
});
|
|
86
55
|
test('bobSendsMismatchedPayloadCase', async () => {
|
|
87
|
-
log('bobSendsMismatchedPayloadCase', 'start');
|
|
88
56
|
const bob = await makeTestRpcClient();
|
|
89
57
|
const bobsUserId = userIdFromAddress(bobsContext.creatorAddress);
|
|
90
|
-
const
|
|
91
|
-
const bobsUserStreamId = streamIdToBytes(bobsUserStreamIdStr);
|
|
58
|
+
const bobsUserStreamId = streamIdToBytes(makeUserStreamId(bobsUserId));
|
|
92
59
|
const inceptionEvent = await makeEvent(bobsContext, make_UserPayload_Inception({
|
|
93
60
|
streamId: bobsUserStreamId,
|
|
94
61
|
}));
|
|
@@ -99,8 +66,7 @@ describe('streamRpcClient', () => {
|
|
|
99
66
|
const userStream = await bob.getStream({ streamId: bobsUserStreamId });
|
|
100
67
|
expect(userStream).toBeDefined();
|
|
101
68
|
expect(bin_equal(userStream.stream?.nextSyncCookie?.streamId, bobsUserStreamId)).toBeTruthy();
|
|
102
|
-
|
|
103
|
-
const event = await makeEvent(bobsContext, make_ChannelPayload_Message({
|
|
69
|
+
const event = await makeEvent(bobsContext, make_GDMChannelPayload_Message({
|
|
104
70
|
...TEST_ENCRYPTED_MESSAGE_PROPS,
|
|
105
71
|
ciphertext: 'hello',
|
|
106
72
|
}), userStream.stream?.miniblocks.at(-1)?.header?.hash);
|
|
@@ -108,8 +74,7 @@ describe('streamRpcClient', () => {
|
|
|
108
74
|
streamId: bobsUserStreamId,
|
|
109
75
|
event,
|
|
110
76
|
});
|
|
111
|
-
await expect(promise).rejects.toThrow('inception type mismatch
|
|
112
|
-
log('bobSendsMismatchedPayloadCase', 'done');
|
|
77
|
+
await expect(promise).rejects.toThrow('inception type mismatch');
|
|
113
78
|
});
|
|
114
79
|
test.each([
|
|
115
80
|
['bobTalksToHimself-noflush-nopresync', false],
|
|
@@ -117,192 +82,10 @@ describe('streamRpcClient', () => {
|
|
|
117
82
|
])('%s', async (name, presync) => {
|
|
118
83
|
await bobTalksToHimself(log.extend(name), bobsContext, false, presync);
|
|
119
84
|
});
|
|
120
|
-
test('aliceTalksToBob', async () => {
|
|
121
|
-
log('bobAndAliceConverse start');
|
|
122
|
-
const bob = await makeTestRpcClient();
|
|
123
|
-
const bobsUserId = userIdFromAddress(bobsContext.creatorAddress);
|
|
124
|
-
const bobsUserStreamIdStr = makeUserStreamId(bobsUserId);
|
|
125
|
-
const bobsUserStreamId = streamIdToBytes(bobsUserStreamIdStr);
|
|
126
|
-
const alice = await makeTestRpcClient();
|
|
127
|
-
const alicesUserId = userIdFromAddress(alicesContext.creatorAddress);
|
|
128
|
-
const alicesUserStreamIdStr = makeUserStreamId(alicesUserId);
|
|
129
|
-
const alicesUserStreamId = streamIdToBytes(alicesUserStreamIdStr);
|
|
130
|
-
// Create accounts for Bob and Alice
|
|
131
|
-
const bobsStream = await bob.createStream({
|
|
132
|
-
events: [
|
|
133
|
-
await makeEvent(bobsContext, make_UserPayload_Inception({
|
|
134
|
-
streamId: bobsUserStreamId,
|
|
135
|
-
})),
|
|
136
|
-
],
|
|
137
|
-
streamId: bobsUserStreamId,
|
|
138
|
-
});
|
|
139
|
-
const alicesStream = await alice.createStream({
|
|
140
|
-
events: [
|
|
141
|
-
await makeEvent(alicesContext, make_UserPayload_Inception({
|
|
142
|
-
streamId: alicesUserStreamId,
|
|
143
|
-
})),
|
|
144
|
-
],
|
|
145
|
-
streamId: alicesUserStreamId,
|
|
146
|
-
});
|
|
147
|
-
// Bob creates space
|
|
148
|
-
const spaceIdStr = makeUniqueSpaceStreamId();
|
|
149
|
-
const spaceId = streamIdToBytes(spaceIdStr);
|
|
150
|
-
const inceptionEvent = await makeEvent(bobsContext, make_SpacePayload_Inception({
|
|
151
|
-
streamId: spaceId,
|
|
152
|
-
}));
|
|
153
|
-
const joinEvent = await makeEvent(bobsContext, make_MemberPayload_Membership2({
|
|
154
|
-
userId: bobsUserId,
|
|
155
|
-
op: MembershipOp.SO_JOIN,
|
|
156
|
-
initiatorId: bobsUserId,
|
|
157
|
-
}));
|
|
158
|
-
await bob.createStream({
|
|
159
|
-
events: [inceptionEvent, joinEvent],
|
|
160
|
-
streamId: spaceId,
|
|
161
|
-
});
|
|
162
|
-
// Bob creates channel
|
|
163
|
-
const channelIdStr = makeUniqueChannelStreamId(spaceIdStr);
|
|
164
|
-
const channelId = streamIdToBytes(channelIdStr);
|
|
165
|
-
const channelInceptionEvent = await makeEvent(bobsContext, make_ChannelPayload_Inception({
|
|
166
|
-
streamId: channelId,
|
|
167
|
-
}));
|
|
168
|
-
let event = await makeEvent(bobsContext, make_MemberPayload_Membership2({
|
|
169
|
-
userId: bobsUserId,
|
|
170
|
-
op: MembershipOp.SO_JOIN,
|
|
171
|
-
initiatorId: bobsUserId,
|
|
172
|
-
}));
|
|
173
|
-
const createChannelResponse = await bob.createStream({
|
|
174
|
-
events: [channelInceptionEvent, event],
|
|
175
|
-
streamId: channelId,
|
|
176
|
-
});
|
|
177
|
-
// Bob succesdfully posts a message
|
|
178
|
-
event = await makeEvent(bobsContext, make_ChannelPayload_Message({
|
|
179
|
-
...TEST_ENCRYPTED_MESSAGE_PROPS,
|
|
180
|
-
ciphertext: 'hello',
|
|
181
|
-
}), createChannelResponse.stream?.miniblocks.at(-1)?.header?.hash);
|
|
182
|
-
await bob.addEvent({
|
|
183
|
-
streamId: channelId,
|
|
184
|
-
event,
|
|
185
|
-
});
|
|
186
|
-
// Alice fails to post a message if she hasn't joined the channel
|
|
187
|
-
log("Alice fails to post a message if she hasn't joined the channel");
|
|
188
|
-
await expect(alice.addEvent({
|
|
189
|
-
streamId: channelId,
|
|
190
|
-
event: await makeEvent(alicesContext, make_ChannelPayload_Message({
|
|
191
|
-
...TEST_ENCRYPTED_MESSAGE_PROPS,
|
|
192
|
-
ciphertext: 'hello',
|
|
193
|
-
}), createChannelResponse.stream?.miniblocks.at(-1)?.header?.hash),
|
|
194
|
-
})).rejects.toThrow(expect.objectContaining({
|
|
195
|
-
message: expect.stringContaining('7:PERMISSION_DENIED'),
|
|
196
|
-
}));
|
|
197
|
-
// Alice syncs her user stream waiting for invite
|
|
198
|
-
const userAlice = await alice.getStream({
|
|
199
|
-
streamId: alicesUserStreamId,
|
|
200
|
-
});
|
|
201
|
-
if (!userAlice.stream)
|
|
202
|
-
throw new Error('userAlice stream not found');
|
|
203
|
-
let aliceSyncCookie = userAlice.stream.nextSyncCookie;
|
|
204
|
-
const aliceSyncStreams = alice.syncStreams({
|
|
205
|
-
syncPos: aliceSyncCookie ? [aliceSyncCookie] : [],
|
|
206
|
-
}, {
|
|
207
|
-
timeoutMs: -1,
|
|
208
|
-
headers: { 'X-Use-Shared-Sync': 'true' },
|
|
209
|
-
});
|
|
210
|
-
let syncId;
|
|
211
|
-
log("Alice waits for Bob's channel creation event");
|
|
212
|
-
await expect(waitForSyncStreams(aliceSyncStreams, async (res) => {
|
|
213
|
-
syncId = res.syncId;
|
|
214
|
-
return res.syncOp === SyncOp.SYNC_NEW && res.syncId !== undefined;
|
|
215
|
-
})).resolves.not.toThrow();
|
|
216
|
-
// Bob invites Alice to the channel
|
|
217
|
-
log('Bob invites Alice to the channel');
|
|
218
|
-
event = await makeEvent(bobsContext, make_UserPayload_UserMembershipAction({
|
|
219
|
-
op: MembershipOp.SO_INVITE,
|
|
220
|
-
userId: addressFromUserId(alicesUserId),
|
|
221
|
-
streamId: channelId,
|
|
222
|
-
}), bobsStream.stream?.miniblocks.at(-1)?.header?.hash);
|
|
223
|
-
await bob.addEvent({
|
|
224
|
-
streamId: bobsUserStreamId,
|
|
225
|
-
event,
|
|
226
|
-
});
|
|
227
|
-
log("Alice waits for Bob's invite event");
|
|
228
|
-
aliceSyncCookie = await waitForEvent(aliceSyncStreams, alicesUserStreamIdStr, (e) => {
|
|
229
|
-
if (e.event.payload?.case === 'userPayload' &&
|
|
230
|
-
e.event.payload?.value.content.case === 'userMembership') {
|
|
231
|
-
log("Alice's received over sync:", {
|
|
232
|
-
op: e.event.payload?.value.content.value.op,
|
|
233
|
-
streamId: streamIdAsString(e.event.payload?.value.content.value.streamId),
|
|
234
|
-
inviter: e.event.payload?.value.content.value.inviter,
|
|
235
|
-
inviterId: e.event.payload?.value.content.value.inviter
|
|
236
|
-
? userIdFromAddress(e.event.payload?.value.content.value.inviter)
|
|
237
|
-
: undefined,
|
|
238
|
-
bob: bobsUserId,
|
|
239
|
-
bobAddress: addressFromUserId(bobsUserId),
|
|
240
|
-
bobAddress2: bobsContext.creatorAddress,
|
|
241
|
-
bobAddress3: userIdFromAddress(bobsContext.creatorAddress),
|
|
242
|
-
inviterEquals: bin_equal(e.event.payload?.value.content.value.inviter, bobsContext.creatorAddress),
|
|
243
|
-
channelIdEquals: bin_equal(e.event.payload?.value.content.value.streamId, channelId),
|
|
244
|
-
inviteEquals: e.event.payload?.value.content.value.op === MembershipOp.SO_INVITE,
|
|
245
|
-
});
|
|
246
|
-
return (e.event.payload?.value.content.value.op === MembershipOp.SO_INVITE &&
|
|
247
|
-
bin_equal(e.event.payload?.value.content.value.streamId, channelId) &&
|
|
248
|
-
bin_equal(e.event.payload?.value.content.value.inviter, bobsContext.creatorAddress));
|
|
249
|
-
}
|
|
250
|
-
return false;
|
|
251
|
-
});
|
|
252
|
-
// Alice joins the channel
|
|
253
|
-
event = await makeEvent(alicesContext, make_UserPayload_UserMembership({
|
|
254
|
-
op: MembershipOp.SO_JOIN,
|
|
255
|
-
streamId: channelId,
|
|
256
|
-
}), alicesStream.stream?.miniblocks.at(-1)?.header?.hash);
|
|
257
|
-
await alice.addEvent({
|
|
258
|
-
streamId: alicesUserStreamId,
|
|
259
|
-
event,
|
|
260
|
-
});
|
|
261
|
-
log('Alice waits for join event in her user stream');
|
|
262
|
-
// Alice sees derived join event in her user stream
|
|
263
|
-
aliceSyncCookie = await waitForEvent(aliceSyncStreams, alicesUserStreamIdStr, (e) => e.event.payload?.case === 'userPayload' &&
|
|
264
|
-
e.event.payload?.value.content.case === 'userMembership' &&
|
|
265
|
-
e.event.payload?.value.content.value.op === MembershipOp.SO_JOIN &&
|
|
266
|
-
bin_equal(e.event.payload?.value.content.value.streamId, channelId));
|
|
267
|
-
// Alice reads previouse messages from the channel
|
|
268
|
-
const channel = await alice.getStream({ streamId: channelId });
|
|
269
|
-
let messageCount = 0;
|
|
270
|
-
if (!channel.stream)
|
|
271
|
-
throw new Error('channel stream not found');
|
|
272
|
-
const envelopes = await unpackStreamEnvelopes(channel.stream, undefined);
|
|
273
|
-
envelopes.forEach((e) => {
|
|
274
|
-
const p = e.event.payload;
|
|
275
|
-
if (p?.case === 'channelPayload' && p.value.content.case === 'message') {
|
|
276
|
-
messageCount++;
|
|
277
|
-
expect(p.value.content.value.ciphertext).toEqual('hello');
|
|
278
|
-
}
|
|
279
|
-
});
|
|
280
|
-
expect(messageCount).toEqual(1);
|
|
281
|
-
await alice.modifySync({
|
|
282
|
-
syncId,
|
|
283
|
-
addStreams: [channel.stream.nextSyncCookie],
|
|
284
|
-
});
|
|
285
|
-
// Bob posts another message
|
|
286
|
-
event = await makeEvent(bobsContext, make_ChannelPayload_Message({
|
|
287
|
-
...TEST_ENCRYPTED_MESSAGE_PROPS,
|
|
288
|
-
ciphertext: 'Hello, Alice!',
|
|
289
|
-
}), channel.stream?.miniblocks.at(-1)?.header?.hash);
|
|
290
|
-
await bob.addEvent({
|
|
291
|
-
streamId: channelId,
|
|
292
|
-
event,
|
|
293
|
-
});
|
|
294
|
-
log('Alice waits for Bob to post another message');
|
|
295
|
-
// Alice sees the message in the channel stream
|
|
296
|
-
await expect(waitForEvent(aliceSyncStreams, channelIdStr, (e) => e.event.payload?.case === 'channelPayload' &&
|
|
297
|
-
e.event.payload?.value.content.case === 'message' &&
|
|
298
|
-
e.event.payload?.value.content.value.ciphertext === 'Hello, Alice!')).resolves.not.toThrow();
|
|
299
|
-
await alice.cancelSync({ syncId });
|
|
300
|
-
});
|
|
301
85
|
test.each([
|
|
302
86
|
[0n, 'never'],
|
|
303
87
|
[{ days: 2 }, 'in two days'],
|
|
304
|
-
])('cantAddOrCreateWithExpiredDelegateSig expiry: %o expires %s', async (goodExpiry,
|
|
305
|
-
log('testing with good expiry of', goodExpiry, 'which expires', desc);
|
|
88
|
+
])('cantAddOrCreateWithExpiredDelegateSig expiry: %o expires %s', async (goodExpiry, _expiresDescription) => {
|
|
306
89
|
const jimmy = await makeTestRpcClient();
|
|
307
90
|
const jimmysWallet = ethers.Wallet.createRandom();
|
|
308
91
|
const jimmysDelegateWallet = ethers.Wallet.createRandom();
|
|
@@ -322,16 +105,14 @@ describe('streamRpcClient', () => {
|
|
|
322
105
|
streamId: jimmysUserStreamId,
|
|
323
106
|
});
|
|
324
107
|
};
|
|
325
|
-
// test create stream
|
|
326
108
|
await expect(makeUserStreamWith(jimmysExpiredContext)).rejects.toThrow(expect.objectContaining({
|
|
327
109
|
message: expect.stringContaining('7:PERMISSION_DENIED'),
|
|
328
110
|
}));
|
|
329
111
|
await expect(makeUserStreamWith(jimmysGoodContext)).resolves.not.toThrow();
|
|
330
|
-
|
|
331
|
-
const
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
streamId: spacedStreamId,
|
|
112
|
+
const gdmId = streamIdToBytes(makeUniqueGDMChannelStreamId());
|
|
113
|
+
const gdmEvents = await makeEvents(jimmysGoodContext, [
|
|
114
|
+
make_GDMChannelPayload_Inception({
|
|
115
|
+
streamId: gdmId,
|
|
335
116
|
}),
|
|
336
117
|
make_MemberPayload_Membership2({
|
|
337
118
|
userId: jimmysUserId,
|
|
@@ -340,22 +121,20 @@ describe('streamRpcClient', () => {
|
|
|
340
121
|
}),
|
|
341
122
|
]);
|
|
342
123
|
await jimmy.createStream({
|
|
343
|
-
events:
|
|
344
|
-
streamId:
|
|
124
|
+
events: gdmEvents,
|
|
125
|
+
streamId: gdmId,
|
|
345
126
|
});
|
|
346
|
-
// try to leave, first with expired context, then with good context
|
|
347
127
|
const addEventWith = async (context) => {
|
|
348
128
|
const lastMiniblockHash = (await jimmy.getLastMiniblockHash({ streamId: jimmysUserStreamId })).hash;
|
|
349
|
-
const
|
|
350
|
-
streamId:
|
|
129
|
+
const membershipEvent = await makeEvent(context, make_UserPayload_UserMembership({
|
|
130
|
+
streamId: gdmId,
|
|
351
131
|
op: MembershipOp.SO_LEAVE,
|
|
352
132
|
}), lastMiniblockHash);
|
|
353
133
|
return jimmy.addEvent({
|
|
354
134
|
streamId: jimmysUserStreamId,
|
|
355
|
-
event:
|
|
135
|
+
event: membershipEvent,
|
|
356
136
|
});
|
|
357
137
|
};
|
|
358
|
-
// test add event
|
|
359
138
|
await expect(addEventWith(jimmysExpiredContext)).rejects.toThrow(expect.objectContaining({
|
|
360
139
|
message: expect.stringContaining('7:PERMISSION_DENIED'),
|
|
361
140
|
}));
|
|
@@ -364,8 +143,7 @@ describe('streamRpcClient', () => {
|
|
|
364
143
|
test('cantAddWithBadHash', async () => {
|
|
365
144
|
const bob = await makeTestRpcClient();
|
|
366
145
|
const bobsUserId = userIdFromAddress(bobsContext.creatorAddress);
|
|
367
|
-
const
|
|
368
|
-
const bobsUserStreamId = streamIdToBytes(bobsUserStreamIdStr);
|
|
146
|
+
const bobsUserStreamId = streamIdToBytes(makeUserStreamId(bobsUserId));
|
|
369
147
|
await expect(bob.createStream({
|
|
370
148
|
events: [
|
|
371
149
|
await makeEvent(bobsContext, make_UserPayload_Inception({
|
|
@@ -374,13 +152,10 @@ describe('streamRpcClient', () => {
|
|
|
374
152
|
],
|
|
375
153
|
streamId: bobsUserStreamId,
|
|
376
154
|
})).resolves.not.toThrow();
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
const spaceEvents = await makeEvents(bobsContext, [
|
|
382
|
-
make_SpacePayload_Inception({
|
|
383
|
-
streamId: spacedStreamId,
|
|
155
|
+
const gdmId = streamIdToBytes(makeUniqueGDMChannelStreamId());
|
|
156
|
+
const gdmEvents = await makeEvents(bobsContext, [
|
|
157
|
+
make_GDMChannelPayload_Inception({
|
|
158
|
+
streamId: gdmId,
|
|
384
159
|
}),
|
|
385
160
|
make_MemberPayload_Membership2({
|
|
386
161
|
userId: bobsUserId,
|
|
@@ -389,60 +164,36 @@ describe('streamRpcClient', () => {
|
|
|
389
164
|
}),
|
|
390
165
|
]);
|
|
391
166
|
await bob.createStream({
|
|
392
|
-
events:
|
|
393
|
-
streamId:
|
|
167
|
+
events: gdmEvents,
|
|
168
|
+
streamId: gdmId,
|
|
394
169
|
});
|
|
395
|
-
|
|
396
|
-
const
|
|
397
|
-
|
|
398
|
-
const channelEvents = await makeEvents(bobsContext, [
|
|
399
|
-
make_ChannelPayload_Inception({
|
|
400
|
-
streamId: channelId,
|
|
401
|
-
}),
|
|
402
|
-
make_MemberPayload_Membership2({
|
|
403
|
-
userId: bobsUserId,
|
|
404
|
-
op: MembershipOp.SO_JOIN,
|
|
405
|
-
initiatorId: bobsUserId,
|
|
406
|
-
}),
|
|
407
|
-
]);
|
|
408
|
-
await bob.createStream({
|
|
409
|
-
events: channelEvents,
|
|
410
|
-
streamId: channelId,
|
|
411
|
-
});
|
|
412
|
-
log('Bob created channel');
|
|
413
|
-
log('Bob fails to create channel with badly chained initial events, hash empty');
|
|
414
|
-
const channelId2Str = makeUniqueChannelStreamId(spacedStreamIdStr);
|
|
415
|
-
const channelId2 = streamIdToBytes(channelId2Str);
|
|
416
|
-
const channelEvent2_0 = await makeEvent(bobsContext, make_ChannelPayload_Inception({
|
|
417
|
-
streamId: channelId2,
|
|
170
|
+
const gdmId2 = streamIdToBytes(makeUniqueGDMChannelStreamId());
|
|
171
|
+
const gdmEvent2_0 = await makeEvent(bobsContext, make_GDMChannelPayload_Inception({
|
|
172
|
+
streamId: gdmId2,
|
|
418
173
|
}));
|
|
419
|
-
|
|
420
|
-
const channelEvent2_2 = await makeEvent(bobsContext, make_MemberPayload_Membership2({
|
|
174
|
+
const gdmEvent2_1 = await makeEvent(bobsContext, make_MemberPayload_Membership2({
|
|
421
175
|
userId: bobsUserId,
|
|
422
176
|
op: MembershipOp.SO_JOIN,
|
|
423
177
|
initiatorId: bobsUserId,
|
|
424
|
-
}), Uint8Array.from(Array(32).fill(
|
|
425
|
-
// TODO: fix up error codes Err.BAD_PREV_EVENTS
|
|
178
|
+
}), Uint8Array.from(Array(32).fill(1)));
|
|
426
179
|
await expect(bob.createStream({
|
|
427
|
-
events: [
|
|
428
|
-
streamId:
|
|
180
|
+
events: [gdmEvent2_0, gdmEvent2_1],
|
|
181
|
+
streamId: gdmId2,
|
|
429
182
|
})).rejects.toThrow(expect.objectContaining({
|
|
430
183
|
message: expect.stringContaining('19:BAD_STREAM_CREATION_PARAMS'),
|
|
431
184
|
}));
|
|
432
|
-
|
|
433
|
-
const
|
|
434
|
-
const messageEvent = await makeEvent(bobsContext, make_ChannelPayload_Message({
|
|
185
|
+
const lastMiniblockHash = (await bob.getLastMiniblockHash({ streamId: gdmId })).hash;
|
|
186
|
+
const messageEvent = await makeEvent(bobsContext, make_GDMChannelPayload_Message({
|
|
435
187
|
...TEST_ENCRYPTED_MESSAGE_PROPS,
|
|
436
188
|
ciphertext: 'Hello, World!',
|
|
437
189
|
}), lastMiniblockHash);
|
|
438
190
|
await expect(bob.addEvent({
|
|
439
|
-
streamId:
|
|
191
|
+
streamId: gdmId,
|
|
440
192
|
event: messageEvent,
|
|
441
193
|
})).resolves.not.toThrow();
|
|
442
|
-
log('Bob fails to add event with empty hash');
|
|
443
194
|
await expect(bob.addEvent({
|
|
444
|
-
streamId:
|
|
445
|
-
event: await makeEvent_test(bobsContext,
|
|
195
|
+
streamId: gdmId,
|
|
196
|
+
event: await makeEvent_test(bobsContext, make_GDMChannelPayload_Message({
|
|
446
197
|
...TEST_ENCRYPTED_MESSAGE_PROPS,
|
|
447
198
|
ciphertext: 'Hello, World!',
|
|
448
199
|
})),
|
|
@@ -453,8 +204,7 @@ describe('streamRpcClient', () => {
|
|
|
453
204
|
test('cantAddWithBadSignature', async () => {
|
|
454
205
|
const bob = await makeTestRpcClient();
|
|
455
206
|
const bobsUserId = userIdFromAddress(bobsContext.creatorAddress);
|
|
456
|
-
const
|
|
457
|
-
const bobsUserStreamId = streamIdToBytes(bobsUserStreamIdStr);
|
|
207
|
+
const bobsUserStreamId = streamIdToBytes(makeUserStreamId(bobsUserId));
|
|
458
208
|
await expect(bob.createStream({
|
|
459
209
|
events: [
|
|
460
210
|
await makeEvent(bobsContext, make_UserPayload_Inception({
|
|
@@ -463,30 +213,10 @@ describe('streamRpcClient', () => {
|
|
|
463
213
|
],
|
|
464
214
|
streamId: bobsUserStreamId,
|
|
465
215
|
})).resolves.not.toThrow();
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
const spaceEvents = await makeEvents(bobsContext, [
|
|
471
|
-
make_SpacePayload_Inception({
|
|
472
|
-
streamId: spacedStreamId,
|
|
473
|
-
}),
|
|
474
|
-
make_MemberPayload_Membership2({
|
|
475
|
-
userId: bobsUserId,
|
|
476
|
-
op: MembershipOp.SO_JOIN,
|
|
477
|
-
initiatorId: bobsUserId,
|
|
478
|
-
}),
|
|
479
|
-
]);
|
|
480
|
-
await bob.createStream({
|
|
481
|
-
events: spaceEvents,
|
|
482
|
-
streamId: spacedStreamId,
|
|
483
|
-
});
|
|
484
|
-
log('Bob created space, about to create channel');
|
|
485
|
-
const channelIdStr = makeUniqueChannelStreamId(spacedStreamIdStr);
|
|
486
|
-
const channelId = streamIdToBytes(channelIdStr);
|
|
487
|
-
const channelEvents = await makeEvents(bobsContext, [
|
|
488
|
-
make_ChannelPayload_Inception({
|
|
489
|
-
streamId: channelId,
|
|
216
|
+
const gdmId = streamIdToBytes(makeUniqueGDMChannelStreamId());
|
|
217
|
+
const gdmEvents = await makeEvents(bobsContext, [
|
|
218
|
+
make_GDMChannelPayload_Inception({
|
|
219
|
+
streamId: gdmId,
|
|
490
220
|
}),
|
|
491
221
|
make_MemberPayload_Membership2({
|
|
492
222
|
userId: bobsUserId,
|
|
@@ -495,60 +225,39 @@ describe('streamRpcClient', () => {
|
|
|
495
225
|
}),
|
|
496
226
|
]);
|
|
497
227
|
await bob.createStream({
|
|
498
|
-
events:
|
|
499
|
-
streamId:
|
|
228
|
+
events: gdmEvents,
|
|
229
|
+
streamId: gdmId,
|
|
500
230
|
});
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
const lastMiniblockHash = (await bob.getLastMiniblockHash({ streamId: channelId })).hash;
|
|
504
|
-
const messageEvent = await makeEvent(bobsContext, make_ChannelPayload_Message({
|
|
231
|
+
const lastMiniblockHash = (await bob.getLastMiniblockHash({ streamId: gdmId })).hash;
|
|
232
|
+
const messageEvent = await makeEvent(bobsContext, make_GDMChannelPayload_Message({
|
|
505
233
|
...TEST_ENCRYPTED_MESSAGE_PROPS,
|
|
506
234
|
ciphertext: 'Hello, World!',
|
|
507
235
|
}), lastMiniblockHash);
|
|
508
|
-
channelEvents.push(messageEvent);
|
|
509
236
|
await expect(bob.addEvent({
|
|
510
|
-
streamId:
|
|
237
|
+
streamId: gdmId,
|
|
511
238
|
event: messageEvent,
|
|
512
239
|
})).resolves.not.toThrow();
|
|
513
|
-
log('Adding event again succeeds (noop)');
|
|
514
240
|
await expect(bob.addEvent({
|
|
515
|
-
streamId:
|
|
241
|
+
streamId: gdmId,
|
|
516
242
|
event: messageEvent,
|
|
517
243
|
})).resolves.not.toThrow();
|
|
518
|
-
|
|
519
|
-
const badEvent = await makeEvent(bobsContext, make_ChannelPayload_Message({
|
|
244
|
+
const badEvent = await makeEvent(bobsContext, make_GDMChannelPayload_Message({
|
|
520
245
|
...TEST_ENCRYPTED_MESSAGE_PROPS,
|
|
521
246
|
ciphertext: 'Nah, not really',
|
|
522
247
|
}), lastMiniblockHash);
|
|
523
248
|
badEvent.signature = messageEvent.signature;
|
|
524
249
|
await expect(bob.addEvent({
|
|
525
|
-
streamId:
|
|
250
|
+
streamId: gdmId,
|
|
526
251
|
event: badEvent,
|
|
527
252
|
})).rejects.toThrow('22:BAD_EVENT_SIGNATURE');
|
|
528
|
-
|
|
529
|
-
const expiredEvent = await makeEvent(bobsContext, make_ChannelPayload_Message({
|
|
253
|
+
const expiredEvent = await makeEvent(bobsContext, make_GDMChannelPayload_Message({
|
|
530
254
|
...TEST_ENCRYPTED_MESSAGE_PROPS,
|
|
531
255
|
ciphertext: 'Nah, not really',
|
|
532
|
-
}), Uint8Array.from(Array(32).fill(
|
|
256
|
+
}), Uint8Array.from(Array(32).fill(1)));
|
|
533
257
|
await expect(bob.addEvent({
|
|
534
|
-
streamId:
|
|
258
|
+
streamId: gdmId,
|
|
535
259
|
event: expiredEvent,
|
|
536
260
|
})).rejects.toThrow('24:BAD_PREV_MINIBLOCK_HASH');
|
|
537
261
|
});
|
|
538
262
|
});
|
|
539
|
-
const waitForEvent = async (syncStream, streamId, matcher) => {
|
|
540
|
-
for await (const res of iterableWrapper(syncStream)) {
|
|
541
|
-
const stream = res.stream;
|
|
542
|
-
if (stream?.nextSyncCookie?.streamId &&
|
|
543
|
-
bin_equal(stream.nextSyncCookie.streamId, streamIdToBytes(streamId))) {
|
|
544
|
-
const events = await unpackStreamEnvelopes(stream, undefined);
|
|
545
|
-
for (const e of events) {
|
|
546
|
-
if (matcher(e)) {
|
|
547
|
-
return stream.nextSyncCookie;
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
throw new Error('unreachable');
|
|
553
|
-
};
|
|
554
263
|
//# sourceMappingURL=streamRpcClient.test.js.map
|