@towns-labs/sdk 2.0.6 → 2.0.7

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.
Files changed (65) hide show
  1. package/dist/streamStateView_Members.d.ts +7 -0
  2. package/dist/streamStateView_Members.d.ts.map +1 -1
  3. package/dist/streamStateView_Members.js +19 -0
  4. package/dist/streamStateView_Members.js.map +1 -1
  5. package/dist/tests/multi_ne/gdms.test.js +50 -3
  6. package/dist/tests/multi_ne/gdms.test.js.map +1 -1
  7. package/dist/tests/multi_ne/userInboxMessage.test.js +3 -3
  8. package/dist/tests/multi_ne/userInboxMessage.test.js.map +1 -1
  9. package/package.json +1 -1
  10. package/dist/tests/multi/notificationService.test.d.ts +0 -2
  11. package/dist/tests/multi/notificationService.test.d.ts.map +0 -1
  12. package/dist/tests/multi/notificationService.test.js +0 -51
  13. package/dist/tests/multi/notificationService.test.js.map +0 -1
  14. package/dist/tests/multi/sync-agent/member-queue.test.d.ts +0 -2
  15. package/dist/tests/multi/sync-agent/member-queue.test.d.ts.map +0 -1
  16. package/dist/tests/multi/sync-agent/member-queue.test.js +0 -54
  17. package/dist/tests/multi/sync-agent/member-queue.test.js.map +0 -1
  18. package/dist/tests/multi/sync-agent/member.test.d.ts +0 -2
  19. package/dist/tests/multi/sync-agent/member.test.d.ts.map +0 -1
  20. package/dist/tests/multi/sync-agent/member.test.js +0 -45
  21. package/dist/tests/multi/sync-agent/member.test.js.map +0 -1
  22. package/dist/tests/multi/sync-agent/members.test.d.ts +0 -2
  23. package/dist/tests/multi/sync-agent/members.test.d.ts.map +0 -1
  24. package/dist/tests/multi/sync-agent/members.test.js +0 -35
  25. package/dist/tests/multi/sync-agent/members.test.js.map +0 -1
  26. package/dist/tests/multi/sync-agent/riverConnection.test.d.ts +0 -5
  27. package/dist/tests/multi/sync-agent/riverConnection.test.d.ts.map +0 -1
  28. package/dist/tests/multi/sync-agent/riverConnection.test.js +0 -39
  29. package/dist/tests/multi/sync-agent/riverConnection.test.js.map +0 -1
  30. package/dist/tests/multi/sync-agent/spaces.test.d.ts +0 -2
  31. package/dist/tests/multi/sync-agent/spaces.test.d.ts.map +0 -1
  32. package/dist/tests/multi/sync-agent/spaces.test.js +0 -33
  33. package/dist/tests/multi/sync-agent/spaces.test.js.map +0 -1
  34. package/dist/tests/multi/sync-agent/streams.test.d.ts +0 -2
  35. package/dist/tests/multi/sync-agent/streams.test.d.ts.map +0 -1
  36. package/dist/tests/multi/sync-agent/streams.test.js +0 -27
  37. package/dist/tests/multi/sync-agent/streams.test.js.map +0 -1
  38. package/dist/tests/multi/sync-agent/syncAgent.test.d.ts +0 -2
  39. package/dist/tests/multi/sync-agent/syncAgent.test.d.ts.map +0 -1
  40. package/dist/tests/multi/sync-agent/syncAgent.test.js +0 -68
  41. package/dist/tests/multi/sync-agent/syncAgent.test.js.map +0 -1
  42. package/dist/tests/multi/sync-agent/syncAgents.test.d.ts +0 -2
  43. package/dist/tests/multi/sync-agent/syncAgents.test.d.ts.map +0 -1
  44. package/dist/tests/multi/sync-agent/syncAgents.test.js +0 -163
  45. package/dist/tests/multi/sync-agent/syncAgents.test.js.map +0 -1
  46. package/dist/tests/multi/sync-agent/timeline.test.d.ts +0 -2
  47. package/dist/tests/multi/sync-agent/timeline.test.d.ts.map +0 -1
  48. package/dist/tests/multi/sync-agent/timeline.test.js +0 -232
  49. package/dist/tests/multi/sync-agent/timeline.test.js.map +0 -1
  50. package/dist/tests/multi/sync-agent/user.test.d.ts +0 -5
  51. package/dist/tests/multi/sync-agent/user.test.d.ts.map +0 -1
  52. package/dist/tests/multi/sync-agent/user.test.js +0 -55
  53. package/dist/tests/multi/sync-agent/user.test.js.map +0 -1
  54. package/dist/tests/multi/transactions.test.d.ts +0 -5
  55. package/dist/tests/multi/transactions.test.d.ts.map +0 -1
  56. package/dist/tests/multi/transactions.test.js +0 -153
  57. package/dist/tests/multi/transactions.test.js.map +0 -1
  58. package/dist/tests/multi/transactions_SpaceReview.test.d.ts +0 -2
  59. package/dist/tests/multi/transactions_SpaceReview.test.d.ts.map +0 -1
  60. package/dist/tests/multi/transactions_SpaceReview.test.js +0 -278
  61. package/dist/tests/multi/transactions_SpaceReview.test.js.map +0 -1
  62. package/dist/tests/multi/transactions_Tip.test.d.ts +0 -5
  63. package/dist/tests/multi/transactions_Tip.test.d.ts.map +0 -1
  64. package/dist/tests/multi/transactions_Tip.test.js +0 -379
  65. package/dist/tests/multi/transactions_Tip.test.js.map +0 -1
