@towns-labs/sdk 2.0.5 → 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 (153) hide show
  1. package/dist/createApp.d.ts.map +1 -1
  2. package/dist/createApp.js +7 -1
  3. package/dist/createApp.js.map +1 -1
  4. package/dist/id.d.ts +1 -0
  5. package/dist/id.d.ts.map +1 -1
  6. package/dist/id.js +3 -0
  7. package/dist/id.js.map +1 -1
  8. package/dist/streamStateView_Members.d.ts +7 -0
  9. package/dist/streamStateView_Members.d.ts.map +1 -1
  10. package/dist/streamStateView_Members.js +19 -0
  11. package/dist/streamStateView_Members.js.map +1 -1
  12. package/dist/sync-agent/dms/models/dm.d.ts +2 -4
  13. package/dist/sync-agent/dms/models/dm.d.ts.map +1 -1
  14. package/dist/sync-agent/dms/models/dm.js +2 -30
  15. package/dist/sync-agent/dms/models/dm.js.map +1 -1
  16. package/dist/sync-agent/gdms/models/gdm.d.ts +2 -4
  17. package/dist/sync-agent/gdms/models/gdm.d.ts.map +1 -1
  18. package/dist/sync-agent/gdms/models/gdm.js +2 -30
  19. package/dist/sync-agent/gdms/models/gdm.js.map +1 -1
  20. package/dist/sync-agent/river-connection/riverConnection.d.ts +1 -3
  21. package/dist/sync-agent/river-connection/riverConnection.d.ts.map +1 -1
  22. package/dist/sync-agent/river-connection/riverConnection.js +5 -3
  23. package/dist/sync-agent/river-connection/riverConnection.js.map +1 -1
  24. package/dist/sync-agent/spaces/models/channel.d.ts +3 -6
  25. package/dist/sync-agent/spaces/models/channel.d.ts.map +1 -1
  26. package/dist/sync-agent/spaces/models/channel.js +4 -76
  27. package/dist/sync-agent/spaces/models/channel.js.map +1 -1
  28. package/dist/sync-agent/spaces/models/space.d.ts +6 -6
  29. package/dist/sync-agent/spaces/models/space.d.ts.map +1 -1
  30. package/dist/sync-agent/spaces/models/space.js +8 -30
  31. package/dist/sync-agent/spaces/models/space.js.map +1 -1
  32. package/dist/sync-agent/spaces/spaces.d.ts +3 -4
  33. package/dist/sync-agent/spaces/spaces.d.ts.map +1 -1
  34. package/dist/sync-agent/spaces/spaces.js +6 -25
  35. package/dist/sync-agent/spaces/spaces.js.map +1 -1
  36. package/dist/sync-agent/syncAgent.d.ts.map +1 -1
  37. package/dist/sync-agent/syncAgent.js +2 -7
  38. package/dist/sync-agent/syncAgent.js.map +1 -1
  39. package/dist/tests/multi_ne/gdms.test.js +50 -3
  40. package/dist/tests/multi_ne/gdms.test.js.map +1 -1
  41. package/dist/tests/multi_ne/userInboxMessage.test.js +3 -3
  42. package/dist/tests/multi_ne/userInboxMessage.test.js.map +1 -1
  43. package/dist/townsEnv.js +5 -5
  44. package/dist/townsEnv.js.map +1 -1
  45. package/package.json +10 -10
  46. package/dist/createBot.d.ts +0 -159
  47. package/dist/createBot.d.ts.map +0 -1
  48. package/dist/createBot.js +0 -206
  49. package/dist/createBot.js.map +0 -1
  50. package/dist/makeRiverRpcClient.d.ts +0 -6
  51. package/dist/makeRiverRpcClient.d.ts.map +0 -1
  52. package/dist/makeRiverRpcClient.js +0 -9
  53. package/dist/makeRiverRpcClient.js.map +0 -1
  54. package/dist/streamStateView_ChannelMetadata.d.ts +0 -22
  55. package/dist/streamStateView_ChannelMetadata.d.ts.map +0 -1
  56. package/dist/streamStateView_ChannelMetadata.js +0 -77
  57. package/dist/streamStateView_ChannelMetadata.js.map +0 -1
  58. package/dist/sync-agent/entitlements/entitlements.d.ts +0 -10
  59. package/dist/sync-agent/entitlements/entitlements.d.ts.map +0 -1
  60. package/dist/sync-agent/entitlements/entitlements.js +0 -20
  61. package/dist/sync-agent/entitlements/entitlements.js.map +0 -1
  62. package/dist/sync-agent/river-connection/models/riverChain.d.ts +0 -24
  63. package/dist/sync-agent/river-connection/models/riverChain.d.ts.map +0 -1
  64. package/dist/sync-agent/river-connection/models/riverChain.js +0 -66
  65. package/dist/sync-agent/river-connection/models/riverChain.js.map +0 -1
  66. package/dist/tests/multi/appRegistryService.test.d.ts +0 -2
  67. package/dist/tests/multi/appRegistryService.test.d.ts.map +0 -1
  68. package/dist/tests/multi/appRegistryService.test.js +0 -41
  69. package/dist/tests/multi/appRegistryService.test.js.map +0 -1
  70. package/dist/tests/multi/botEntitlements.test.d.ts +0 -5
  71. package/dist/tests/multi/botEntitlements.test.d.ts.map +0 -1
  72. package/dist/tests/multi/botEntitlements.test.js +0 -178
  73. package/dist/tests/multi/botEntitlements.test.js.map +0 -1
  74. package/dist/tests/multi/botMembership.test.d.ts +0 -5
  75. package/dist/tests/multi/botMembership.test.d.ts.map +0 -1
  76. package/dist/tests/multi/botMembership.test.js +0 -295
  77. package/dist/tests/multi/botMembership.test.js.map +0 -1
  78. package/dist/tests/multi/botStreamCreation.test.d.ts +0 -5
  79. package/dist/tests/multi/botStreamCreation.test.d.ts.map +0 -1
  80. package/dist/tests/multi/botStreamCreation.test.js +0 -60
  81. package/dist/tests/multi/botStreamCreation.test.js.map +0 -1
  82. package/dist/tests/multi/channelScrubbing.test.d.ts +0 -5
  83. package/dist/tests/multi/channelScrubbing.test.d.ts.map +0 -1
  84. package/dist/tests/multi/channelScrubbing.test.js +0 -102
  85. package/dist/tests/multi/channelScrubbing.test.js.map +0 -1
  86. package/dist/tests/multi/notificationService.test.d.ts +0 -2
  87. package/dist/tests/multi/notificationService.test.d.ts.map +0 -1
  88. package/dist/tests/multi/notificationService.test.js +0 -51
  89. package/dist/tests/multi/notificationService.test.js.map +0 -1
  90. package/dist/tests/multi/sync-agent/member-queue.test.d.ts +0 -2
  91. package/dist/tests/multi/sync-agent/member-queue.test.d.ts.map +0 -1
  92. package/dist/tests/multi/sync-agent/member-queue.test.js +0 -54
  93. package/dist/tests/multi/sync-agent/member-queue.test.js.map +0 -1
  94. package/dist/tests/multi/sync-agent/member.test.d.ts +0 -2
  95. package/dist/tests/multi/sync-agent/member.test.d.ts.map +0 -1
  96. package/dist/tests/multi/sync-agent/member.test.js +0 -45
  97. package/dist/tests/multi/sync-agent/member.test.js.map +0 -1
  98. package/dist/tests/multi/sync-agent/members.test.d.ts +0 -2
  99. package/dist/tests/multi/sync-agent/members.test.d.ts.map +0 -1
  100. package/dist/tests/multi/sync-agent/members.test.js +0 -35
  101. package/dist/tests/multi/sync-agent/members.test.js.map +0 -1
  102. package/dist/tests/multi/sync-agent/riverConnection.test.d.ts +0 -5
  103. package/dist/tests/multi/sync-agent/riverConnection.test.d.ts.map +0 -1
  104. package/dist/tests/multi/sync-agent/riverConnection.test.js +0 -39
  105. package/dist/tests/multi/sync-agent/riverConnection.test.js.map +0 -1
  106. package/dist/tests/multi/sync-agent/spaces.test.d.ts +0 -2
  107. package/dist/tests/multi/sync-agent/spaces.test.d.ts.map +0 -1
  108. package/dist/tests/multi/sync-agent/spaces.test.js +0 -33
  109. package/dist/tests/multi/sync-agent/spaces.test.js.map +0 -1
  110. package/dist/tests/multi/sync-agent/streams.test.d.ts +0 -2
  111. package/dist/tests/multi/sync-agent/streams.test.d.ts.map +0 -1
  112. package/dist/tests/multi/sync-agent/streams.test.js +0 -27
  113. package/dist/tests/multi/sync-agent/streams.test.js.map +0 -1
  114. package/dist/tests/multi/sync-agent/syncAgent.test.d.ts +0 -2
  115. package/dist/tests/multi/sync-agent/syncAgent.test.d.ts.map +0 -1
  116. package/dist/tests/multi/sync-agent/syncAgent.test.js +0 -68
  117. package/dist/tests/multi/sync-agent/syncAgent.test.js.map +0 -1
  118. package/dist/tests/multi/sync-agent/syncAgents.test.d.ts +0 -2
  119. package/dist/tests/multi/sync-agent/syncAgents.test.d.ts.map +0 -1
  120. package/dist/tests/multi/sync-agent/syncAgents.test.js +0 -163
  121. package/dist/tests/multi/sync-agent/syncAgents.test.js.map +0 -1
  122. package/dist/tests/multi/sync-agent/timeline.test.d.ts +0 -2
  123. package/dist/tests/multi/sync-agent/timeline.test.d.ts.map +0 -1
  124. package/dist/tests/multi/sync-agent/timeline.test.js +0 -232
  125. package/dist/tests/multi/sync-agent/timeline.test.js.map +0 -1
  126. package/dist/tests/multi/sync-agent/user.test.d.ts +0 -5
  127. package/dist/tests/multi/sync-agent/user.test.d.ts.map +0 -1
  128. package/dist/tests/multi/sync-agent/user.test.js +0 -55
  129. package/dist/tests/multi/sync-agent/user.test.js.map +0 -1
  130. package/dist/tests/multi/transactions.test.d.ts +0 -5
  131. package/dist/tests/multi/transactions.test.d.ts.map +0 -1
  132. package/dist/tests/multi/transactions.test.js +0 -153
  133. package/dist/tests/multi/transactions.test.js.map +0 -1
  134. package/dist/tests/multi/transactions_SpaceReview.test.d.ts +0 -2
  135. package/dist/tests/multi/transactions_SpaceReview.test.d.ts.map +0 -1
  136. package/dist/tests/multi/transactions_SpaceReview.test.js +0 -278
  137. package/dist/tests/multi/transactions_SpaceReview.test.js.map +0 -1
  138. package/dist/tests/multi/transactions_Tip.test.d.ts +0 -5
  139. package/dist/tests/multi/transactions_Tip.test.d.ts.map +0 -1
  140. package/dist/tests/multi/transactions_Tip.test.js +0 -379
  141. package/dist/tests/multi/transactions_Tip.test.js.map +0 -1
  142. package/dist/tests/multi_ne/nodeSelection.test.d.ts +0 -5
  143. package/dist/tests/multi_ne/nodeSelection.test.d.ts.map +0 -1
  144. package/dist/tests/multi_ne/nodeSelection.test.js +0 -41
  145. package/dist/tests/multi_ne/nodeSelection.test.js.map +0 -1
  146. package/dist/tests/multi_ne/trading.solana.test.d.ts +0 -2
  147. package/dist/tests/multi_ne/trading.solana.test.d.ts.map +0 -1
  148. package/dist/tests/multi_ne/trading.solana.test.js +0 -229
  149. package/dist/tests/multi_ne/trading.solana.test.js.map +0 -1
  150. package/dist/tests/multi_ne/trading.test.d.ts +0 -2
  151. package/dist/tests/multi_ne/trading.test.d.ts.map +0 -1
  152. package/dist/tests/multi_ne/trading.test.js +0 -243
  153. package/dist/tests/multi_ne/trading.test.js.map +0 -1
