@towns-labs/sdk 2.0.12 → 2.1.0
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 +11 -31
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +68 -327
- 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 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -20
- 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/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 +13 -0
- package/dist/sync-agent/db.d.ts.map +1 -0
- package/dist/sync-agent/db.js +24 -0
- package/dist/sync-agent/db.js.map +1 -0
- package/dist/sync-agent/gdms/models/gdm.d.ts +3 -3
- package/dist/sync-agent/gdms/models/gdm.d.ts.map +1 -1
- package/dist/sync-agent/river-connection/riverConnection.d.ts +1 -6
- package/dist/sync-agent/river-connection/riverConnection.d.ts.map +1 -1
- package/dist/sync-agent/river-connection/riverConnection.js +3 -8
- package/dist/sync-agent/river-connection/riverConnection.js.map +1 -1
- package/dist/sync-agent/syncAgent.d.ts +0 -6
- package/dist/sync-agent/syncAgent.d.ts.map +1 -1
- package/dist/sync-agent/syncAgent.js +0 -8
- package/dist/sync-agent/syncAgent.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_ne/sync-agent/member.test.d.ts +3 -0
- package/dist/tests/multi_ne/sync-agent/member.test.d.ts.map +1 -1
- package/dist/tests/multi_ne/sync-agent/member.test.js +19 -8
- package/dist/tests/multi_ne/sync-agent/member.test.js.map +1 -1
- package/dist/tests/multi_ne/sync-agent/members.test.d.ts +3 -0
- package/dist/tests/multi_ne/sync-agent/members.test.d.ts.map +1 -1
- package/dist/tests/multi_ne/sync-agent/members.test.js +24 -19
- package/dist/tests/multi_ne/sync-agent/members.test.js.map +1 -1
- package/dist/tests/multi_ne/sync-agent/streams.test.d.ts +3 -0
- package/dist/tests/multi_ne/sync-agent/streams.test.d.ts.map +1 -1
- package/dist/tests/multi_ne/sync-agent/streams.test.js +14 -14
- package/dist/tests/multi_ne/sync-agent/streams.test.js.map +1 -1
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.d.ts +3 -0
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.d.ts.map +1 -1
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.js +23 -15
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.js.map +1 -1
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.d.ts +3 -0
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.d.ts.map +1 -1
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.js +34 -70
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.js.map +1 -1
- package/dist/tests/multi_ne/sync-agent/timeline.test.js +68 -119
- package/dist/tests/multi_ne/sync-agent/timeline.test.js.map +1 -1
- package/dist/tests/multi_ne/sync-agent/user.test.js +10 -5
- package/dist/tests/multi_ne/sync-agent/user.test.js.map +1 -1
- 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 +1 -178
- package/dist/views/models/timelineEvent.js.map +1 -1
- package/dist/views/models/timelineTypes.d.ts +3 -29
- package/dist/views/models/timelineTypes.d.ts.map +1 -1
- package/dist/views/models/timelineTypes.js +0 -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/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 +9 -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 -45
- package/dist/sync-agent/dms/dms.js.map +0 -1
- package/dist/sync-agent/dms/models/dm.d.ts +0 -73
- package/dist/sync-agent/dms/models/dm.d.ts.map +0 -1
- package/dist/sync-agent/dms/models/dm.js +0 -143
- package/dist/sync-agent/dms/models/dm.js.map +0 -1
- package/dist/sync-agent/spaces/models/channel.d.ts +0 -102
- package/dist/sync-agent/spaces/models/channel.d.ts.map +0 -1
- package/dist/sync-agent/spaces/models/channel.js +0 -169
- package/dist/sync-agent/spaces/models/channel.js.map +0 -1
- package/dist/sync-agent/spaces/models/space.d.ts +0 -56
- package/dist/sync-agent/spaces/models/space.d.ts.map +0 -1
- package/dist/sync-agent/spaces/models/space.js +0 -115
- package/dist/sync-agent/spaces/models/space.js.map +0 -1
- package/dist/sync-agent/spaces/spaces.d.ts +0 -25
- package/dist/sync-agent/spaces/spaces.d.ts.map +0 -1
- package/dist/sync-agent/spaces/spaces.js +0 -56
- 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 +0 -5
- 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 +0 -5
- 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_ne/sync-agent/spaces.test.d.ts +0 -2
- package/dist/tests/multi_ne/sync-agent/spaces.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/sync-agent/spaces.test.js +0 -33
- package/dist/tests/multi_ne/sync-agent/spaces.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,109 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { createTownWithRequirements, everyoneMembershipStruct, expectUserCanJoin, getXchainConfigForTesting, setupWalletsAndContexts, waitFor, createRole, createSpaceAndDefaultChannel, } from '../../testUtils';
|
|
5
|
-
import { dlog } from '@towns-labs/utils';
|
|
6
|
-
import { MembershipOp } from '@towns-labs/proto';
|
|
7
|
-
import { NoopRuleData, Permission } from '@towns-labs/web3';
|
|
8
|
-
const log = dlog('csb:test:spaceWithEntitlements');
|
|
9
|
-
describe('spaceWithEntitlements', () => {
|
|
10
|
-
test('banned user not entitled to join space', async () => {
|
|
11
|
-
const { alice, alicesWallet, aliceSpaceDapp, bob, bobSpaceDapp, bobProvider, spaceId, channelId, } = await createTownWithRequirements({
|
|
12
|
-
everyone: true,
|
|
13
|
-
users: [],
|
|
14
|
-
ruleData: NoopRuleData,
|
|
15
|
-
});
|
|
16
|
-
// Have alice join the space so we can ban her
|
|
17
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, bobProvider.wallet);
|
|
18
|
-
const tx = await bobSpaceDapp.banWalletAddress(spaceId, alicesWallet.address, bobProvider.wallet);
|
|
19
|
-
await tx.wait();
|
|
20
|
-
// Wait 2 seconds for the banning cache to expire on the stream node
|
|
21
|
-
await new Promise((f) => setTimeout(f, 2000));
|
|
22
|
-
// Alice no longer satisfies space entitlements
|
|
23
|
-
const entitledWallet = await aliceSpaceDapp.getEntitledWalletForJoiningSpace(spaceId, alicesWallet.address, getXchainConfigForTesting());
|
|
24
|
-
expect(entitledWallet).toBeUndefined();
|
|
25
|
-
// unban alice
|
|
26
|
-
const unbanTx = await bobSpaceDapp.unbanWalletAddress(spaceId, alicesWallet.address, bobProvider.wallet);
|
|
27
|
-
await unbanTx.wait();
|
|
28
|
-
// Wait 5 seconds for the caches to expire
|
|
29
|
-
await new Promise((f) => setTimeout(f, 5000));
|
|
30
|
-
// Alice is entitled to join the space again
|
|
31
|
-
const entitledWallet2 = await aliceSpaceDapp.getEntitledWalletForJoiningSpace(spaceId, alicesWallet.address, getXchainConfigForTesting());
|
|
32
|
-
expect(entitledWallet2).toBeDefined();
|
|
33
|
-
const doneStart = Date.now();
|
|
34
|
-
// kill the clients
|
|
35
|
-
await bob.stopSync();
|
|
36
|
-
await alice.stopSync();
|
|
37
|
-
log('Done', Date.now() - doneStart);
|
|
38
|
-
});
|
|
39
|
-
// Banning with entitlements — users need permission to ban other users.
|
|
40
|
-
test('owner can ban other users', async () => {
|
|
41
|
-
log('start ownerCanBanOtherUsers');
|
|
42
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, alicesWallet, spaceId, channelId, bobUserStreamView, } = await createTownWithRequirements({
|
|
43
|
-
everyone: true,
|
|
44
|
-
users: [],
|
|
45
|
-
ruleData: NoopRuleData,
|
|
46
|
-
});
|
|
47
|
-
log('Alice should be able to join space');
|
|
48
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
49
|
-
// Alice cannot kick Bob
|
|
50
|
-
log('Alice cannot kick bob');
|
|
51
|
-
await expect(alice.removeUser(spaceId, bob.userId)).rejects.toThrow(/7:PERMISSION_DENIED/);
|
|
52
|
-
// Bob is still a a member — Alice can't kick him because he's the owner
|
|
53
|
-
await waitFor(() => {
|
|
54
|
-
expect(bobUserStreamView.userContent.isMember(spaceId, MembershipOp.SO_JOIN)).toBe(true);
|
|
55
|
-
expect(bobUserStreamView.userContent.isMember(channelId, MembershipOp.SO_JOIN)).toBe(true);
|
|
56
|
-
});
|
|
57
|
-
// Bob kicks Alice!
|
|
58
|
-
log('Bob kicks Alice');
|
|
59
|
-
await expect(bob.removeUser(spaceId, alice.userId)).resolves.not.toThrow();
|
|
60
|
-
// Alice is no longer a member of the space or channel
|
|
61
|
-
log('Alice is no longer a member of the space or channel');
|
|
62
|
-
const aliceUserStreamView = alice.stream(alice.userStreamId).view;
|
|
63
|
-
await waitFor(() => {
|
|
64
|
-
expect(aliceUserStreamView.userContent.isMember(spaceId, MembershipOp.SO_JOIN)).toBe(false);
|
|
65
|
-
expect(aliceUserStreamView.userContent.isMember(channelId, MembershipOp.SO_JOIN)).toBe(false);
|
|
66
|
-
});
|
|
67
|
-
// kill the clients
|
|
68
|
-
await bob.stopSync();
|
|
69
|
-
await alice.stopSync();
|
|
70
|
-
log('Done');
|
|
71
|
-
});
|
|
72
|
-
test('user with banning permission can ban other users', async () => {
|
|
73
|
-
log('start user with banning permission can ban other users');
|
|
74
|
-
const { bob, bobProvider, bobSpaceDapp, alice, aliceSpaceDapp, aliceProvider, alicesWallet, carol, carolsWallet, carolProvider, carolSpaceDapp, } = await setupWalletsAndContexts();
|
|
75
|
-
const everyoneMembership = await everyoneMembershipStruct(bobSpaceDapp, bob);
|
|
76
|
-
const { spaceId, defaultChannelId: channelId } = await createSpaceAndDefaultChannel(bob, bobSpaceDapp, bobProvider.wallet, "bob's town", everyoneMembership);
|
|
77
|
-
log('Alice should be able to join space');
|
|
78
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
79
|
-
await expectUserCanJoin(spaceId, channelId, 'carol', carol, carolSpaceDapp, carolsWallet.address, carolProvider.wallet);
|
|
80
|
-
// Alice cannot kick Carol yet
|
|
81
|
-
log('Alice cannot kick Carol');
|
|
82
|
-
await expect(alice.removeUser(spaceId, carol.userId)).rejects.toThrow(/7:PERMISSION_DENIED/);
|
|
83
|
-
let carolUserStreamView = carol.stream(carol.userStreamId).view;
|
|
84
|
-
// Carol is still a member
|
|
85
|
-
await waitFor(() => {
|
|
86
|
-
expect(carolUserStreamView.userContent.isMember(spaceId, MembershipOp.SO_JOIN)).toBe(true);
|
|
87
|
-
expect(carolUserStreamView.userContent.isMember(channelId, MembershipOp.SO_JOIN)).toBe(true);
|
|
88
|
-
});
|
|
89
|
-
// Create an admin role for Alice that has permission to modify banning
|
|
90
|
-
const { error: roleError } = await createRole(bobSpaceDapp, bobProvider, spaceId, 'admin role', [Permission.ModifyBanning], [alice.userId], NoopRuleData, bobProvider.wallet);
|
|
91
|
-
expect(roleError).toBeUndefined();
|
|
92
|
-
// Wait 2 seconds for the banning cache to expire on the stream node
|
|
93
|
-
await new Promise((f) => setTimeout(f, 2000));
|
|
94
|
-
log('Alice kicks Carol');
|
|
95
|
-
await expect(alice.removeUser(spaceId, carol.userId)).resolves.not.toThrow();
|
|
96
|
-
log('Carol is no longer a member of the space or channel');
|
|
97
|
-
carolUserStreamView = carol.stream(carol.userStreamId).view;
|
|
98
|
-
await waitFor(() => {
|
|
99
|
-
expect(carolUserStreamView.userContent.isMember(spaceId, MembershipOp.SO_JOIN)).toBe(false);
|
|
100
|
-
expect(carolUserStreamView.userContent.isMember(channelId, MembershipOp.SO_JOIN)).toBe(false);
|
|
101
|
-
});
|
|
102
|
-
// kill the clients
|
|
103
|
-
await bob.stopSync();
|
|
104
|
-
await alice.stopSync();
|
|
105
|
-
await carol.stopSync();
|
|
106
|
-
log('Done');
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
//# sourceMappingURL=spaceWithEntitlements.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaceWithEntitlements.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/spaceWithEntitlements.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaceWithErc20Entitlements.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/spaceWithErc20Entitlements.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { createTownWithRequirements, createUserStreamAndSyncClient, everyoneMembershipStruct, expectUserCannotJoinSpace, expectUserCanJoin, linkWallets, erc20CheckOp, } from '../../testUtils';
|
|
5
|
-
import { dlog } from '@towns-labs/utils';
|
|
6
|
-
import { TestERC20, treeToRuleData } from '@towns-labs/web3';
|
|
7
|
-
const log = dlog('csb:test:spaceWithErc20Entitlements');
|
|
8
|
-
describe('spaceWithErc20Entitlements', () => {
|
|
9
|
-
test('erc20 gate join pass', async () => {
|
|
10
|
-
const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
|
|
11
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, alicesWallet, spaceId, channelId } = await createTownWithRequirements({
|
|
12
|
-
everyone: false,
|
|
13
|
-
users: [],
|
|
14
|
-
ruleData,
|
|
15
|
-
});
|
|
16
|
-
// join alice
|
|
17
|
-
log('Minting 100 ERC20 tokens for alice');
|
|
18
|
-
await TestERC20.publicMint('TestERC20', alicesWallet.address, 100);
|
|
19
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
20
|
-
const doneStart = Date.now();
|
|
21
|
-
// kill the clients
|
|
22
|
-
await bob.stopSync();
|
|
23
|
-
await alice.stopSync();
|
|
24
|
-
log('Done', Date.now() - doneStart);
|
|
25
|
-
});
|
|
26
|
-
test('erc20 gate join fail', async () => {
|
|
27
|
-
const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
|
|
28
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, alicesWallet, spaceId } = await createTownWithRequirements({
|
|
29
|
-
everyone: false,
|
|
30
|
-
users: [],
|
|
31
|
-
ruleData,
|
|
32
|
-
});
|
|
33
|
-
// Have alice create her own space so she can initialize her user stream.
|
|
34
|
-
// Then she will attempt to join the space from the client, which should fail.
|
|
35
|
-
await createUserStreamAndSyncClient(alice, aliceSpaceDapp, 'alice', await everyoneMembershipStruct(aliceSpaceDapp, alice), aliceProvider.wallet);
|
|
36
|
-
await expectUserCannotJoinSpace(spaceId, alice, aliceSpaceDapp, alicesWallet.address);
|
|
37
|
-
const doneStart = Date.now();
|
|
38
|
-
// kill the clients
|
|
39
|
-
await bob.stopSync();
|
|
40
|
-
await alice.stopSync();
|
|
41
|
-
log('Done', Date.now() - doneStart);
|
|
42
|
-
});
|
|
43
|
-
test('erc20 gate join pass - join as root, asset in linked wallet', async () => {
|
|
44
|
-
const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
|
|
45
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, alicesWallet, carolsWallet, carolProvider, spaceId, channelId, } = await createTownWithRequirements({
|
|
46
|
-
everyone: false,
|
|
47
|
-
users: [],
|
|
48
|
-
ruleData: ruleData,
|
|
49
|
-
});
|
|
50
|
-
await linkWallets(aliceSpaceDapp, aliceProvider.wallet, carolProvider.wallet);
|
|
51
|
-
// join alice
|
|
52
|
-
log('Minting 50 ERC20 tokens for carols wallet, which is linked to alices wallet');
|
|
53
|
-
await TestERC20.publicMint('TestERC20', carolsWallet.address, 50);
|
|
54
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
55
|
-
const doneStart = Date.now();
|
|
56
|
-
// kill the clients
|
|
57
|
-
await bob.stopSync();
|
|
58
|
-
await alice.stopSync();
|
|
59
|
-
log('Done', Date.now() - doneStart);
|
|
60
|
-
});
|
|
61
|
-
test('erc20 gate join pass - join as linked wallet, asset in root wallet', async () => {
|
|
62
|
-
const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
|
|
63
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, alicesWallet, carolsWallet, carolProvider, carolSpaceDapp, spaceId, channelId, } = await createTownWithRequirements({
|
|
64
|
-
everyone: false,
|
|
65
|
-
users: [],
|
|
66
|
-
ruleData: ruleData,
|
|
67
|
-
});
|
|
68
|
-
log("Joining alice's wallet as a linked wallet to carols root wallet");
|
|
69
|
-
await linkWallets(carolSpaceDapp, carolProvider.wallet, aliceProvider.wallet);
|
|
70
|
-
// join alice
|
|
71
|
-
log('Minting an NFT for carols wallet, which is the root to alices wallet');
|
|
72
|
-
await TestERC20.publicMint('TestERC20', carolsWallet.address, 50);
|
|
73
|
-
log('expect that alice can join the space');
|
|
74
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
75
|
-
const doneStart = Date.now();
|
|
76
|
-
// kill the clients
|
|
77
|
-
await bob.stopSync();
|
|
78
|
-
await alice.stopSync();
|
|
79
|
-
log('Done', Date.now() - doneStart);
|
|
80
|
-
});
|
|
81
|
-
test('erc20 gate join pass - assets across wallets', async () => {
|
|
82
|
-
const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
|
|
83
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, alicesWallet, carolsWallet, carolProvider, carolSpaceDapp, spaceId, channelId, } = await createTownWithRequirements({
|
|
84
|
-
everyone: false,
|
|
85
|
-
users: [],
|
|
86
|
-
ruleData: ruleData,
|
|
87
|
-
});
|
|
88
|
-
log("Joining alice's wallet as a linked wallet to carols root wallet");
|
|
89
|
-
await linkWallets(carolSpaceDapp, carolProvider.wallet, aliceProvider.wallet);
|
|
90
|
-
// join alice
|
|
91
|
-
log('Minting an NFT for carols wallet, which is the root to alices wallet');
|
|
92
|
-
await TestERC20.publicMint('TestERC20', carolsWallet.address, 25);
|
|
93
|
-
await TestERC20.publicMint('TestERC20', alicesWallet.address, 25);
|
|
94
|
-
log('expect that alice can join the space');
|
|
95
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
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
|
-
});
|
|
103
|
-
//# sourceMappingURL=spaceWithErc20Entitlements.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaceWithErc20Entitlements.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/spaceWithErc20Entitlements.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaceWithErc721Entitlements.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/spaceWithErc721Entitlements.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { createTownWithRequirements, createUserStreamAndSyncClient, everyoneMembershipStruct, expectUserCannotJoinSpace, expectUserCanJoin, linkWallets, getNftRuleData, } from '../../testUtils';
|
|
5
|
-
import { dlog } from '@towns-labs/utils';
|
|
6
|
-
import { TestERC721 } from '@towns-labs/web3';
|
|
7
|
-
const log = dlog('csb:test:spaceWithErc721Entitlements');
|
|
8
|
-
describe('spaceWithErc721Entitlements', () => {
|
|
9
|
-
let testNft1Address;
|
|
10
|
-
beforeAll(async () => {
|
|
11
|
-
testNft1Address = await TestERC721.getContractAddress('TestNFT1');
|
|
12
|
-
});
|
|
13
|
-
test('erc721 gate join pass - join as root, asset in linked wallet', async () => {
|
|
14
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, alicesWallet, carolsWallet, carolProvider, spaceId, channelId, } = await createTownWithRequirements({
|
|
15
|
-
everyone: false,
|
|
16
|
-
users: [],
|
|
17
|
-
ruleData: getNftRuleData(testNft1Address),
|
|
18
|
-
});
|
|
19
|
-
await linkWallets(aliceSpaceDapp, aliceProvider.wallet, carolProvider.wallet);
|
|
20
|
-
// join alice
|
|
21
|
-
log('Minting an NFT for carols wallet, which is linked to alices wallet');
|
|
22
|
-
await TestERC721.publicMint('TestNFT1', carolsWallet.address);
|
|
23
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
24
|
-
const doneStart = Date.now();
|
|
25
|
-
// kill the clients
|
|
26
|
-
await bob.stopSync();
|
|
27
|
-
await alice.stopSync();
|
|
28
|
-
log('Done', Date.now() - doneStart);
|
|
29
|
-
});
|
|
30
|
-
test('erc721 gate join pass - join as linked wallet, asset in root wallet', async () => {
|
|
31
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, alicesWallet, carolsWallet, carolProvider, carolSpaceDapp, spaceId, channelId, } = await createTownWithRequirements({
|
|
32
|
-
everyone: false,
|
|
33
|
-
users: [],
|
|
34
|
-
ruleData: getNftRuleData(testNft1Address),
|
|
35
|
-
});
|
|
36
|
-
log("Joining alice's wallet as a linked wallet to carols root wallet");
|
|
37
|
-
await linkWallets(carolSpaceDapp, carolProvider.wallet, aliceProvider.wallet);
|
|
38
|
-
// join alice
|
|
39
|
-
log('Minting an NFT for carols wallet, which is the root to alices wallet');
|
|
40
|
-
await TestERC721.publicMint('TestNFT1', carolsWallet.address);
|
|
41
|
-
log('expect that alice can join the space');
|
|
42
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
43
|
-
const doneStart = Date.now();
|
|
44
|
-
// kill the clients
|
|
45
|
-
await bob.stopSync();
|
|
46
|
-
await alice.stopSync();
|
|
47
|
-
log('Done', Date.now() - doneStart);
|
|
48
|
-
});
|
|
49
|
-
test('erc721 gate join pass', async () => {
|
|
50
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, alicesWallet, spaceId, channelId } = await createTownWithRequirements({
|
|
51
|
-
everyone: false,
|
|
52
|
-
users: [],
|
|
53
|
-
ruleData: getNftRuleData(testNft1Address),
|
|
54
|
-
});
|
|
55
|
-
// join alice
|
|
56
|
-
log('Minting an NFT for alice');
|
|
57
|
-
await TestERC721.publicMint('TestNFT1', alicesWallet.address);
|
|
58
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
59
|
-
const doneStart = Date.now();
|
|
60
|
-
// kill the clients
|
|
61
|
-
await bob.stopSync();
|
|
62
|
-
await alice.stopSync();
|
|
63
|
-
log('Done', Date.now() - doneStart);
|
|
64
|
-
});
|
|
65
|
-
test('erc721 gate join fail', async () => {
|
|
66
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, alicesWallet, spaceId } = await createTownWithRequirements({
|
|
67
|
-
everyone: false,
|
|
68
|
-
users: [],
|
|
69
|
-
ruleData: getNftRuleData(testNft1Address),
|
|
70
|
-
});
|
|
71
|
-
log('Alice about to attempt to join space', { alicesUserId: alice.userId });
|
|
72
|
-
const { issued } = await aliceSpaceDapp.joinSpace(spaceId, alicesWallet.address, aliceProvider.wallet);
|
|
73
|
-
expect(issued).toBe(false);
|
|
74
|
-
// Have alice create a user stream attached to her own space.
|
|
75
|
-
// Then she will attempt to join the space from the client, which should fail.
|
|
76
|
-
await createUserStreamAndSyncClient(alice, aliceSpaceDapp, 'alice', await everyoneMembershipStruct(aliceSpaceDapp, alice), aliceProvider.wallet);
|
|
77
|
-
// Alice cannot join the space on the stream node.
|
|
78
|
-
await expectUserCannotJoinSpace(spaceId, alice, aliceSpaceDapp, alicesWallet.address);
|
|
79
|
-
// kill the clients
|
|
80
|
-
await bob.stopSync();
|
|
81
|
-
await alice.stopSync();
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
//# sourceMappingURL=spaceWithErc721Entitlements.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaceWithErc721Entitlements.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/spaceWithErc721Entitlements.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaceWithEthBalanceEntitlements.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { createTownWithRequirements, createUserStreamAndSyncClient, everyoneMembershipStruct, expectUserCannotJoinSpace, expectUserCanJoin, linkWallets, ethBalanceCheckOp, oneEth, oneHalfEth, threeEth, twoEth, } from '../../testUtils';
|
|
5
|
-
import { dlog } from '@towns-labs/utils';
|
|
6
|
-
import { TestEthBalance, treeToRuleData } from '@towns-labs/web3';
|
|
7
|
-
const log = dlog('csb:test:spaceWithEthBalanceEntitlements');
|
|
8
|
-
describe('spaceWithEthBalanceEntitlements', () => {
|
|
9
|
-
test('eth balance gated join pass', async () => {
|
|
10
|
-
const ruleData = treeToRuleData(ethBalanceCheckOp(oneEth));
|
|
11
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, alicesWallet, spaceId, channelId } = await createTownWithRequirements({
|
|
12
|
-
everyone: false,
|
|
13
|
-
users: [],
|
|
14
|
-
ruleData,
|
|
15
|
-
});
|
|
16
|
-
await TestEthBalance.setBaseBalance(alicesWallet.address, twoEth);
|
|
17
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
18
|
-
const doneStart = Date.now();
|
|
19
|
-
// kill the clients
|
|
20
|
-
await bob.stopSync();
|
|
21
|
-
await alice.stopSync();
|
|
22
|
-
log('Done', Date.now() - doneStart);
|
|
23
|
-
});
|
|
24
|
-
test('eth balance gated join pass - across networks', async () => {
|
|
25
|
-
const ruleData = treeToRuleData(ethBalanceCheckOp(twoEth));
|
|
26
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, alicesWallet, spaceId, channelId } = await createTownWithRequirements({
|
|
27
|
-
everyone: false,
|
|
28
|
-
users: [],
|
|
29
|
-
ruleData,
|
|
30
|
-
});
|
|
31
|
-
await Promise.all([
|
|
32
|
-
// Overprovision alice's wallet to pay for membership, gas fees for joining town
|
|
33
|
-
TestEthBalance.setBaseBalance(alicesWallet.address, oneEth + oneHalfEth),
|
|
34
|
-
TestEthBalance.setRiverBalance(alicesWallet.address, oneEth),
|
|
35
|
-
]);
|
|
36
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
37
|
-
const doneStart = Date.now();
|
|
38
|
-
// kill the clients
|
|
39
|
-
await bob.stopSync();
|
|
40
|
-
await alice.stopSync();
|
|
41
|
-
log('Done', Date.now() - doneStart);
|
|
42
|
-
});
|
|
43
|
-
test('eth balance gated join fail', async () => {
|
|
44
|
-
const ruleData = treeToRuleData(ethBalanceCheckOp(oneEth));
|
|
45
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, alicesWallet, spaceId } = await createTownWithRequirements({
|
|
46
|
-
everyone: false,
|
|
47
|
-
users: [],
|
|
48
|
-
ruleData,
|
|
49
|
-
});
|
|
50
|
-
// Explicitly set alice's balance to not enough, but not zero, since she has to pay to join
|
|
51
|
-
// the town.
|
|
52
|
-
await TestEthBalance.setBaseBalance(alicesWallet.address, oneHalfEth);
|
|
53
|
-
// Have alice create her own space so she can initialize her user stream.
|
|
54
|
-
// Then she will attempt to join the space from the client, which should fail
|
|
55
|
-
// for permissions reasons.
|
|
56
|
-
await createUserStreamAndSyncClient(alice, aliceSpaceDapp, 'alice', await everyoneMembershipStruct(aliceSpaceDapp, alice), aliceProvider.wallet);
|
|
57
|
-
await expectUserCannotJoinSpace(spaceId, alice, aliceSpaceDapp, alicesWallet.address);
|
|
58
|
-
const doneStart = Date.now();
|
|
59
|
-
// kill the clients
|
|
60
|
-
await bob.stopSync();
|
|
61
|
-
await alice.stopSync();
|
|
62
|
-
log('Done', Date.now() - doneStart);
|
|
63
|
-
});
|
|
64
|
-
test('eth balance gated join pass - join as root, linked wallet entitled', async () => {
|
|
65
|
-
const ruleData = treeToRuleData(ethBalanceCheckOp(threeEth));
|
|
66
|
-
const { alice, bob, aliceSpaceDapp, aliceProvider, carolsWallet, alicesWallet, carolProvider, spaceId, channelId, } = await createTownWithRequirements({
|
|
67
|
-
everyone: false,
|
|
68
|
-
users: [],
|
|
69
|
-
ruleData,
|
|
70
|
-
});
|
|
71
|
-
// Link carol's wallet to alice's as root
|
|
72
|
-
await linkWallets(aliceSpaceDapp, aliceProvider.wallet, carolProvider.wallet);
|
|
73
|
-
// Setting Carol's cumulative balance to 3ETH
|
|
74
|
-
await Promise.all([
|
|
75
|
-
// Overprovision alice's wallet to pay for membership, gas fees for joining town
|
|
76
|
-
TestEthBalance.setBaseBalance(alicesWallet.address, oneHalfEth),
|
|
77
|
-
TestEthBalance.setRiverBalance(carolsWallet.address, oneEth),
|
|
78
|
-
TestEthBalance.setBaseBalance(carolsWallet.address, twoEth),
|
|
79
|
-
]);
|
|
80
|
-
// Validate alice can join the space
|
|
81
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
82
|
-
const doneStart = Date.now();
|
|
83
|
-
// kill the clients
|
|
84
|
-
await bob.stopSync();
|
|
85
|
-
await alice.stopSync();
|
|
86
|
-
log('Done', Date.now() - doneStart);
|
|
87
|
-
});
|
|
88
|
-
test('eth balance gated join pass - join as linked wallet, assets in root wallet', async () => {
|
|
89
|
-
const ruleData = treeToRuleData(ethBalanceCheckOp(twoEth));
|
|
90
|
-
const { alice, bob, aliceSpaceDapp, carolSpaceDapp, aliceProvider, alicesWallet, carolsWallet, carolProvider, spaceId, channelId, } = await createTownWithRequirements({
|
|
91
|
-
everyone: false,
|
|
92
|
-
users: [],
|
|
93
|
-
ruleData,
|
|
94
|
-
});
|
|
95
|
-
log("Joining alice's wallet as a linked wallet to carol's root wallet");
|
|
96
|
-
await linkWallets(carolSpaceDapp, carolProvider.wallet, aliceProvider.wallet);
|
|
97
|
-
log('Setting carol cumulative balance to 2ETH');
|
|
98
|
-
await Promise.all([
|
|
99
|
-
TestEthBalance.setBaseBalance(carolsWallet.address, oneEth),
|
|
100
|
-
TestEthBalance.setRiverBalance(carolsWallet.address, oneEth),
|
|
101
|
-
// Overprovision alice's wallet to pay for membership, gas fees for joining town
|
|
102
|
-
TestEthBalance.setBaseBalance(alicesWallet.address, oneHalfEth),
|
|
103
|
-
]);
|
|
104
|
-
log('expect that alice can join the space');
|
|
105
|
-
// Validate alice can join the space
|
|
106
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
107
|
-
const doneStart = Date.now();
|
|
108
|
-
// kill the clients
|
|
109
|
-
await bob.stopSync();
|
|
110
|
-
await alice.stopSync();
|
|
111
|
-
log('Done', Date.now() - doneStart);
|
|
112
|
-
});
|
|
113
|
-
test('eth balance gated join pass - assets must accumulate across wallets', async () => {
|
|
114
|
-
const ruleData = treeToRuleData(ethBalanceCheckOp(twoEth));
|
|
115
|
-
const { alice, bob, aliceSpaceDapp, carolSpaceDapp, aliceProvider, alicesWallet, carolsWallet, carolProvider, spaceId, channelId, } = await createTownWithRequirements({
|
|
116
|
-
everyone: false,
|
|
117
|
-
users: [],
|
|
118
|
-
ruleData,
|
|
119
|
-
});
|
|
120
|
-
log("Joining alice's wallet as a linked wallet to carol's root wallet");
|
|
121
|
-
await linkWallets(carolSpaceDapp, carolProvider.wallet, aliceProvider.wallet);
|
|
122
|
-
log('Setting carol cumulative balance to 2ETH');
|
|
123
|
-
await Promise.all([
|
|
124
|
-
TestEthBalance.setBaseBalance(carolsWallet.address, oneHalfEth),
|
|
125
|
-
TestEthBalance.setRiverBalance(carolsWallet.address, oneHalfEth),
|
|
126
|
-
TestEthBalance.setBaseBalance(alicesWallet.address, oneHalfEth),
|
|
127
|
-
// Overprovision alice's wallet to pay for membership, gas fees for joining town
|
|
128
|
-
TestEthBalance.setRiverBalance(alicesWallet.address, oneEth),
|
|
129
|
-
]);
|
|
130
|
-
log('expect that alice can join the space');
|
|
131
|
-
// Validate alice can join the space
|
|
132
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
133
|
-
const doneStart = Date.now();
|
|
134
|
-
// kill the clients
|
|
135
|
-
await bob.stopSync();
|
|
136
|
-
await alice.stopSync();
|
|
137
|
-
log('Done', Date.now() - doneStart);
|
|
138
|
-
});
|
|
139
|
-
test('eth balance gate join fail - insufficient assets across wallets', async () => {
|
|
140
|
-
const ruleData = treeToRuleData(ethBalanceCheckOp(threeEth));
|
|
141
|
-
const { alice, bob, carol, aliceSpaceDapp, carolSpaceDapp, aliceProvider, carolsWallet, alicesWallet, carolProvider, spaceId, } = await createTownWithRequirements({
|
|
142
|
-
everyone: false,
|
|
143
|
-
users: [],
|
|
144
|
-
ruleData,
|
|
145
|
-
});
|
|
146
|
-
// Link carol's wallet to alice's as root
|
|
147
|
-
await linkWallets(aliceSpaceDapp, aliceProvider.wallet, carolProvider.wallet);
|
|
148
|
-
// Set wallet balances to sum to < 3ETH but also be nonzero, as they have to pay to join the town.
|
|
149
|
-
await Promise.all([
|
|
150
|
-
TestEthBalance.setBaseBalance(carolsWallet.address, oneHalfEth),
|
|
151
|
-
TestEthBalance.setBaseBalance(alicesWallet.address, oneHalfEth),
|
|
152
|
-
]);
|
|
153
|
-
// Have alice and carol create their own space so they can initialize their user streams.
|
|
154
|
-
// Then they will attempt to join the space from the client, which should fail
|
|
155
|
-
// for permissions reasons.
|
|
156
|
-
await createUserStreamAndSyncClient(alice, aliceSpaceDapp, 'alice', await everyoneMembershipStruct(aliceSpaceDapp, alice), aliceProvider.wallet);
|
|
157
|
-
await createUserStreamAndSyncClient(carol, carolSpaceDapp, 'carol', await everyoneMembershipStruct(carolSpaceDapp, carol), carolProvider.wallet);
|
|
158
|
-
log('expect neither alice nor carol can join the space');
|
|
159
|
-
await expectUserCannotJoinSpace(spaceId, alice, aliceSpaceDapp, alicesWallet.address);
|
|
160
|
-
await expectUserCannotJoinSpace(spaceId, carol, carolSpaceDapp, carolsWallet.address);
|
|
161
|
-
const doneStart = Date.now();
|
|
162
|
-
// kill the clients
|
|
163
|
-
await bob.stopSync();
|
|
164
|
-
await alice.stopSync();
|
|
165
|
-
log('Done', Date.now() - doneStart);
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
//# sourceMappingURL=spaceWithEthBalanceEntitlements.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaceWithEthBalanceEntitlements.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaceWithThreeNestedEntitlement.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { createTownWithRequirements, createUserStreamAndSyncClient, everyoneMembershipStruct, expectUserCannotJoinSpace, expectUserCanJoin, setupWalletsAndContexts, } from '../../testUtils';
|
|
5
|
-
import { dlog } from '@towns-labs/utils';
|
|
6
|
-
import { TestERC721, createExternalNFTStruct } from '@towns-labs/web3';
|
|
7
|
-
const log = dlog('csb:test:spaceWithThreeNestedEntitlement');
|
|
8
|
-
describe('spaceWithThreeNestedEntitlement', () => {
|
|
9
|
-
// This test takes almost one minute to run in CI and therefore gets its own file.
|
|
10
|
-
test('user with only one entitlement from 3-nested NFT rule data can join space', async () => {
|
|
11
|
-
const testNft1 = 'TestNft1';
|
|
12
|
-
const testNft2 = 'TestNft2';
|
|
13
|
-
const testNft3 = 'TestNft3';
|
|
14
|
-
const testNftAddress = await TestERC721.getContractAddress(testNft1);
|
|
15
|
-
const testNftAddress2 = await TestERC721.getContractAddress(testNft2);
|
|
16
|
-
const testNftAddress3 = await TestERC721.getContractAddress(testNft3);
|
|
17
|
-
const ruleData = createExternalNFTStruct([testNftAddress, testNftAddress2, testNftAddress3]);
|
|
18
|
-
const { alice, bob, carol, aliceSpaceDapp, aliceProvider, carolProvider, carolSpaceDapp, alicesWallet, carolsWallet, spaceId, channelId, } = await createTownWithRequirements({
|
|
19
|
-
everyone: false,
|
|
20
|
-
users: [],
|
|
21
|
-
ruleData,
|
|
22
|
-
});
|
|
23
|
-
// Set up additional users to test single ownership of all three nfts.
|
|
24
|
-
const { alice: dave, alicesWallet: davesWallet, aliceSpaceDapp: daveSpaceDapp, aliceProvider: daveProvider, carol: emily, carolProvider: emilyProvider, carolSpaceDapp: emilySpaceDapp, carolsWallet: emilyWallet, } = await setupWalletsAndContexts();
|
|
25
|
-
// Have alice create her own space so she can initialize her user stream.
|
|
26
|
-
// Then she will attempt to join the space from herclient, which should fail.
|
|
27
|
-
await createUserStreamAndSyncClient(alice, aliceSpaceDapp, 'alice', await everyoneMembershipStruct(aliceSpaceDapp, alice), aliceProvider.wallet);
|
|
28
|
-
await expectUserCannotJoinSpace(spaceId, alice, aliceSpaceDapp, alicesWallet.address);
|
|
29
|
-
await TestERC721.publicMint(testNft1, carolsWallet.address);
|
|
30
|
-
await expectUserCanJoin(spaceId, channelId, 'carol', carol, carolSpaceDapp, carolsWallet.address, carolProvider.wallet);
|
|
31
|
-
await TestERC721.publicMint(testNft2, davesWallet.address);
|
|
32
|
-
await expectUserCanJoin(spaceId, channelId, 'dave', dave, daveSpaceDapp, davesWallet.address, daveProvider.wallet);
|
|
33
|
-
await TestERC721.publicMint(testNft3, emilyWallet.address);
|
|
34
|
-
await expectUserCanJoin(spaceId, channelId, 'emily', emily, emilySpaceDapp, emilyWallet.address, emilyProvider.wallet);
|
|
35
|
-
// kill the clients
|
|
36
|
-
const doneStart = Date.now();
|
|
37
|
-
await bob.stopSync();
|
|
38
|
-
await alice.stopSync();
|
|
39
|
-
await carol.stopSync();
|
|
40
|
-
await dave.stopSync();
|
|
41
|
-
await emily.stopSync();
|
|
42
|
-
log('Done', Date.now() - doneStart);
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
//# sourceMappingURL=spaceWithThreeNestedEntitlement.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaceWithThreeNestedEntitlement.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaceWithUserEntitlements.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/spaceWithUserEntitlements.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|