@@ -1,232 +0,0 @@
1
- import { Permission } from '@towns-labs/web3';
2
- import { findMessageByText, waitFor } from '../../testUtils';
3
- import { Bot } from '../../../sync-agent/utils/bot';
4
- import { makeDefaultMembershipInfo } from '../../../sync-agent/utils/spaceUtils';
5
- import { RiverTimelineEvent } from '../../../views/models/timelineTypes';
6
- import { dlog } from '@towns-labs/utils';
7
- const log = dlog('test:timeline.test.ts');
8
- const setupTest = async () => {
9
- const bobUser = new Bot();
10
- const aliceUser = new Bot();
11
- const charlieUser = new Bot();
12
- await Promise.all([bobUser.fundWallet(), aliceUser.fundWallet(), charlieUser.fundWallet()]);
13
- const [bob, alice, charlie] = await Promise.all([
14
- bobUser.makeSyncAgent(),
15
- aliceUser.makeSyncAgent(),
16
- charlieUser.makeSyncAgent(),
17
- ]);
18
- return { bob, alice, charlie, bobUser, aliceUser, charlieUser };
19
- };
20
- describe('timeline.test.ts', () => {
21
- test.concurrent('send and receive a mention', async () => {
22
- const { bob, alice, bobUser, aliceUser } = await setupTest();
23
- await Promise.all([bob.start(), alice.start()]);
24
- const { spaceId } = await bob.spaces.createSpace({ spaceName: 'BlastOff' }, bobUser.signer);
25
- expect(bob.user.memberships.isJoined(spaceId)).toBe(true);
26
- await alice.spaces.getSpace(spaceId).join(aliceUser.signer);
27
- const aliceChannel = alice.spaces.getSpace(spaceId).getDefaultChannel();
28
- expect(alice.user.memberships.isJoined(spaceId)).toBe(true);
29
- await aliceChannel.sendMessage('Hi @bob', {
30
- mentions: [
31
- {
32
- userId: bob.userId,
33
- displayName: 'bob',
34
- mentionBehavior: { case: undefined, value: undefined }, // geez
35
- },
36
- ],
37
- });
38
- const bobChannel = bob.spaces.getSpace(spaceId).getDefaultChannel();
39
- // bob should receive the message
40
- await waitFor(async () => {
41
- const e = findMessageByText(bobChannel.timeline.events.value, 'Hi @bob');
42
- expect(e?.content?.kind === RiverTimelineEvent.ChannelMessage &&
43
- e?.content?.body === 'Hi @bob' &&
44
- e?.content?.mentions != undefined &&
45
- e?.content?.mentions.length > 0 &&
46
- e?.content?.mentions[0].userId === bob.userId &&
47
- e?.content?.mentions[0].displayName === 'bob', `mention: ${bobChannel.data.id}`).toEqual(true);
48
- });
49
- });
50
- // aellis 2025-01-25: this test is flaky and fails intermittently
51
- test.skip('scrollback', async () => {
52
- const NUM_MESSAGES = 100;
53
- const { bob, alice, bobUser, aliceUser } = await setupTest();
54
- await Promise.all([bob.start(), alice.start()]);
55
- const { spaceId } = await bob.spaces.createSpace({ spaceName: 'Scrollback Team 🔙' }, bobUser.signer);
56
- const bobChannel = bob.spaces.getSpace(spaceId).getDefaultChannel();
57
- for (let i = 0; i < NUM_MESSAGES; i++) {
58
- await bobChannel.sendMessage(`message ${i}`);
59
- // force miniblocks, if we're going fast it's possible that the miniblock is not created
60
- if ((i % NUM_MESSAGES) / 4 == 0) {
61
- await bob.riverConnection.client?.debugForceMakeMiniblock(bobChannel.data.id, {
62
- forceSnapshot: true,
63
- });
64
- }
65
- }
66
- // alice joins the room
67
- await alice.spaces.getSpace(spaceId).join(aliceUser.signer);
68
- const aliceChannel = alice.spaces.getSpace(spaceId).getDefaultChannel();
69
- // alice shouldnt receive all the messages, only a few
70
- expect(aliceChannel.timeline.events.value.length).toBeLessThan(NUM_MESSAGES);
71
- const aliceChannelLength = aliceChannel.timeline.events.value.length;
72
- // call scrollback
73
- await aliceChannel.timeline.scrollback();
74
- // did we get more events?
75
- await waitFor(() => expect(aliceChannel.timeline.events.value.length).toBeGreaterThanOrEqual(aliceChannelLength));
76
- });
77
- test.concurrent('three users in a room', async () => {
78
- const { bob, alice, charlie, bobUser, aliceUser, charlieUser } = await setupTest();
79
- await Promise.all([bob.start(), alice.start(), charlie.start()]);
80
- // bob creates a space
81
- const { spaceId } = await bob.spaces.createSpace({ spaceName: 'Encrypted Room 🔐' }, bobUser.signer);
82
- const bobSpace = bob.spaces.getSpace(spaceId);
83
- // create a channel
84
- // const channelId = await bobSpace.createChannel('Vault 🔒', bobUser.signer)
85
- // Join the space and channel
86
- await Promise.all([
87
- alice.spaces.getSpace(spaceId).join(aliceUser.signer),
88
- charlie.spaces.getSpace(spaceId).join(charlieUser.signer),
89
- ]);
90
- // TODO: join channel by id
91
- const aliceChannel = alice.spaces.getSpace(spaceId).getDefaultChannel();
92
- const charlieChannel = charlie.spaces.getSpace(spaceId).getDefaultChannel();
93
- const bobChannel = bobSpace.getDefaultChannel();
94
- // Confirm that the members are in
95
- await waitFor(() => {
96
- const members = bobChannel.members.value;
97
- expect(members.data.initialized).toBe(true);
98
- expect(members.data.userIds.length).toBe(3);
99
- });
100
- await bobChannel.sendMessage('hey everyone!');
101
- // everyone should receive the message
102
- await Promise.all([
103
- waitFor(() => {
104
- log('aliceChannel.timeline.events.value', aliceChannel.timeline.events.value);
105
- expect(findMessageByText(aliceChannel.timeline.events.value, 'hey everyone!')).toBeTruthy();
106
- }),
107
- waitFor(() => expect(findMessageByText(charlieChannel.timeline.events.value, 'hey everyone!')).toBeTruthy()),
108
- ]);
109
- // everyone sends a message to the room
110
- await Promise.all([
111
- aliceChannel.sendMessage('Hello Bob from Alice!'),
112
- charlieChannel.sendMessage('Hello Bob from Charlie!'),
113
- ]);
114
- // bob should receive the messages
115
- await waitFor(() => {
116
- expect(findMessageByText(bobChannel.timeline.events.value, 'Hello Bob from Alice!')).toBeTruthy();
117
- expect(findMessageByText(bobChannel.timeline.events.value, 'Hello Bob from Charlie!')).toBeTruthy();
118
- });
119
- });
120
- test.concurrent('create room, send message, send a reaction and redact', async () => {
121
- const { bob, alice, bobUser, aliceUser } = await setupTest();
122
- await Promise.all([bob.start(), alice.start()]);
123
- const defaultMembership = await makeDefaultMembershipInfo(bob.riverConnection.spaceDapp, bob.userId);
124
- const { spaceId } = await bob.spaces.createSpace({
125
- spaceName: 'ReActers 🤠',
126
- membership: {
127
- ...defaultMembership,
128
- permissions: [
129
- Permission.Read,
130
- Permission.Write,
131
- Permission.Redact,
132
- Permission.React,
133
- ],
134
- },
135
- }, bobUser.signer);
136
- const bobChannel = bob.spaces.getSpace(spaceId).getDefaultChannel();
137
- await alice.spaces.getSpace(spaceId).join(aliceUser.signer);
138
- const aliceChannel = alice.spaces.getSpace(spaceId).getDefaultChannel();
139
- // bob sends a message to the room
140
- await bobChannel.sendMessage('hey!');
141
- // wait for alice to receive the message
142
- await waitFor(async () => {
143
- const event = findMessageByText(aliceChannel.timeline.events.value, 'hey!');
144
- expect(event?.content?.kind === RiverTimelineEvent.ChannelMessage &&
145
- event?.content?.body === 'hey!', `find hey message: ${aliceChannel.data.id}`).toEqual(true);
146
- }, { timeoutMS: 20000 });
147
- // alice grabs the message
148
- const messageEvent = findMessageByText(aliceChannel.timeline.events.value, 'hey!');
149
- expect(messageEvent).toBeTruthy();
150
- // alice sends a reaction
151
- const { eventId: reactionEventId } = await aliceChannel.sendReaction(messageEvent.eventId, '👍');
152
- // wait for bob to receive the reaction
153
- await waitFor(async () => {
154
- const reaction = bobChannel.timeline.reactions.value[messageEvent.eventId];
155
- expect(reaction).toBeTruthy();
156
- expect(reaction?.['👍']).toBeTruthy();
157
- expect(reaction?.['👍'][alice.userId].eventId).toEqual(reactionEventId);
158
- });
159
- // alice deletes the reaction
160
- await aliceChannel.redact(reactionEventId);
161
- // wait for bob to no longer see the reaction
162
- await waitFor(() => {
163
- const reaction = bobChannel.timeline.reactions.value[messageEvent.eventId];
164
- expect(reaction).toStrictEqual({});
165
- });
166
- });
167
- test.concurrent('create room, invite user, accept invite, and send threadded message', async () => {
168
- const { bob, alice, bobUser, aliceUser } = await setupTest();
169
- await Promise.all([bob.start(), alice.start()]);
170
- const defaultMembership = await makeDefaultMembershipInfo(bob.riverConnection.spaceDapp, bob.userId);
171
- const { spaceId } = await bob.spaces.createSpace({
172
- spaceName: 'Monday Sewing Club 🧵',
173
- membership: {
174
- ...defaultMembership,
175
- permissions: [
176
- Permission.Read,
177
- Permission.Write,
178
- Permission.Redact,
179
- Permission.React,
180
- ],
181
- },
182
- }, bobUser.signer);
183
- const bobChannel = bob.spaces.getSpace(spaceId).getDefaultChannel();
184
- await alice.spaces.getSpace(spaceId).join(aliceUser.signer);
185
- const aliceChannel = alice.spaces.getSpace(spaceId).getDefaultChannel();
186
- // bob sends a message to the room
187
- await bobChannel.sendMessage('hey alice, ready to sew?');
188
- // wait for alice to receive the message
189
- await waitFor(async () => {
190
- const events = aliceChannel.timeline.events.value.map((e) => ({
191
- kind: e.content?.kind,
192
- body: e.content?.kind === RiverTimelineEvent.ChannelMessage
193
- ? e.content?.body
194
- : undefined,
195
- }));
196
- expect(events, `find ready to sew: ${aliceChannel.data.id}`).toContainEqual({
197
- kind: RiverTimelineEvent.ChannelMessage,
198
- body: 'hey alice, ready to sew?',
199
- });
200
- }, { timeoutMS: 20000 });
201
- const event = aliceChannel.timeline.events.value.find((event) => event.content?.kind === RiverTimelineEvent.ChannelMessage);
202
- // a non threaded message should not have a thread parent id
203
- expect(event?.threadParentId).toBeUndefined();
204
- // alice sends a threaded reply room
205
- const firstReply = await aliceChannel.sendMessage('yey lesgo!', {
206
- threadId: event.eventId,
207
- });
208
- const secondReply = await aliceChannel.sendMessage('i was planning to make a hat', {
209
- threadId: event.eventId,
210
- });
211
- // bob should receive the message in the thread and the thread id should be set to parent event id
212
- await waitFor(() => {
213
- const thread = bobChannel.timeline.threads.value[event.eventId];
214
- expect(thread).toBeTruthy();
215
- expect(thread?.find((e) => e.eventId === firstReply.eventId)?.content?.kind ===
216
- RiverTimelineEvent.ChannelMessage, `find first reply ${bobChannel.data.id}`).toBeTruthy();
217
- expect(thread?.find((e) => e.eventId === secondReply.eventId)?.content?.kind ===
218
- RiverTimelineEvent.ChannelMessage, `find second reply ${bobChannel.data.id}`).toBeTruthy();
219
- });
220
- // alice deletes the first reply
221
- await aliceChannel.redact(firstReply.eventId);
222
- // bob should no longer see the first reply
223
- await waitFor(() => {
224
- const thread = bobChannel.timeline.threads.value[event.eventId];
225
- expect(thread.find((e) => e.eventId === firstReply.eventId)?.content?.kind ===
226
- RiverTimelineEvent.RedactedEvent, `find first reply redacted ${bobChannel.data.id}`).toBeTruthy();
227
- expect(thread.find((e) => e.eventId === secondReply.eventId)?.content?.kind ===
228
- RiverTimelineEvent.ChannelMessage, `find second reply not redacted ${bobChannel.data.id}`).toBeTruthy();
229
- });
230
- });
231
- });
232
- //# sourceMappingURL=timeline.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeline.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/timeline.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- export {};
5
- //# sourceMappingURL=user.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/user.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,55 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- import { dlogger } from '@towns-labs/utils';
5
- import { Bot } from '../../../sync-agent/utils/bot';
6
- const logger = dlogger('csb:test:user');
7
- describe('User.test.ts', () => {
8
- logger.log('start');
9
- const testUser = new Bot();
10
- beforeEach(async () => {
11
- await testUser.fundWallet();
12
- });
13
- test('User initializes', async () => {
14
- const syncAgent = await testUser.makeSyncAgent();
15
- const riverConnection = syncAgent.riverConnection;
16
- const user = syncAgent.user;
17
- const spaces = syncAgent.spaces;
18
- expect(user.data.id).toBe(testUser.userId);
19
- expect(riverConnection.data.userExists).toBe(false);
20
- expect(user.memberships.data.initialized).toBe(false);
21
- expect(user.inbox.data.initialized).toBe(false);
22
- expect(user.deviceKeys.data.initialized).toBe(false);
23
- expect(user.settings.data.initialized).toBe(false);
24
- await syncAgent.start();
25
- expect(user.data.id).toBe(testUser.userId);
26
- expect(riverConnection.data.userExists).toBe(false);
27
- expect(user.memberships.data.initialized).toBe(false);
28
- expect(user.inbox.data.initialized).toBe(false);
29
- expect(user.deviceKeys.data.initialized).toBe(false);
30
- expect(user.settings.data.initialized).toBe(false);
31
- const { spaceId } = await spaces.createSpace({ spaceName: 'bobs-space' }, testUser.signer);
32
- logger.log('created spaceId', spaceId);
33
- expect(riverConnection.data.userExists).toBe(true);
34
- expect(user.memberships.data.initialized).toBe(true);
35
- expect(user.inbox.data.initialized).toBe(true);
36
- expect(user.deviceKeys.data.initialized).toBe(true);
37
- expect(user.settings.data.initialized).toBe(true);
38
- await syncAgent.stop();
39
- });
40
- test('User loads from db', async () => {
41
- const syncAgent = await testUser.makeSyncAgent();
42
- const riverConnection = syncAgent.riverConnection;
43
- const user = syncAgent.user;
44
- expect(user.value.status).toBe('loading');
45
- await syncAgent.start();
46
- expect(user.value.status).toBe('loaded');
47
- expect(riverConnection.data.userExists).toBe(true);
48
- expect(user.memberships.data.initialized).toBe(true);
49
- expect(user.inbox.data.initialized).toBe(true);
50
- expect(user.deviceKeys.data.initialized).toBe(true);
51
- expect(user.settings.data.initialized).toBe(true);
52
- await syncAgent.stop();
53
- });
54
- });
55
- //# sourceMappingURL=user.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/sync-agent/user.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- export {};
5
- //# sourceMappingURL=transactions.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactions.test.d.ts","sourceRoot":"","sources":["../../../src/tests/multi/transactions.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,153 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- import { bin_toHexString, dlog } from '@towns-labs/utils';
5
- import { ethers } from 'ethers';
6
- import { LocalhostWeb3Provider } from '@towns-labs/web3';
7
- import { townsEnv } from '../../townsEnv';
8
- import { Bot } from '../../sync-agent/utils/bot';
9
- import { cloneDeep } from 'lodash-es';
10
- import { deepCopy } from 'ethers/lib/utils';
11
- import { randomBytes } from '../../utils';
12
- const base_log = dlog('csb:test:transactions');
13
- describe('transactions', () => {
14
- const townsConfig = townsEnv().makeTownsConfig();
15
- const bobIdentity = new Bot(undefined, townsConfig);
16
- const aliceIdentity = new Bot(undefined, townsConfig);
17
- const bobsOtherWallet = ethers.Wallet.createRandom();
18
- const bobsOtherWalletProvider = new LocalhostWeb3Provider(townsConfig.base.rpcUrl, bobsOtherWallet);
19
- const chainId = townsConfig.base.chainConfig.chainId;
20
- // updated once and shared between tests
21
- let bob;
22
- let alice;
23
- let spaceId;
24
- let defaultChannelId;
25
- // updated before each test
26
- let dummyReceipt;
27
- let dummyReceiptCopy;
28
- beforeAll(async () => {
29
- // setup once
30
- const log = base_log.extend('beforeAll');
31
- log('start');
32
- await Promise.all([
33
- bobIdentity.fundWallet(),
34
- aliceIdentity.fundWallet(),
35
- bobsOtherWalletProvider.fundWallet(),
36
- ]);
37
- bob = await bobIdentity.makeSyncAgent();
38
- alice = await aliceIdentity.makeSyncAgent();
39
- await Promise.all([
40
- bob.start(),
41
- alice.start(),
42
- bob.riverConnection.spaceDapp.walletLink.linkWalletToRootKey(bobIdentity.signer, bobsOtherWallet),
43
- ]);
44
- // before they can do anything on river, they need to be in a space
45
- const { spaceId: sid, defaultChannelId: cid } = await bob.spaces.createSpace({ spaceName: 'BlastOff' }, bobIdentity.signer);
46
- spaceId = sid;
47
- defaultChannelId = cid;
48
- await alice.spaces.joinSpace(spaceId, aliceIdentity.signer);
49
- log('bob and alice joined space', spaceId, defaultChannelId);
50
- const transaction = await bobIdentity.web3Provider.mintMockNFT(townsConfig.base.chainConfig);
51
- dummyReceipt = await transaction.wait(2);
52
- dummyReceiptCopy = deepCopy(dummyReceipt);
53
- expect(dummyReceiptCopy).toEqual(dummyReceipt);
54
- });
55
- afterEach(() => {
56
- // for speed we share a receipt between tests, don't modify it
57
- expect(dummyReceiptCopy).toEqual(dummyReceipt);
58
- });
59
- afterAll(async () => {
60
- await bob.stop();
61
- await alice.stop();
62
- });
63
- test('addEvent', async () => {
64
- // a user should be able to upload a transaction that
65
- // is from their account or one of their linked accounts and
66
- // is valid on chain
67
- // add the transaction to the river chain
68
- const transaction = await bobIdentity.web3Provider.mintMockNFT(townsConfig.base.chainConfig);
69
- const receipt = await transaction.wait(2);
70
- await expect(bob.riverConnection.client.addTransaction(chainId, receipt)).resolves.not.toThrow();
71
- });
72
- test('cantAddEventTwice', async () => {
73
- const transaction = await bobIdentity.web3Provider.mintMockNFT(townsConfig.base.chainConfig);
74
- const receipt = await transaction.wait(2);
75
- await expect(bob.riverConnection.client.addTransaction(chainId, receipt)).resolves.not.toThrow();
76
- // can't add the same transaction twice
77
- await expect(bob.riverConnection.client.addTransaction(chainId, receipt)).rejects.toThrow('duplicate transaction');
78
- });
79
- test('cantAddEventFromOtherUser', async () => {
80
- // alice should not be able to add the transaction to the river
81
- await expect(alice.riverConnection.client.addTransaction(chainId, dummyReceipt)).rejects.toThrow();
82
- });
83
- test('cantModifyReceiptFrom', async () => {
84
- // if we modify the dummyReceipt from, it should not be accepted
85
- const modifiedReceipt = cloneDeep(dummyReceipt); // deepCopy is imutable
86
- modifiedReceipt.from = await aliceIdentity.signer.getAddress();
87
- await expect(alice.riverConnection.client.addTransaction(chainId, modifiedReceipt)).rejects.toThrow('From address mismatch');
88
- });
89
- test('cantModifyReceiptTo', async () => {
90
- // if we modify the dummyReceipt from, it should not be accepted
91
- const modifiedReceipt = cloneDeep(dummyReceipt);
92
- modifiedReceipt.to = await aliceIdentity.signer.getAddress();
93
- await expect(bob.riverConnection.client.addTransaction(chainId, modifiedReceipt)).rejects.toThrow('To address mismatch');
94
- });
95
- test('cantAddEventWithAdditionalWrongBlockNumber', async () => {
96
- // modifying the logs by adding additional logs should also not be accepted
97
- const modifiedReceipt = cloneDeep(dummyReceipt);
98
- modifiedReceipt.blockNumber -= 1;
99
- await expect(bob.riverConnection.client.addTransaction(chainId, modifiedReceipt)).rejects.toThrow('Block number mismatch');
100
- });
101
- test('cantAddEventWithAdditionalLogs', async () => {
102
- // modifying the logs by adding additional logs should also not be accepted
103
- const modifiedReceipt = cloneDeep(dummyReceipt);
104
- modifiedReceipt.logs.push(modifiedReceipt.logs[0]);
105
- await expect(bob.riverConnection.client.addTransaction(chainId, modifiedReceipt)).rejects.toThrow('Log count mismatch');
106
- });
107
- test('cantModifyReceiptLogData', async () => {
108
- // modify existing log should not be accepted
109
- const modifiedReceipt = cloneDeep(dummyReceipt);
110
- modifiedReceipt.logs[0].data = bin_toHexString(randomBytes(32));
111
- await expect(bob.riverConnection.client.addTransaction(chainId, modifiedReceipt)).rejects.toThrow('Log data mismatch');
112
- });
113
- test('cantModifyReceiptLogAddress', async () => {
114
- // modify existing log should not be accepted
115
- const modifiedReceipt = cloneDeep(dummyReceipt);
116
- modifiedReceipt.logs[0].address = bin_toHexString(randomBytes(32));
117
- await expect(bob.riverConnection.client.addTransaction(chainId, modifiedReceipt)).rejects.toThrow('Log address mismatch');
118
- });
119
- test('cantModifyReceiptLogTopics', async () => {
120
- // modify existing log should not be accepted
121
- const modifiedReceipt = cloneDeep(dummyReceipt);
122
- modifiedReceipt.logs[0].topics[0] = bin_toHexString(randomBytes(32));
123
- await expect(bob.riverConnection.client.addTransaction(chainId, modifiedReceipt)).rejects.toThrow('Log topic mismatch');
124
- });
125
- test('cantModifyReceiptLogTopicsCount', async () => {
126
- const modifiedReceipt = cloneDeep(dummyReceipt);
127
- modifiedReceipt.logs[0].topics.push(bin_toHexString(randomBytes(32)));
128
- await expect(bob.riverConnection.client.addTransaction(chainId, modifiedReceipt)).rejects.toThrow('Log topics count mismatch');
129
- });
130
- test('cantAddEventWithInvalidHash', async () => {
131
- // send dummyReceipt with invalid hash
132
- const modifiedReceipt = cloneDeep(dummyReceipt);
133
- modifiedReceipt.transactionHash = bin_toHexString(randomBytes(32));
134
- await expect(bob.riverConnection.client.addTransaction(chainId, modifiedReceipt)).rejects.toThrow();
135
- });
136
- test('addEventFromLinkedWallet', async () => {
137
- // a user should be able to upload a transaction that
138
- // is from one of their linked accounts and is valid on chain
139
- const transaction = await bobsOtherWalletProvider.mintMockNFT(townsConfig.base.chainConfig);
140
- const receipt = await transaction.wait();
141
- // add the transaction to the river
142
- await expect(bob.riverConnection.client.addTransaction(chainId, receipt)).resolves.not.toThrow();
143
- });
144
- test('cantAddEventFromUnlinkedLinkedWallet', async () => {
145
- // a user should not be able to upload a transaction that
146
- // is from one of their linked accounts and is valid on chain
147
- const transaction = await bobsOtherWalletProvider.mintMockNFT(townsConfig.base.chainConfig);
148
- const receipt = await transaction.wait();
149
- // add the transaction to the river
150
- await expect(alice.riverConnection.client.addTransaction(chainId, receipt)).rejects.toThrow();
151
- });
152
- });
153
- //# sourceMappingURL=transactions.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactions.test.js","sourceRoot":"","sources":["../../../src/tests/multi/transactions.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transactions_SpaceReview.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactions_SpaceReview.test.d.ts","sourceRoot":"","sources":["../../../src/tests/multi/transactions_SpaceReview.test.ts"],"names":[],"mappings":""}