@@ -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":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAA;AAE9C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC1B,MAAM,WAAW,GAAG,QAAQ,EAAE,CAAC,eAAe,EAAE,CAAA;IAChD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IACnD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IACrD,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;IACpD,MAAM,uBAAuB,GAAG,IAAI,qBAAqB,CACrD,WAAW,CAAC,IAAI,CAAC,MAAM,EACvB,eAAe,CAClB,CAAA;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAA;IAEpD,wCAAwC;IACxC,IAAI,GAAc,CAAA;IAClB,IAAI,KAAgB,CAAA;IACpB,IAAI,OAAe,CAAA;IACnB,IAAI,gBAAwB,CAAA;IAC5B,2BAA2B;IAC3B,IAAI,YAAoC,CAAA;IACxC,IAAI,gBAAwC,CAAA;IAE5C,SAAS,CAAC,KAAK,IAAI,EAAE;QACjB,aAAa;QACb,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QACxC,GAAG,CAAC,OAAO,CAAC,CAAA;QAEZ,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,WAAW,CAAC,UAAU,EAAE;YACxB,aAAa,CAAC,UAAU,EAAE;YAC1B,uBAAuB,CAAC,UAAU,EAAE;SACvC,CAAC,CAAA;QAEF,GAAG,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE,CAAA;QACvC,KAAK,GAAG,MAAM,aAAa,CAAC,aAAa,EAAE,CAAA;QAE3C,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,GAAG,CAAC,KAAK,EAAE;YACX,KAAK,CAAC,KAAK,EAAE;YACb,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,mBAAmB,CACxD,WAAW,CAAC,MAAM,EAClB,eAAe,CAClB;SACJ,CAAC,CAAA;QAEF,mEAAmE;QACnE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CACxE,EAAE,SAAS,EAAE,UAAU,EAAE,EACzB,WAAW,CAAC,MAAM,CACrB,CAAA;QACD,OAAO,GAAG,GAAG,CAAA;QACb,gBAAgB,GAAG,GAAG,CAAA;QAEtB,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QAC3D,GAAG,CAAC,4BAA4B,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAA;QAE5D,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC5F,YAAY,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxC,gBAAgB,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;QACzC,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACX,8DAA8D;QAC9D,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QAChB,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACxB,qDAAqD;QACrD,4DAA4D;QAC5D,oBAAoB;QACpB,yCAAyC;QACzC,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC5F,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACzC,MAAM,MAAM,CACR,GAAG,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAC/D,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC5F,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACzC,MAAM,MAAM,CACR,GAAG,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAC/D,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QACxB,uCAAuC;QACvC,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACtF,uBAAuB,CAC1B,CAAA;IACL,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,+DAA+D;QAC/D,MAAM,MAAM,CACR,KAAK,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CACtE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QACrC,gEAAgE;QAChE,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA,CAAC,uBAAuB;QACvE,eAAe,CAAC,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;QAC9D,MAAM,MAAM,CACR,KAAK,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CACzE,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACnC,gEAAgE;QAChE,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;QAC/C,eAAe,CAAC,EAAE,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;QAC5D,MAAM,MAAM,CACR,GAAG,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CACvE,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,2EAA2E;QAC3E,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;QAC/C,eAAe,CAAC,WAAW,IAAI,CAAC,CAAA;QAChC,MAAM,MAAM,CACR,GAAG,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CACvE,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,2EAA2E;QAC3E,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;QAC/C,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAClD,MAAM,MAAM,CACR,GAAG,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CACvE,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,6CAA6C;QAC7C,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;QAC/C,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/D,MAAM,MAAM,CACR,GAAG,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CACvE,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,6CAA6C;QAC7C,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;QAC/C,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;QAClE,MAAM,MAAM,CACR,GAAG,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CACvE,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,6CAA6C;QAC7C,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;QAC/C,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;QACpE,MAAM,MAAM,CACR,GAAG,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CACvE,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;QAC/C,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACrE,MAAM,MAAM,CACR,GAAG,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CACvE,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,sCAAsC;QACtC,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;QAC/C,eAAe,CAAC,eAAe,GAAG,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;QAClE,MAAM,MAAM,CACR,GAAG,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CACvE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,qDAAqD;QACrD,6DAA6D;QAC7D,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC3F,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAA;QAExC,mCAAmC;QACnC,MAAM,MAAM,CACR,GAAG,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAC/D,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,yDAAyD;QACzD,6DAA6D;QAC7D,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC3F,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAA;QAExC,mCAAmC;QACnC,MAAM,MAAM,CACR,KAAK,CAAC,eAAe,CAAC,MAAO,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CACjE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
@@ -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":""}
@@ -1,278 +0,0 @@
1
- import { dlog } from '@towns-labs/utils';
2
- import { townsEnv } from '../../townsEnv';
3
- import { Bot } from '../../sync-agent/utils/bot';
4
- import { ethers } from 'ethers';
5
- import { ETH_ADDRESS, getSpaceReviewEventData, getSpaceReviewEventDataBin, SpaceReviewAction, } from '@towns-labs/web3';
6
- import { waitForValue } from '../testUtils';
7
- import { BlockchainTransaction_SpaceReview_Action } from '@towns-labs/proto';
8
- import { UnauthenticatedClient } from '../../unauthenticatedClient';
9
- import { RiverTimelineEvent } from '../../views/models/timelineTypes';
10
- const base_log = dlog('csb:test:transaction_SpaceReview');
11
- describe('transaction_SpaceReview', () => {
12
- const townsConfig = townsEnv().makeTownsConfig();
13
- const bobIdentity = new Bot(undefined, townsConfig);
14
- const aliceIdentity = new Bot(undefined, townsConfig);
15
- const alicesOtherWallet = ethers.Wallet.createRandom();
16
- let bob;
17
- let alice;
18
- let spaceIdWithAlice;
19
- let spaceIdWithoutAlice;
20
- let aliceTokenId;
21
- const chainId = townsConfig.base.chainConfig.chainId;
22
- let spaceReviewEventId;
23
- let orphanReviewReceipt;
24
- beforeAll(async () => {
25
- const log = base_log.extend('beforeAll');
26
- log('start');
27
- // fund wallets
28
- await Promise.all([bobIdentity.fundWallet(), aliceIdentity.fundWallet()]);
29
- // make agents
30
- bob = await bobIdentity.makeSyncAgent();
31
- alice = await aliceIdentity.makeSyncAgent();
32
- // start agents
33
- await Promise.all([
34
- bob.start(),
35
- alice.start(),
36
- alice.riverConnection.spaceDapp.walletLink.linkWalletToRootKey(aliceIdentity.signer, alicesOtherWallet),
37
- ]);
38
- // make a space
39
- const { spaceId: sid1 } = await bob.spaces.createSpace({ spaceName: 'Lets REvieW 1' }, bobIdentity.signer);
40
- spaceIdWithAlice = sid1;
41
- // join the space
42
- await alice.spaces.joinSpace(spaceIdWithAlice, aliceIdentity.signer);
43
- // get alice's token id
44
- const aliceTokenId_ = await bob.riverConnection.spaceDapp.getTokenIdOfOwner(spaceIdWithAlice, aliceIdentity.rootWallet.address);
45
- expect(aliceTokenId_).toBeDefined();
46
- aliceTokenId = aliceTokenId_;
47
- // make another space
48
- const { spaceId: sid2 } = await bob.spaces.createSpace({ spaceName: 'Lets REvieW 2' }, bobIdentity.signer);
49
- spaceIdWithoutAlice = sid2;
50
- log('complete', { spaceIdWithAlice, spaceIdWithoutAlice });
51
- // todo, leave a review on the without alice space
52
- });
53
- afterAll(async () => {
54
- await bob.stop();
55
- await alice.stop();
56
- });
57
- test('alice adds review', async () => {
58
- const web3Space = alice.riverConnection.spaceDapp.getSpace(spaceIdWithAlice);
59
- expect(web3Space).toBeDefined();
60
- const tx = await web3Space.Review.addReview({
61
- rating: 5,
62
- comment: 'This is a test review',
63
- }, aliceIdentity.signer);
64
- expect(tx).toBeDefined();
65
- const receipt = await tx.wait(2);
66
- expect(receipt).toBeDefined();
67
- const reviewEvent = getSpaceReviewEventData(receipt.logs, aliceIdentity.userId);
68
- expect(reviewEvent).toBeDefined();
69
- expect(reviewEvent.rating).toBe(5);
70
- expect(reviewEvent.comment).toBe('This is a test review');
71
- await alice.riverConnection.client?.addTransaction_SpaceReview(chainId, receipt, reviewEvent, spaceIdWithAlice);
72
- });
73
- test('alice sees review in user stream', async () => {
74
- const stream = alice.riverConnection.client.stream(alice.riverConnection.client.userStreamId);
75
- if (!stream)
76
- throw new Error('no stream found');
77
- const reviewEvent = await waitForValue(() => {
78
- const reviewEvents = stream.view.timeline.filter(isUserBlockchainTransaction);
79
- expect(reviewEvents.length).toBeGreaterThan(0);
80
- const reviewEvent = reviewEvents[0];
81
- expect(reviewEvent).toBeDefined();
82
- if (!reviewEvent ||
83
- reviewEvent.content?.kind !== RiverTimelineEvent.UserBlockchainTransaction)
84
- throw new Error('no review event whaaa?');
85
- return reviewEvent.content.transaction;
86
- });
87
- if (reviewEvent?.content.case !== 'spaceReview') {
88
- throw new Error('no review event whaaa?');
89
- }
90
- expect(reviewEvent.receipt).toBeDefined();
91
- expect(reviewEvent.content.value.action).toBe(BlockchainTransaction_SpaceReview_Action.Add);
92
- if (!reviewEvent.content.value.event) {
93
- throw new Error('no event in space review');
94
- }
95
- const { comment, rating, action } = getSpaceReviewEventDataBin(reviewEvent.receipt.logs, reviewEvent.content.value.event.user);
96
- expect(action).toBe(SpaceReviewAction.Add);
97
- expect(comment).toBe('This is a test review');
98
- expect(rating).toBe(5);
99
- });
100
- test('alice sees review in space stream', async () => {
101
- const stream = alice.riverConnection.client.stream(spaceIdWithAlice);
102
- if (!stream)
103
- throw new Error('no stream found');
104
- const reviewEvent = await waitForValue(() => {
105
- const reviewEvents = stream.view.membershipContent.spaceReviews;
106
- expect(reviewEvents.length).toBe(1);
107
- const reviewEvent = reviewEvents[0];
108
- return reviewEvent;
109
- });
110
- spaceReviewEventId = reviewEvent.eventHashStr;
111
- const { comment, rating } = reviewEvent.review;
112
- expect(comment).toBe('This is a test review');
113
- expect(rating).toBe(5);
114
- });
115
- test('bob sees review in space stream', async () => {
116
- const stream = bob.riverConnection.client.stream(spaceIdWithAlice);
117
- if (!stream)
118
- throw new Error('no stream found');
119
- const reviewEvent = await waitForValue(() => {
120
- const reviewEvents = stream.view.membershipContent.spaceReviews;
121
- expect(reviewEvents.length).toBe(1);
122
- return reviewEvents[0];
123
- });
124
- expect(reviewEvent).toBeDefined();
125
- expect(stream.view.membershipContent.spaceReviews.length).toBe(1);
126
- });
127
- test('bob can tip review', async () => {
128
- const tx = await bob.riverConnection.spaceDapp.sendTip({
129
- tipParams: {
130
- spaceId: spaceIdWithAlice,
131
- type: 'member',
132
- tokenId: aliceTokenId,
133
- currency: ETH_ADDRESS,
134
- amount: 1000n,
135
- messageId: spaceReviewEventId,
136
- channelId: spaceIdWithAlice,
137
- receiver: aliceIdentity.userId,
138
- },
139
- signer: bobIdentity.signer,
140
- });
141
- const receipt = await tx.wait(2);
142
- expect(receipt).toBeDefined();
143
- const tipEvent = bob.riverConnection.spaceDapp.getTipEvent(spaceIdWithAlice, receipt, bobIdentity.rootWallet.address);
144
- expect(tipEvent).toBeDefined();
145
- if (!tipEvent)
146
- throw new Error('no tip event found');
147
- await bob.riverConnection.client.addTransaction_Tip(chainId, receipt, tipEvent, aliceIdentity.rootWallet.address);
148
- });
149
- test('alice can see tip received in user stream', async () => {
150
- const stream = alice.riverConnection.client.stream(alice.riverConnection.client.userStreamId);
151
- if (!stream)
152
- throw new Error('no stream found');
153
- const tipEvent = await waitForValue(() => {
154
- const tipEvents = stream.view.timeline.filter(isUserReceivedBlockchainTransaction);
155
- expect(tipEvents.length).toBeGreaterThan(0);
156
- const tip = tipEvents[0];
157
- if (!tip || tip.content?.kind !== RiverTimelineEvent.UserReceivedBlockchainTransaction)
158
- throw new Error('no tip event found');
159
- return tip.content.receivedTransaction;
160
- });
161
- if (!tipEvent)
162
- throw new Error('no tip event found');
163
- expect(tipEvent.transaction?.receipt).toBeDefined();
164
- });
165
- test('alice can see tip in space stream', async () => {
166
- const stream = alice.riverConnection.client.stream(spaceIdWithAlice);
167
- if (!stream)
168
- throw new Error('no stream found');
169
- const tipEvent = await waitForValue(() => {
170
- const tipEvents = stream.view.timeline.filter(isTipBlockchainTransaction);
171
- expect(tipEvents.length).toBeGreaterThan(0);
172
- const tip = tipEvents[0];
173
- if (!tip || tip.content?.kind !== RiverTimelineEvent.TipEvent)
174
- throw new Error('no tip event found');
175
- return tip.content;
176
- });
177
- if (!tipEvent)
178
- throw new Error('no tip event found');
179
- expect(tipEvent.transaction?.receipt).toBeDefined();
180
- });
181
- test('alice updates review', async () => {
182
- const web3Space = alice.riverConnection.spaceDapp.getSpace(spaceIdWithAlice);
183
- expect(web3Space).toBeDefined();
184
- const tx = await web3Space.Review.updateReview({
185
- rating: 4,
186
- comment: 'This is a worse test review',
187
- }, aliceIdentity.signer);
188
- expect(tx).toBeDefined();
189
- const receipt = await tx.wait(2);
190
- expect(receipt).toBeDefined();
191
- const reviewEvent = getSpaceReviewEventData(receipt.logs, aliceIdentity.userId);
192
- expect(reviewEvent).toBeDefined();
193
- expect(reviewEvent.rating).toBe(4);
194
- expect(reviewEvent.comment).toBe('This is a worse test review');
195
- await expect(alice.riverConnection.client.addTransaction_SpaceReview(chainId, receipt, reviewEvent, spaceIdWithAlice)).resolves.not.toThrow();
196
- });
197
- test('alice deletes review', async () => {
198
- const web3Space = alice.riverConnection.spaceDapp.getSpace(spaceIdWithAlice);
199
- expect(web3Space).toBeDefined();
200
- const tx = await web3Space.Review.deleteReview(aliceIdentity.signer);
201
- expect(tx).toBeDefined();
202
- const receipt = await tx.wait(2);
203
- expect(receipt).toBeDefined();
204
- const reviewEvent = getSpaceReviewEventData(receipt.logs, aliceIdentity.userId);
205
- expect(reviewEvent).toBeDefined();
206
- expect(reviewEvent.rating).toBe(0);
207
- expect(reviewEvent.comment).toBeUndefined();
208
- await expect(alice.riverConnection.client.addTransaction_SpaceReview(chainId, receipt, reviewEvent, spaceIdWithAlice)).resolves.not.toThrow();
209
- });
210
- test('bob leaves an orphan review', async () => {
211
- const tx = await bob.riverConnection.spaceDapp
212
- .getSpace(spaceIdWithoutAlice)
213
- ?.Review.addReview({
214
- rating: 5,
215
- comment: 'This is an orphan review',
216
- }, bobIdentity.signer);
217
- expect(tx).toBeDefined();
218
- const receipt = await tx.wait(2);
219
- orphanReviewReceipt = receipt;
220
- });
221
- test('cant add review with bad space', async () => {
222
- // bob leaves a review on spaceIdWithoutAlice
223
- const reviewEvent = {
224
- action: SpaceReviewAction.Add,
225
- user: bobIdentity.userId,
226
- rating: 5,
227
- };
228
- await expect(bob.riverConnection.client.addTransaction_SpaceReview(chainId, orphanReviewReceipt, reviewEvent, spaceIdWithAlice)).rejects.toThrow('matching review event not found in receipt logs');
229
- });
230
- test('cant add review with bad sender', async () => {
231
- const reviewEvent = {
232
- action: SpaceReviewAction.Add,
233
- user: bobIdentity.userId,
234
- rating: 5,
235
- };
236
- await expect(
237
- // alice didn't send this!
238
- alice.riverConnection.client.addTransaction_SpaceReview(chainId, orphanReviewReceipt, reviewEvent, spaceIdWithoutAlice)).rejects.toThrow('IsEntitled failed');
239
- });
240
- test('cant add review with bad rating', async () => {
241
- const reviewEvent = {
242
- action: SpaceReviewAction.Add,
243
- user: bobIdentity.userId,
244
- rating: 1, // wrong rating!
245
- };
246
- await expect(bob.riverConnection.client.addTransaction_SpaceReview(chainId, orphanReviewReceipt, reviewEvent, spaceIdWithoutAlice)).rejects.toThrow('matching review event not found in receipt logs');
247
- });
248
- test('cant add review with bad action', async () => {
249
- const reviewEvent = {
250
- action: SpaceReviewAction.Update, // wrong action!
251
- user: bobIdentity.userId,
252
- rating: 5,
253
- };
254
- await expect(bob.riverConnection.client.addTransaction_SpaceReview(chainId, orphanReviewReceipt, reviewEvent, spaceIdWithoutAlice)).rejects.toThrow('matching review event not found in receipt logs');
255
- });
256
- test('alice snapshot', async () => {
257
- await alice.riverConnection.client.debugForceMakeMiniblock(alice.riverConnection.client.userStreamId, { forceSnapshot: true });
258
- const streamView = await alice.riverConnection.client.getStream(alice.riverConnection.client.userStreamId);
259
- expect(streamView).toBeDefined();
260
- });
261
- test('space snapshot', async () => {
262
- await bob.riverConnection.client.debugForceMakeMiniblock(spaceIdWithAlice, {
263
- forceSnapshot: true,
264
- });
265
- const streamView = await bob.riverConnection.client.getStream(spaceIdWithAlice);
266
- expect(streamView).toBeDefined();
267
- // after the snapshot, we no longer see the review
268
- expect(streamView.membershipContent.spaceReviews.length).toBe(0);
269
- // do some scrollback
270
- const unauthenticatedClient = new UnauthenticatedClient(alice.riverConnection.client.rpcClient);
271
- await unauthenticatedClient.scrollback(streamView);
272
- expect(streamView.membershipContent.spaceReviews.length).toBe(1);
273
- });
274
- });
275
- const isTipBlockchainTransaction = (e) => e.content?.kind === RiverTimelineEvent.TipEvent;
276
- const isUserBlockchainTransaction = (e) => e.content?.kind === RiverTimelineEvent.UserBlockchainTransaction;
277
- const isUserReceivedBlockchainTransaction = (e) => e.content?.kind === RiverTimelineEvent.UserReceivedBlockchainTransaction;
278
- //# sourceMappingURL=transactions_SpaceReview.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactions_SpaceReview.test.js","sourceRoot":"","sources":["../../../src/tests/multi/transactions_SpaceReview.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- export {};
5
- //# sourceMappingURL=transactions_Tip.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactions_Tip.test.d.ts","sourceRoot":"","sources":["../../../src/tests/multi/transactions_Tip.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}