@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,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { linkWallets, erc20CheckOp, setupChannelWithCustomRole, expectUserCanJoinChannel, expectUserCannotJoinChannel, } from '../../testUtils';
|
|
5
|
-
import { dlog } from '@towns-labs/utils';
|
|
6
|
-
import { TestERC20, treeToRuleData } from '@towns-labs/web3';
|
|
7
|
-
const log = dlog('csb:test:channelsWithErc20Entitlements');
|
|
8
|
-
describe('channelsWithErc20Entitlements', () => {
|
|
9
|
-
test('erc20 gate join pass', async () => {
|
|
10
|
-
const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
|
|
11
|
-
const { alice, bob, alicesWallet, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole([], ruleData);
|
|
12
|
-
await TestERC20.publicMint('TestERC20', alicesWallet.address, 100);
|
|
13
|
-
log('expect that alice can join the channel');
|
|
14
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
15
|
-
// kill the clients
|
|
16
|
-
const doneStart = Date.now();
|
|
17
|
-
await bob.stopSync();
|
|
18
|
-
await alice.stopSync();
|
|
19
|
-
log('Done', Date.now() - doneStart);
|
|
20
|
-
});
|
|
21
|
-
test('erc20 gate join fail', async () => {
|
|
22
|
-
const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
|
|
23
|
-
const { alice, bob, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole([], ruleData);
|
|
24
|
-
log('expect that alice cannot join the channel');
|
|
25
|
-
await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
26
|
-
// kill the clients
|
|
27
|
-
const doneStart = Date.now();
|
|
28
|
-
await bob.stopSync();
|
|
29
|
-
await alice.stopSync();
|
|
30
|
-
log('Done', Date.now() - doneStart);
|
|
31
|
-
});
|
|
32
|
-
test('erc20 gate join pass - join as root, asset in linked wallet', async () => {
|
|
33
|
-
const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
|
|
34
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, carolsWallet, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], ruleData);
|
|
35
|
-
// Link carol's wallet to alice's as root
|
|
36
|
-
await linkWallets(aliceSpaceDapp, aliceProvider.wallet, carolProvider.wallet);
|
|
37
|
-
// Validate alice cannot join the channel
|
|
38
|
-
await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
39
|
-
// Mint the needed asset to Alice's linked wallet
|
|
40
|
-
log('Minting 50 ERC20 tokens for carols wallet, which is linked to alices wallet');
|
|
41
|
-
await TestERC20.publicMint('TestERC20', carolsWallet.address, 50);
|
|
42
|
-
// Wait 2 seconds for the negative auth cache to expire
|
|
43
|
-
await new Promise((f) => setTimeout(f, 2000));
|
|
44
|
-
// Validate alice can join the channel
|
|
45
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
46
|
-
const doneStart = Date.now();
|
|
47
|
-
// kill the clients
|
|
48
|
-
await bob.stopSync();
|
|
49
|
-
await alice.stopSync();
|
|
50
|
-
log('Done', Date.now() - doneStart);
|
|
51
|
-
});
|
|
52
|
-
test('erc20 Gate Join Pass - join as linked wallet, assets in root wallet', async () => {
|
|
53
|
-
const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
|
|
54
|
-
const { alice, bob, aliceSpaceDapp, carolSpaceDapp, aliceProvider, carolsWallet, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], ruleData);
|
|
55
|
-
log("Joining alice's wallet as a linked wallet to carols root wallet");
|
|
56
|
-
await linkWallets(carolSpaceDapp, carolProvider.wallet, aliceProvider.wallet);
|
|
57
|
-
log('Minting an NFT for carols wallet, which is the root to alices wallet');
|
|
58
|
-
await TestERC20.publicMint('TestERC20', carolsWallet.address, 50);
|
|
59
|
-
log('expect that alice can join the channel');
|
|
60
|
-
// Validate alice can join the channel
|
|
61
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
62
|
-
const doneStart = Date.now();
|
|
63
|
-
// kill the clients
|
|
64
|
-
await bob.stopSync();
|
|
65
|
-
await alice.stopSync();
|
|
66
|
-
log('Done', Date.now() - doneStart);
|
|
67
|
-
});
|
|
68
|
-
test('erc20 Gate Join Pass - assets split across wallets', async () => {
|
|
69
|
-
const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
|
|
70
|
-
const { alice, bob, aliceSpaceDapp, carolSpaceDapp, aliceProvider, carolsWallet, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], ruleData);
|
|
71
|
-
log("Joining alice's wallet as a linked wallet to carol's root wallet");
|
|
72
|
-
await linkWallets(carolSpaceDapp, carolProvider.wallet, aliceProvider.wallet);
|
|
73
|
-
log("Minting an NFT for carol's wallet, which is the root to alice's wallet");
|
|
74
|
-
await TestERC20.publicMint('TestERC20', carolsWallet.address, 25);
|
|
75
|
-
await TestERC20.publicMint('TestERC20', aliceProvider.wallet.address, 25);
|
|
76
|
-
log('expect that alice can join the space');
|
|
77
|
-
// Validate alice can join the channel
|
|
78
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
79
|
-
const doneStart = Date.now();
|
|
80
|
-
// kill the clients
|
|
81
|
-
await bob.stopSync();
|
|
82
|
-
await alice.stopSync();
|
|
83
|
-
log('Done', Date.now() - doneStart);
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
//# sourceMappingURL=channelsWithErc20Entitlements.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelsWithErc20Entitlements.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithErc20Entitlements.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelsWithErc721Entitlements.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithErc721Entitlements.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { getNftRuleData, linkWallets, setupChannelWithCustomRole, expectUserCanJoinChannel, expectUserCannotJoinChannel, } from '../../testUtils';
|
|
5
|
-
import { dlog } from '@towns-labs/utils';
|
|
6
|
-
import { TestERC721 } from '@towns-labs/web3';
|
|
7
|
-
const log = dlog('csb:test:channelsWithErc721Entitlements');
|
|
8
|
-
describe('channelsWithErc721Entitlements', () => {
|
|
9
|
-
test('oneNftGateJoinPass - join as root, asset in linked wallet', async () => {
|
|
10
|
-
const testNft1Address = await TestERC721.getContractAddress('TestNFT1');
|
|
11
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, carolsWallet, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], getNftRuleData(testNft1Address));
|
|
12
|
-
// Link carol's wallet to alice's as root
|
|
13
|
-
await linkWallets(aliceSpaceDapp, aliceProvider.wallet, carolProvider.wallet);
|
|
14
|
-
// Validate alice cannot join the channel
|
|
15
|
-
await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
16
|
-
// Mint the needed asset to Alice's linked wallet
|
|
17
|
-
log('Minting an NFT for carols wallet, which is linked to alices wallet');
|
|
18
|
-
await TestERC721.publicMint('TestNFT1', carolsWallet.address);
|
|
19
|
-
// Wait 2 seconds for the negative auth cache to expire
|
|
20
|
-
await new Promise((f) => setTimeout(f, 2000));
|
|
21
|
-
// Validate alice can join the channel
|
|
22
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
23
|
-
const doneStart = Date.now();
|
|
24
|
-
// kill the clients
|
|
25
|
-
await bob.stopSync();
|
|
26
|
-
await alice.stopSync();
|
|
27
|
-
log('Done', Date.now() - doneStart);
|
|
28
|
-
});
|
|
29
|
-
test('oneNftGateJoinPass - join as linked wallet, asset in root wallet', async () => {
|
|
30
|
-
const testNft1Address = await TestERC721.getContractAddress('TestNFT1');
|
|
31
|
-
const { alice, bob, aliceSpaceDapp, carolSpaceDapp, aliceProvider, carolsWallet, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], getNftRuleData(testNft1Address));
|
|
32
|
-
log("Joining alice's wallet as a linked wallet to carols root wallet");
|
|
33
|
-
await linkWallets(carolSpaceDapp, carolProvider.wallet, aliceProvider.wallet);
|
|
34
|
-
log('Minting an NFT for carols wallet, which is the root to alices wallet');
|
|
35
|
-
await TestERC721.publicMint('TestNFT1', carolsWallet.address);
|
|
36
|
-
log('expect that alice can join the space');
|
|
37
|
-
// Validate alice can join the channel
|
|
38
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
39
|
-
const doneStart = Date.now();
|
|
40
|
-
// kill the clients
|
|
41
|
-
await bob.stopSync();
|
|
42
|
-
await alice.stopSync();
|
|
43
|
-
log('Done', Date.now() - doneStart);
|
|
44
|
-
});
|
|
45
|
-
test('oneNftGateJoinPass', async () => {
|
|
46
|
-
const testNftAddress = await TestERC721.getContractAddress('TestNFT');
|
|
47
|
-
const { alice, alicesWallet, aliceSpaceDapp, bob, spaceId, channelId } = await setupChannelWithCustomRole([], getNftRuleData(testNftAddress));
|
|
48
|
-
// Alice initially cannot join because she has no nft
|
|
49
|
-
await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
50
|
-
// Mint an nft for alice - she should be able to join now
|
|
51
|
-
await TestERC721.publicMint('TestNFT', alicesWallet.address);
|
|
52
|
-
// Wait 2 seconds for the negative auth cache to expire
|
|
53
|
-
await new Promise((f) => setTimeout(f, 2000));
|
|
54
|
-
// Validate alice can join the channel
|
|
55
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
56
|
-
await bob.stopSync();
|
|
57
|
-
await alice.stopSync();
|
|
58
|
-
});
|
|
59
|
-
test('oneNftGateJoinFail', async () => {
|
|
60
|
-
const testNft1Address = await TestERC721.getContractAddress('TestNFT1');
|
|
61
|
-
const { alice, aliceSpaceDapp, bob, spaceId, channelId } = await setupChannelWithCustomRole([], getNftRuleData(testNft1Address));
|
|
62
|
-
// Alice has no NFTs, so she should not be able to join the channel
|
|
63
|
-
await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
64
|
-
// kill the clients
|
|
65
|
-
await bob.stopSync();
|
|
66
|
-
await alice.stopSync();
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
//# sourceMappingURL=channelsWithErc721Entitlements.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelsWithErc721Entitlements.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithErc721Entitlements.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelsWithEthBalanceEntitlements.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { linkWallets, setupChannelWithCustomRole, expectUserCanJoinChannel, expectUserCannotJoinChannel, ethBalanceCheckOp, } from '../../testUtils';
|
|
5
|
-
import { dlog } from '@towns-labs/utils';
|
|
6
|
-
import { TestEthBalance, treeToRuleData } from '@towns-labs/web3';
|
|
7
|
-
const log = dlog('csb:test:channelsWithEthBalanceEntitlements');
|
|
8
|
-
const oneHalfEth = BigInt(5e17);
|
|
9
|
-
const oneEth = oneHalfEth * BigInt(2);
|
|
10
|
-
const twoEth = oneEth * BigInt(2);
|
|
11
|
-
const gtTwoEth = twoEth + BigInt(1);
|
|
12
|
-
describe('channelsWithEthBalanceEntitlements', () => {
|
|
13
|
-
test('eth balance gate pass', async () => {
|
|
14
|
-
const ruleData = treeToRuleData(ethBalanceCheckOp(oneEth));
|
|
15
|
-
const { alice, bob, alicesWallet, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole([], ruleData);
|
|
16
|
-
await Promise.all([TestEthBalance.setBaseBalance(alicesWallet.address, oneEth)]);
|
|
17
|
-
log('expect that alice can join the channel');
|
|
18
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
19
|
-
// kill the clients
|
|
20
|
-
const doneStart = Date.now();
|
|
21
|
-
await bob.stopSync();
|
|
22
|
-
await alice.stopSync();
|
|
23
|
-
log('Done', Date.now() - doneStart);
|
|
24
|
-
});
|
|
25
|
-
test('eth balance gate pass - across networks', async () => {
|
|
26
|
-
const ruleData = treeToRuleData(ethBalanceCheckOp(oneEth));
|
|
27
|
-
const { alice, bob, alicesWallet, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole([], ruleData);
|
|
28
|
-
await Promise.all([
|
|
29
|
-
TestEthBalance.setBaseBalance(alicesWallet.address, oneHalfEth),
|
|
30
|
-
TestEthBalance.setRiverBalance(alicesWallet.address, oneHalfEth),
|
|
31
|
-
]);
|
|
32
|
-
log('expect that alice can join the channel');
|
|
33
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
34
|
-
// kill the clients
|
|
35
|
-
const doneStart = Date.now();
|
|
36
|
-
await bob.stopSync();
|
|
37
|
-
await alice.stopSync();
|
|
38
|
-
log('Done', Date.now() - doneStart);
|
|
39
|
-
});
|
|
40
|
-
test('eth balance gate fail', async () => {
|
|
41
|
-
const ruleData = treeToRuleData(ethBalanceCheckOp(oneEth));
|
|
42
|
-
const { alice, bob, alicesWallet, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole([], ruleData);
|
|
43
|
-
// alice's base wallet may need to be explicitly set to zero to compensate for wallet funding in
|
|
44
|
-
// initialization methods.
|
|
45
|
-
await Promise.all([TestEthBalance.setBaseBalance(alicesWallet.address, 0n)]);
|
|
46
|
-
log('expect that alice cannot join the channel (has no ETH)');
|
|
47
|
-
await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
48
|
-
// kill the clients
|
|
49
|
-
const doneStart = Date.now();
|
|
50
|
-
await bob.stopSync();
|
|
51
|
-
await alice.stopSync();
|
|
52
|
-
log('Done', Date.now() - doneStart);
|
|
53
|
-
});
|
|
54
|
-
test('eth balance gate join pass - join as root, linked wallet entitled', async () => {
|
|
55
|
-
const ruleData = treeToRuleData(ethBalanceCheckOp(oneEth));
|
|
56
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, carolsWallet, alicesWallet, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], ruleData);
|
|
57
|
-
// Link carol's wallet to alice's as root
|
|
58
|
-
await linkWallets(aliceSpaceDapp, aliceProvider.wallet, carolProvider.wallet);
|
|
59
|
-
// Explicitly set wallet balances to 0
|
|
60
|
-
await Promise.all([
|
|
61
|
-
TestEthBalance.setBaseBalance(carolsWallet.address, 0n),
|
|
62
|
-
TestEthBalance.setBaseBalance(alicesWallet.address, 0n),
|
|
63
|
-
]);
|
|
64
|
-
// Validate alice cannot join the channel
|
|
65
|
-
await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
66
|
-
await Promise.all([
|
|
67
|
-
TestEthBalance.setBaseBalance(carolsWallet.address, oneHalfEth),
|
|
68
|
-
TestEthBalance.setRiverBalance(carolsWallet.address, oneHalfEth),
|
|
69
|
-
]);
|
|
70
|
-
// Wait 2 seconds for the negative auth cache to expire
|
|
71
|
-
await new Promise((f) => setTimeout(f, 2000));
|
|
72
|
-
// Validate alice can join the channel
|
|
73
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
74
|
-
const doneStart = Date.now();
|
|
75
|
-
// kill the clients
|
|
76
|
-
await bob.stopSync();
|
|
77
|
-
await alice.stopSync();
|
|
78
|
-
log('Done', Date.now() - doneStart);
|
|
79
|
-
});
|
|
80
|
-
test('eth balance gated join pass - join as linked wallet, assets in root wallet', async () => {
|
|
81
|
-
const ruleData = treeToRuleData(ethBalanceCheckOp(twoEth));
|
|
82
|
-
const { alice, bob, aliceSpaceDapp, carolSpaceDapp, aliceProvider, alicesWallet, carolsWallet, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], ruleData);
|
|
83
|
-
log("Joining alice's wallet as a linked wallet to carol's root wallet");
|
|
84
|
-
await linkWallets(carolSpaceDapp, carolProvider.wallet, aliceProvider.wallet);
|
|
85
|
-
log("Setting carol and alice's wallet balances to 1ETH and 0, respectively");
|
|
86
|
-
// Carol's cumulative balance across wallets: 2ETH
|
|
87
|
-
// Alice's cumulative balance: 0
|
|
88
|
-
await Promise.all([
|
|
89
|
-
TestEthBalance.setBaseBalance(carolsWallet.address, oneEth),
|
|
90
|
-
TestEthBalance.setRiverBalance(carolsWallet.address, oneEth),
|
|
91
|
-
TestEthBalance.setBaseBalance(alicesWallet.address, 0n),
|
|
92
|
-
]);
|
|
93
|
-
log('expect that alice can join the channel');
|
|
94
|
-
// Validate alice can join the channel
|
|
95
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
96
|
-
const doneStart = Date.now();
|
|
97
|
-
// kill the clients
|
|
98
|
-
await bob.stopSync();
|
|
99
|
-
await alice.stopSync();
|
|
100
|
-
log('Done', Date.now() - doneStart);
|
|
101
|
-
});
|
|
102
|
-
test('eth balance gate join pass - assets across wallets and networks', async () => {
|
|
103
|
-
const ruleData = treeToRuleData(ethBalanceCheckOp(twoEth));
|
|
104
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, carolsWallet, alicesWallet, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], ruleData);
|
|
105
|
-
// Link carol's wallet to alice's as root
|
|
106
|
-
await linkWallets(aliceSpaceDapp, aliceProvider.wallet, carolProvider.wallet);
|
|
107
|
-
// Set wallet balances to 0
|
|
108
|
-
await Promise.all([
|
|
109
|
-
TestEthBalance.setBaseBalance(carolsWallet.address, oneHalfEth),
|
|
110
|
-
TestEthBalance.setBaseBalance(alicesWallet.address, oneHalfEth),
|
|
111
|
-
TestEthBalance.setRiverBalance(carolsWallet.address, oneHalfEth),
|
|
112
|
-
TestEthBalance.setRiverBalance(alicesWallet.address, oneHalfEth),
|
|
113
|
-
]);
|
|
114
|
-
// Validate alice can join the channel
|
|
115
|
-
log('expect that alice can join the channel');
|
|
116
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
117
|
-
const doneStart = Date.now();
|
|
118
|
-
// kill the clients
|
|
119
|
-
await bob.stopSync();
|
|
120
|
-
await alice.stopSync();
|
|
121
|
-
log('Done', Date.now() - doneStart);
|
|
122
|
-
});
|
|
123
|
-
test('eth balance gate join fail - insufficient assets across wallets', async () => {
|
|
124
|
-
const ruleData = treeToRuleData(ethBalanceCheckOp(gtTwoEth));
|
|
125
|
-
const { alice, bob, carol, aliceSpaceDapp, carolSpaceDapp, aliceProvider, carolsWallet, alicesWallet, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], ruleData);
|
|
126
|
-
// Link carol's wallet to alice's as root
|
|
127
|
-
await linkWallets(aliceSpaceDapp, aliceProvider.wallet, carolProvider.wallet);
|
|
128
|
-
// Set wallet balances to 0
|
|
129
|
-
await Promise.all([
|
|
130
|
-
TestEthBalance.setBaseBalance(carolsWallet.address, oneHalfEth),
|
|
131
|
-
TestEthBalance.setBaseBalance(alicesWallet.address, oneHalfEth),
|
|
132
|
-
TestEthBalance.setRiverBalance(carolsWallet.address, oneHalfEth),
|
|
133
|
-
TestEthBalance.setRiverBalance(alicesWallet.address, oneHalfEth),
|
|
134
|
-
]);
|
|
135
|
-
log('expect neither alice nor carol can join the channel');
|
|
136
|
-
await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
137
|
-
await expectUserCannotJoinChannel(carol, carolSpaceDapp, spaceId, channelId);
|
|
138
|
-
const doneStart = Date.now();
|
|
139
|
-
// kill the clients
|
|
140
|
-
await bob.stopSync();
|
|
141
|
-
await alice.stopSync();
|
|
142
|
-
log('Done', Date.now() - doneStart);
|
|
143
|
-
});
|
|
144
|
-
});
|
|
145
|
-
//# sourceMappingURL=channelsWithEthBalanceEntitlements.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelsWithEthBalanceEntitlements.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelsWithUserEntitlements.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithUserEntitlements.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { linkWallets, setupChannelWithCustomRole, expectUserCanJoinChannel, expectUserCannotJoinChannel, } from '../../testUtils';
|
|
5
|
-
import { dlog } from '@towns-labs/utils';
|
|
6
|
-
import { NoopRuleData } from '@towns-labs/web3';
|
|
7
|
-
const log = dlog('csb:test:channelsWithUserEntitlements');
|
|
8
|
-
describe('channelsWithUserEntitlements', () => {
|
|
9
|
-
test('userEntitlementPass', async () => {
|
|
10
|
-
const { alice, bob, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole(['alice'], NoopRuleData);
|
|
11
|
-
// Validate alice can join the channel
|
|
12
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
13
|
-
const doneStart = Date.now();
|
|
14
|
-
// kill the clients
|
|
15
|
-
await bob.stopSync();
|
|
16
|
-
await alice.stopSync();
|
|
17
|
-
log('Done', Date.now() - doneStart);
|
|
18
|
-
});
|
|
19
|
-
test('userEntitlementFail', async () => {
|
|
20
|
-
const { alice, aliceSpaceDapp, bob, spaceId, channelId } = await setupChannelWithCustomRole(['carol'], NoopRuleData);
|
|
21
|
-
await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
22
|
-
const doneStart = Date.now();
|
|
23
|
-
// kill the clients
|
|
24
|
-
await bob.stopSync();
|
|
25
|
-
await alice.stopSync();
|
|
26
|
-
log('Done', Date.now() - doneStart);
|
|
27
|
-
});
|
|
28
|
-
test('userEntitlementPass - join as root, linked wallet whitelisted', async () => {
|
|
29
|
-
const { alice, aliceSpaceDapp, aliceProvider, carolProvider, bob, spaceId, channelId } = await setupChannelWithCustomRole(['carol'], NoopRuleData);
|
|
30
|
-
// Link carol's wallet to alice's as root
|
|
31
|
-
await linkWallets(aliceSpaceDapp, aliceProvider.wallet, carolProvider.wallet);
|
|
32
|
-
// Validate alice can join the channel
|
|
33
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
34
|
-
const doneStart = Date.now();
|
|
35
|
-
// kill the clients
|
|
36
|
-
await bob.stopSync();
|
|
37
|
-
await alice.stopSync();
|
|
38
|
-
log('Done', Date.now() - doneStart);
|
|
39
|
-
});
|
|
40
|
-
test('userEntitlementPass - join as linked wallet, root wallet whitelisted', async () => {
|
|
41
|
-
const { alice, aliceSpaceDapp, carolSpaceDapp, aliceProvider, carolProvider, bob, spaceId, channelId, } = await setupChannelWithCustomRole(['carol'], NoopRuleData);
|
|
42
|
-
// Link alice's wallet to Carol's wallet as root
|
|
43
|
-
await linkWallets(carolSpaceDapp, carolProvider.wallet, aliceProvider.wallet);
|
|
44
|
-
// Validate alice can join the channel
|
|
45
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
46
|
-
const doneStart = Date.now();
|
|
47
|
-
// kill the clients
|
|
48
|
-
await bob.stopSync();
|
|
49
|
-
await alice.stopSync();
|
|
50
|
-
log('Done linked-wallet-whitelist', Date.now() - doneStart);
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
//# sourceMappingURL=channelsWithUserEntitlements.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelsWithUserEntitlements.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithUserEntitlements.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"membershipRenewals.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/membershipRenewals.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { createTownWithRequirements, expectUserCanJoin, expectUserCanJoinChannel, getXchainConfigForTesting, linkWallets, waitFor, } from '../../testUtils';
|
|
5
|
-
import { NoopRuleData } from '@towns-labs/web3';
|
|
6
|
-
import { makeUserStreamId } from '../../../id';
|
|
7
|
-
import { MembershipOp, MembershipReason } from '@towns-labs/proto';
|
|
8
|
-
import { ethers } from 'ethers';
|
|
9
|
-
const SHORT_MEMBERSHIP_DURATION = 20; // seconds
|
|
10
|
-
const WAIT_TIME = SHORT_MEMBERSHIP_DURATION * 1_000 + 500;
|
|
11
|
-
// this test is long because it has to wait for the membership to expire in real time
|
|
12
|
-
// but the membership duration has to be long enough such that other actions/assertions can be made
|
|
13
|
-
// it tests both node entitlement checks for expired memberships, as well as client entitlement checks via space dapp
|
|
14
|
-
describe('membershipRenewals', () => {
|
|
15
|
-
test.concurrent('expired membership is not allowed to join', async () => {
|
|
16
|
-
const { spaceId, channelId, alice, bob, aliceSpaceDapp, aliceProvider, alicesWallet } = await createTownWithRequirements({
|
|
17
|
-
everyone: true,
|
|
18
|
-
users: [],
|
|
19
|
-
ruleData: NoopRuleData,
|
|
20
|
-
duration: SHORT_MEMBERSHIP_DURATION,
|
|
21
|
-
});
|
|
22
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
23
|
-
// wait for membership to expire
|
|
24
|
-
await new Promise((resolve) => setTimeout(resolve, WAIT_TIME));
|
|
25
|
-
await alice.leaveStream(spaceId);
|
|
26
|
-
const aliceWallets = await aliceSpaceDapp.getLinkedWallets(alicesWallet.address);
|
|
27
|
-
const membershipStatus = await aliceSpaceDapp.getMembershipStatus(spaceId, aliceWallets);
|
|
28
|
-
expect(membershipStatus.isMember).toBe(true);
|
|
29
|
-
expect(membershipStatus.isExpired).toBe(true);
|
|
30
|
-
const entitledWallet = await aliceSpaceDapp.getEntitledWalletForJoiningSpace(spaceId, alicesWallet.address, getXchainConfigForTesting());
|
|
31
|
-
expect(entitledWallet).toBeUndefined();
|
|
32
|
-
await expect(alice.joinStream(spaceId)).rejects.toThrow(/7:PERMISSION_DENIED/);
|
|
33
|
-
// Clean up
|
|
34
|
-
await alice.stopSync();
|
|
35
|
-
await bob.stopSync();
|
|
36
|
-
});
|
|
37
|
-
test.concurrent('user with expired membership is bounced from a channel after scrub is triggered', async () => {
|
|
38
|
-
const { spaceId, channelId, alice, carol, aliceSpaceDapp, aliceProvider, alicesWallet, carolSpaceDapp, carolProvider, carolsWallet, } = await createTownWithRequirements({
|
|
39
|
-
everyone: true,
|
|
40
|
-
users: [],
|
|
41
|
-
ruleData: NoopRuleData,
|
|
42
|
-
duration: SHORT_MEMBERSHIP_DURATION,
|
|
43
|
-
});
|
|
44
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
45
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
46
|
-
// Wait for membership to expire (and for channel to be eligible for scrubbing)
|
|
47
|
-
await new Promise((f) => setTimeout(f, WAIT_TIME));
|
|
48
|
-
await expectUserCanJoin(spaceId, channelId, 'carol', carol, carolSpaceDapp, carolsWallet.address, carolProvider.wallet);
|
|
49
|
-
// When carol's join event is added to the stream, it should trigger a scrub, and Alice
|
|
50
|
-
// should be booted from the stream since her membership has expired
|
|
51
|
-
await expect(carol.joinStream(channelId)).resolves.not.toThrow();
|
|
52
|
-
const userStreamView = (await alice.waitForStream(makeUserStreamId(alice.userId))).view;
|
|
53
|
-
const membership = userStreamView.userContent.getMembership(channelId);
|
|
54
|
-
// Wait for alice's user stream to have the leave event
|
|
55
|
-
await waitFor(async () => {
|
|
56
|
-
expect(membership?.op).toBe(MembershipOp.SO_LEAVE);
|
|
57
|
-
expect(membership?.reason).toBe(MembershipReason.MR_EXPIRED);
|
|
58
|
-
});
|
|
59
|
-
// Clean up
|
|
60
|
-
await alice.stopSync();
|
|
61
|
-
await carol.stopSync();
|
|
62
|
-
});
|
|
63
|
-
test.concurrent('user with unexpired membership is not bounced from a channel after scrub is triggered', async () => {
|
|
64
|
-
const { spaceId, channelId, alice, carol, aliceSpaceDapp, aliceProvider, alicesWallet, carolSpaceDapp, carolProvider, carolsWallet, } = await createTownWithRequirements({
|
|
65
|
-
everyone: true,
|
|
66
|
-
users: [],
|
|
67
|
-
ruleData: NoopRuleData,
|
|
68
|
-
duration: SHORT_MEMBERSHIP_DURATION,
|
|
69
|
-
});
|
|
70
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
71
|
-
// link a wallet to alice
|
|
72
|
-
const eoaWallet = ethers.Wallet.createRandom();
|
|
73
|
-
await linkWallets(aliceSpaceDapp, aliceProvider.wallet, eoaWallet);
|
|
74
|
-
// have alice join the channel
|
|
75
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
76
|
-
// Wait for membership to expire (and for channel to be eligible for scrubbing)
|
|
77
|
-
await new Promise((f) => setTimeout(f, WAIT_TIME));
|
|
78
|
-
// make sure this membership has expired
|
|
79
|
-
const space = aliceSpaceDapp.getSpace(spaceId);
|
|
80
|
-
const tokenId = await aliceSpaceDapp.getTokenIdOfOwner(spaceId, alicesWallet.address);
|
|
81
|
-
const expiresAt = await space?.Membership.read.expiresAt(tokenId);
|
|
82
|
-
const expiresAtTimestamp = expiresAt?.toNumber() || 0;
|
|
83
|
-
const now = new Date();
|
|
84
|
-
const timeUntilExpiration = (expiresAtTimestamp * 1000 - now.getTime()) / 1000;
|
|
85
|
-
expect(timeUntilExpiration).toBeLessThan(0);
|
|
86
|
-
// now mint a membership for the eoa wallet, which is linked to alice - mint only, not joining stream
|
|
87
|
-
await aliceSpaceDapp.joinSpace(spaceId, eoaWallet.address, aliceProvider.wallet);
|
|
88
|
-
const aliceWallets = await aliceSpaceDapp.getLinkedWallets(alicesWallet.address);
|
|
89
|
-
const membershipStatus = await aliceSpaceDapp.getMembershipStatus(spaceId, aliceWallets);
|
|
90
|
-
expect(membershipStatus.isMember).toBe(true);
|
|
91
|
-
expect(membershipStatus.isExpired).toBe(false);
|
|
92
|
-
const entitledWallet = await aliceSpaceDapp.getEntitledWalletForJoiningSpace(spaceId, alicesWallet.address, getXchainConfigForTesting());
|
|
93
|
-
expect(entitledWallet).toBeDefined();
|
|
94
|
-
await expectUserCanJoin(spaceId, channelId, 'carol', carol, carolSpaceDapp, carolsWallet.address, carolProvider.wallet);
|
|
95
|
-
// When carol's join event is added to the stream, it should trigger a scrub, and Alice
|
|
96
|
-
// should not be booted from the stream since her she has an additional token that is not expired
|
|
97
|
-
await expect(carol.joinStream(channelId)).resolves.not.toThrow();
|
|
98
|
-
const userStreamView = (await alice.waitForStream(makeUserStreamId(alice.userId))).view;
|
|
99
|
-
// Wait for alice's user stream to have the join event
|
|
100
|
-
await waitFor(async () => {
|
|
101
|
-
return expect(userStreamView.userContent.isMember(channelId, MembershipOp.SO_JOIN)).toBe(true);
|
|
102
|
-
});
|
|
103
|
-
// Clean up
|
|
104
|
-
await alice.stopSync();
|
|
105
|
-
await carol.stopSync();
|
|
106
|
-
});
|
|
107
|
-
test.concurrent('(BASE only) user can renew membership', async () => {
|
|
108
|
-
const _MEMBERSHIP_DURATION = 10;
|
|
109
|
-
const { spaceId, aliceSpaceDapp, aliceProvider, alicesWallet } = await createTownWithRequirements({
|
|
110
|
-
everyone: true,
|
|
111
|
-
users: [],
|
|
112
|
-
ruleData: NoopRuleData,
|
|
113
|
-
duration: _MEMBERSHIP_DURATION,
|
|
114
|
-
});
|
|
115
|
-
// Check that the local evaluation of the user's entitlements for joining the space
|
|
116
|
-
// passes.
|
|
117
|
-
const entitledWallet = await aliceSpaceDapp.getEntitledWalletForJoiningSpace(spaceId, alicesWallet.address, getXchainConfigForTesting());
|
|
118
|
-
expect(entitledWallet).toBeDefined();
|
|
119
|
-
const { issued } = await aliceSpaceDapp.joinSpace(spaceId, alicesWallet.address, aliceProvider.wallet);
|
|
120
|
-
expect(issued).toBe(true);
|
|
121
|
-
// wait for membership to expire
|
|
122
|
-
await new Promise((resolve) => setTimeout(resolve, _MEMBERSHIP_DURATION * 1_000 + 500));
|
|
123
|
-
const aliceWallets = await aliceSpaceDapp.getLinkedWallets(alicesWallet.address);
|
|
124
|
-
const membershipStatus = await aliceSpaceDapp.getMembershipStatus(spaceId, aliceWallets);
|
|
125
|
-
expect(membershipStatus.isMember).toBe(true);
|
|
126
|
-
expect(membershipStatus.isExpired).toBe(true);
|
|
127
|
-
const entitledWalletAfterExpiry = await aliceSpaceDapp.getEntitledWalletForJoiningSpace(spaceId, alicesWallet.address, getXchainConfigForTesting());
|
|
128
|
-
expect(entitledWalletAfterExpiry).toBeUndefined();
|
|
129
|
-
const space = aliceSpaceDapp.getSpace(spaceId);
|
|
130
|
-
const tokenId = membershipStatus.tokenId;
|
|
131
|
-
expect(tokenId).toBeDefined();
|
|
132
|
-
if (!tokenId || !space) {
|
|
133
|
-
throw new Error('TokenId or space not found');
|
|
134
|
-
}
|
|
135
|
-
const tx = await space.renewMembership({
|
|
136
|
-
tokenId,
|
|
137
|
-
signer: aliceProvider.wallet,
|
|
138
|
-
});
|
|
139
|
-
const receipt = await tx.wait();
|
|
140
|
-
expect(receipt.status).toBe(1);
|
|
141
|
-
const membershipStatusAfterRenewal = await space.getMembershipStatus(aliceWallets);
|
|
142
|
-
expect(membershipStatusAfterRenewal.isMember).toBe(true);
|
|
143
|
-
expect(membershipStatusAfterRenewal.isExpired).toBe(false);
|
|
144
|
-
// wait for caches to be invalidated
|
|
145
|
-
await new Promise((resolve) => setTimeout(resolve, 5_000));
|
|
146
|
-
const entitledWalletAfterRenewal = await aliceSpaceDapp.getEntitledWalletForJoiningSpace(spaceId, alicesWallet.address, getXchainConfigForTesting());
|
|
147
|
-
expect(entitledWalletAfterRenewal).toBeDefined();
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
//# sourceMappingURL=membershipRenewals.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"membershipRenewals.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/membershipRenewals.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaceWithComplexEntitlements.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/spaceWithComplexEntitlements.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|