@geoprotocol/geo-sdk 0.19.1 → 0.19.3

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 (189) hide show
  1. package/dist/examples/ranks/create-ordinal-rank.d.ts +1 -1
  2. package/dist/examples/ranks/create-ordinal-rank.js +9 -6
  3. package/dist/examples/ranks/create-ordinal-rank.js.map +1 -1
  4. package/dist/examples/ranks/create-weighted-rank.d.ts +1 -1
  5. package/dist/examples/ranks/create-weighted-rank.js +9 -6
  6. package/dist/examples/ranks/create-weighted-rank.js.map +1 -1
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/src/abis/dao-space-factory.d.ts +6 -43
  12. package/dist/src/abis/dao-space-factory.d.ts.map +1 -1
  13. package/dist/src/abis/dao-space-factory.js +27 -38
  14. package/dist/src/abis/dao-space-factory.js.map +1 -1
  15. package/dist/src/abis/dao-space.d.ts +7 -98
  16. package/dist/src/abis/dao-space.d.ts.map +1 -1
  17. package/dist/src/abis/dao-space.js +99 -61
  18. package/dist/src/abis/dao-space.js.map +1 -1
  19. package/dist/src/abis/index.d.ts +2 -2
  20. package/dist/src/abis/index.d.ts.map +1 -1
  21. package/dist/src/abis/index.js +2 -2
  22. package/dist/src/abis/index.js.map +1 -1
  23. package/dist/src/abis/space-registry.d.ts +0 -26
  24. package/dist/src/abis/space-registry.d.ts.map +1 -1
  25. package/dist/src/abis/space-registry.js +0 -33
  26. package/dist/src/abis/space-registry.js.map +1 -1
  27. package/dist/src/client/dao-spaces.d.ts +33 -93
  28. package/dist/src/client/dao-spaces.d.ts.map +1 -1
  29. package/dist/src/client/dao-spaces.js +42 -174
  30. package/dist/src/client/dao-spaces.js.map +1 -1
  31. package/dist/src/client/dao-spaces.test.js +79 -313
  32. package/dist/src/client/dao-spaces.test.js.map +1 -1
  33. package/dist/src/client/personal-spaces.d.ts +0 -74
  34. package/dist/src/client/personal-spaces.d.ts.map +1 -1
  35. package/dist/src/client/personal-spaces.js +2 -82
  36. package/dist/src/client/personal-spaces.js.map +1 -1
  37. package/dist/src/client/ranks.d.ts +36 -0
  38. package/dist/src/client/ranks.d.ts.map +1 -0
  39. package/dist/src/client/ranks.js +57 -0
  40. package/dist/src/client/ranks.js.map +1 -0
  41. package/dist/src/client/ranks.test.d.ts +2 -0
  42. package/dist/src/client/ranks.test.d.ts.map +1 -0
  43. package/dist/src/client/ranks.test.js +96 -0
  44. package/dist/src/client/ranks.test.js.map +1 -0
  45. package/dist/src/client/spaces.test.js +7 -27
  46. package/dist/src/client/spaces.test.js.map +1 -1
  47. package/dist/src/client.d.ts +21 -33
  48. package/dist/src/client.d.ts.map +1 -1
  49. package/dist/src/client.js +81 -102
  50. package/dist/src/client.js.map +1 -1
  51. package/dist/src/client.test.js +3 -8
  52. package/dist/src/client.test.js.map +1 -1
  53. package/dist/src/core/ids/system.d.ts +8 -0
  54. package/dist/src/core/ids/system.d.ts.map +1 -1
  55. package/dist/src/core/ids/system.js +8 -0
  56. package/dist/src/core/ids/system.js.map +1 -1
  57. package/dist/src/dao-space/constants.d.ts +0 -10
  58. package/dist/src/dao-space/constants.d.ts.map +1 -1
  59. package/dist/src/dao-space/constants.js +0 -10
  60. package/dist/src/dao-space/constants.js.map +1 -1
  61. package/dist/src/dao-space/execute-proposal.d.ts +1 -1
  62. package/dist/src/dao-space/execute-proposal.js +2 -2
  63. package/dist/src/dao-space/execute-proposal.js.map +1 -1
  64. package/dist/src/dao-space/index.d.ts +1 -2
  65. package/dist/src/dao-space/index.d.ts.map +1 -1
  66. package/dist/src/dao-space/index.js +0 -1
  67. package/dist/src/dao-space/index.js.map +1 -1
  68. package/dist/src/dao-space/propose-add-editor.d.ts +20 -1
  69. package/dist/src/dao-space/propose-add-editor.d.ts.map +1 -1
  70. package/dist/src/dao-space/propose-add-editor.js +87 -12
  71. package/dist/src/dao-space/propose-add-editor.js.map +1 -1
  72. package/dist/src/dao-space/propose-add-editor.test.js +4 -16
  73. package/dist/src/dao-space/propose-add-editor.test.js.map +1 -1
  74. package/dist/src/dao-space/propose-add-member.d.ts +20 -1
  75. package/dist/src/dao-space/propose-add-member.d.ts.map +1 -1
  76. package/dist/src/dao-space/propose-add-member.js +87 -12
  77. package/dist/src/dao-space/propose-add-member.js.map +1 -1
  78. package/dist/src/dao-space/propose-add-member.test.js +0 -13
  79. package/dist/src/dao-space/propose-add-member.test.js.map +1 -1
  80. package/dist/src/dao-space/propose-edit.test.js +0 -45
  81. package/dist/src/dao-space/propose-edit.test.js.map +1 -1
  82. package/dist/src/dao-space/propose-remove-editor.d.ts +22 -1
  83. package/dist/src/dao-space/propose-remove-editor.d.ts.map +1 -1
  84. package/dist/src/dao-space/propose-remove-editor.js +94 -12
  85. package/dist/src/dao-space/propose-remove-editor.js.map +1 -1
  86. package/dist/src/dao-space/propose-remove-editor.test.js +4 -22
  87. package/dist/src/dao-space/propose-remove-editor.test.js.map +1 -1
  88. package/dist/src/dao-space/propose-remove-member.d.ts +22 -1
  89. package/dist/src/dao-space/propose-remove-member.d.ts.map +1 -1
  90. package/dist/src/dao-space/propose-remove-member.js +94 -12
  91. package/dist/src/dao-space/propose-remove-member.js.map +1 -1
  92. package/dist/src/dao-space/propose-remove-member.test.js +0 -19
  93. package/dist/src/dao-space/propose-remove-member.test.js.map +1 -1
  94. package/dist/src/dao-space/types.d.ts +11 -72
  95. package/dist/src/dao-space/types.d.ts.map +1 -1
  96. package/dist/src/dao-space/vote-proposal.d.ts +1 -1
  97. package/dist/src/dao-space/vote-proposal.js +2 -2
  98. package/dist/src/dao-space/vote-proposal.js.map +1 -1
  99. package/dist/src/dao-space/vote-proposal.test.js +0 -54
  100. package/dist/src/dao-space/vote-proposal.test.js.map +1 -1
  101. package/dist/src/e2e-api-surface.test.d.ts +2 -0
  102. package/dist/src/e2e-api-surface.test.d.ts.map +1 -0
  103. package/dist/src/{api-surface.e2e.test.js → e2e-api-surface.test.js} +101 -286
  104. package/dist/src/e2e-api-surface.test.js.map +1 -0
  105. package/dist/src/e2e-legacy-api-surface.test.d.ts +2 -0
  106. package/dist/src/e2e-legacy-api-surface.test.d.ts.map +1 -0
  107. package/dist/src/{legacy-api-surface.e2e.test.js → e2e-legacy-api-surface.test.js} +70 -90
  108. package/dist/src/e2e-legacy-api-surface.test.js.map +1 -0
  109. package/dist/src/encodings/get-create-dao-space-calldata.d.ts +21 -34
  110. package/dist/src/encodings/get-create-dao-space-calldata.d.ts.map +1 -1
  111. package/dist/src/encodings/get-create-dao-space-calldata.js +35 -64
  112. package/dist/src/encodings/get-create-dao-space-calldata.js.map +1 -1
  113. package/dist/src/encodings/get-create-dao-space-calldata.test.js +64 -94
  114. package/dist/src/encodings/get-create-dao-space-calldata.test.js.map +1 -1
  115. package/dist/src/full-flow-test.test.js +2 -5
  116. package/dist/src/full-flow-test.test.js.map +1 -1
  117. package/dist/src/ops/index.d.ts +1 -0
  118. package/dist/src/ops/index.d.ts.map +1 -1
  119. package/dist/src/ops/index.js +1 -0
  120. package/dist/src/ops/index.js.map +1 -1
  121. package/dist/src/ops/ranks.d.ts +33 -0
  122. package/dist/src/ops/ranks.d.ts.map +1 -0
  123. package/dist/src/ops/ranks.js +33 -0
  124. package/dist/src/ops/ranks.js.map +1 -0
  125. package/dist/src/ops/ranks.test.d.ts +2 -0
  126. package/dist/src/ops/ranks.test.d.ts.map +1 -0
  127. package/dist/src/ops/ranks.test.js +36 -0
  128. package/dist/src/ops/ranks.test.js.map +1 -0
  129. package/dist/src/personal-space/constants.d.ts +1 -1
  130. package/dist/src/personal-space/constants.d.ts.map +1 -1
  131. package/dist/src/personal-space/constants.js +1 -1
  132. package/dist/src/personal-space/constants.js.map +1 -1
  133. package/dist/src/personal-space/create-space.d.ts +2 -2
  134. package/dist/src/personal-space/create-space.d.ts.map +1 -1
  135. package/dist/src/personal-space/create-space.js +3 -4
  136. package/dist/src/personal-space/create-space.js.map +1 -1
  137. package/dist/src/personal-space/types.d.ts +1 -4
  138. package/dist/src/personal-space/types.d.ts.map +1 -1
  139. package/dist/src/ranks/create-rank.d.ts +19 -9
  140. package/dist/src/ranks/create-rank.d.ts.map +1 -1
  141. package/dist/src/ranks/create-rank.js +34 -57
  142. package/dist/src/ranks/create-rank.js.map +1 -1
  143. package/dist/src/ranks/create-rank.test.js +151 -23
  144. package/dist/src/ranks/create-rank.test.js.map +1 -1
  145. package/dist/src/ranks/index.d.ts +0 -1
  146. package/dist/src/ranks/index.d.ts.map +1 -1
  147. package/dist/src/ranks/index.js +0 -1
  148. package/dist/src/ranks/index.js.map +1 -1
  149. package/dist/src/ranks/types.d.ts +30 -0
  150. package/dist/src/ranks/types.d.ts.map +1 -1
  151. package/dist/src/ranks/update-rank.d.ts +40 -0
  152. package/dist/src/ranks/update-rank.d.ts.map +1 -0
  153. package/dist/src/ranks/update-rank.js +61 -0
  154. package/dist/src/ranks/update-rank.js.map +1 -0
  155. package/dist/src/ranks/update-rank.test.d.ts +2 -0
  156. package/dist/src/ranks/update-rank.test.d.ts.map +1 -0
  157. package/dist/src/ranks/update-rank.test.js +120 -0
  158. package/dist/src/ranks/update-rank.test.js.map +1 -0
  159. package/dist/src/ranks/vote-ops.d.ts +37 -0
  160. package/dist/src/ranks/vote-ops.d.ts.map +1 -0
  161. package/dist/src/ranks/vote-ops.js +96 -0
  162. package/dist/src/ranks/vote-ops.js.map +1 -0
  163. package/package.json +1 -1
  164. package/dist/src/abis/dao-space-v2.test.d.ts +0 -2
  165. package/dist/src/abis/dao-space-v2.test.d.ts.map +0 -1
  166. package/dist/src/abis/dao-space-v2.test.js +0 -67
  167. package/dist/src/abis/dao-space-v2.test.js.map +0 -1
  168. package/dist/src/api-surface.e2e.test.d.ts +0 -2
  169. package/dist/src/api-surface.e2e.test.d.ts.map +0 -1
  170. package/dist/src/api-surface.e2e.test.js.map +0 -1
  171. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts +0 -2
  172. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts.map +0 -1
  173. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js +0 -239
  174. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js.map +0 -1
  175. package/dist/src/dao-space/propose-update-voting-settings.d.ts +0 -8
  176. package/dist/src/dao-space/propose-update-voting-settings.d.ts.map +0 -1
  177. package/dist/src/dao-space/propose-update-voting-settings.js +0 -19
  178. package/dist/src/dao-space/propose-update-voting-settings.js.map +0 -1
  179. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts +0 -2
  180. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts.map +0 -1
  181. package/dist/src/dao-space/propose-update-voting-settings.test.js +0 -118
  182. package/dist/src/dao-space/propose-update-voting-settings.test.js.map +0 -1
  183. package/dist/src/e2e-test-environment.d.ts +0 -26
  184. package/dist/src/e2e-test-environment.d.ts.map +0 -1
  185. package/dist/src/e2e-test-environment.js +0 -150
  186. package/dist/src/e2e-test-environment.js.map +0 -1
  187. package/dist/src/legacy-api-surface.e2e.test.d.ts +0 -2
  188. package/dist/src/legacy-api-surface.e2e.test.d.ts.map +0 -1
  189. package/dist/src/legacy-api-surface.e2e.test.js.map +0 -1
@@ -1,239 +0,0 @@
1
- import { readFileSync } from 'node:fs';
2
- import { createPublicClient, decodeAbiParameters, decodeFunctionData, encodeFunctionData, hexToString, http, } from 'viem';
3
- import { describe, expect, it, vi } from 'vitest';
4
- import { DaoSpaceAbi, DaoSpaceFactoryAbi, SpaceRegistryAbi } from '../abis/index.js';
5
- import { createGeoClient } from '../client.js';
6
- import { bytes16ToBytes32LeftAligned, EDITS_PUBLISHED_ACTION, EMPTY_TOPIC, PROPOSAL_CREATED_ACTION, PROPOSAL_VOTED_ACTION, VOTE_OPTION_VALUES, } from '../dao-space/constants.js';
7
- import { getCreateDaoSpaceCalldata } from '../encodings/get-create-dao-space-calldata.js';
8
- import { defineGeoNetworkConfig } from '../networks.js';
9
- import * as Ops from '../ops/index.js';
10
- const deploymentsPath = process.env.GEO_LOCAL_GEOBROWSER_DEPLOYMENTS;
11
- const localGeobrowserPath = process.env.GEO_LOCAL_GEOBROWSER_PATH;
12
- const deployments = deploymentsPath
13
- ? JSON.parse(readFileSync(deploymentsPath, 'utf8'))
14
- : undefined;
15
- const localRpcUrl = deployments?.rpcUrl ?? process.env.GEO_LOCAL_GEOBROWSER_RPC_URL;
16
- const describeLocal = deployments ? describe : describe.skip;
17
- const describeLocalRpc = deployments && localRpcUrl ? describe : describe.skip;
18
- const describeLocalSource = localGeobrowserPath ? describe : describe.skip;
19
- function readDeployments() {
20
- if (!deployments) {
21
- throw new Error('Set GEO_LOCAL_GEOBROWSER_DEPLOYMENTS to the local-geobrowser .deployments.json path.');
22
- }
23
- return deployments;
24
- }
25
- function readLocalContractSource(relativePath) {
26
- if (!localGeobrowserPath) {
27
- throw new Error('Set GEO_LOCAL_GEOBROWSER_PATH to the local-geobrowser checkout path.');
28
- }
29
- return readFileSync(`${localGeobrowserPath}/contracts/src/${relativePath}`, 'utf8');
30
- }
31
- function localNetwork(deployments) {
32
- return defineGeoNetworkConfig({
33
- id: 'LOCAL_GEOBROWSER',
34
- name: 'Local Geobrowser',
35
- apiOrigin: process.env.GEO_LOCAL_GEOBROWSER_API_ORIGIN ?? 'http://localhost:3000',
36
- chain: {
37
- id: Number(process.env.GEO_LOCAL_GEOBROWSER_CHAIN_ID ?? 31337),
38
- name: 'Anvil',
39
- rpcUrl: deployments.rpcUrl ?? process.env.GEO_LOCAL_GEOBROWSER_RPC_URL,
40
- },
41
- contracts: {
42
- SPACE_REGISTRY_ADDRESS: deployments.spaceRegistry,
43
- DAO_SPACE_FACTORY_ADDRESS: deployments.daoSpaceFactory,
44
- },
45
- });
46
- }
47
- describeLocal('local-geobrowser contracts v2 calldata', () => {
48
- const editorSpaceId = '0x11111111111111111111111111111111';
49
- const daoSpaceId = '0x22222222222222222222222222222222';
50
- const proposalId = '0x33333333333333333333333333333333';
51
- const cid = 'ipfs://bafkreigwfjixq5cm3s4youhshorkpqh3ykpviyv76c2ei6gaalujtlqz5i';
52
- const authorId = '5cade5757ecd41ae83481b22ffc2f94e';
53
- const votingSettings = {
54
- partialPercentageSupportThreshold: 50,
55
- universalPercentageSupportThreshold: 90,
56
- flatSupportThreshold: 1,
57
- quorum: 1,
58
- durationInDays: 2,
59
- disableFastPathAccessForNewMembers: true,
60
- executionGracePeriodInDays: 14,
61
- };
62
- it('builds a custom network from local-geobrowser deployments', () => {
63
- const deployments = readDeployments();
64
- const network = localNetwork(deployments);
65
- expect(network.contracts?.SPACE_REGISTRY_ADDRESS).toBe(deployments.spaceRegistry);
66
- expect(network.contracts?.DAO_SPACE_FACTORY_ADDRESS).toBe(deployments.daoSpaceFactory);
67
- });
68
- it('decodes DAO creation calldata against the v2 factory ABI', () => {
69
- const calldata = getCreateDaoSpaceCalldata({
70
- votingSettings,
71
- initialEditorSpaceIds: [editorSpaceId],
72
- initialMemberSpaceIds: [editorSpaceId],
73
- initialEditsContentUri: cid,
74
- initialTopicId: '9f9e7d45-5b11-4d6b-9c5d-9567eeb3a001',
75
- });
76
- const decoded = decodeFunctionData({
77
- abi: DaoSpaceFactoryAbi,
78
- data: calldata,
79
- });
80
- const [settings, initialEditors, initialMembers, initialEditContentUri, initialEditMetadata, initialTopicId] = decoded.args;
81
- expect(decoded.functionName).toBe('createDAOSpaceProxy');
82
- expect(decoded.args).toHaveLength(6);
83
- expect(settings.partialPercentageSupportThreshold).toBe(5000000n);
84
- expect(settings.universalPercentageSupportThreshold).toBe(9000000n);
85
- expect(settings.executionGracePeriod).toBe(1209600n);
86
- expect(initialEditors).toEqual([editorSpaceId]);
87
- expect(initialMembers).toEqual([editorSpaceId]);
88
- expect(hexToString(initialEditContentUri)).toBe(cid);
89
- expect(initialEditMetadata).toBe('0x');
90
- expect(initialTopicId).toBe('0x9f9e7d455b114d6b9c5d9567eeb3a001');
91
- });
92
- it('decodes DAO proposal and versioned vote calldata against local v2 ABIs', async () => {
93
- const deployments = readDeployments();
94
- const network = localNetwork(deployments);
95
- const geo = createGeoClient({ network });
96
- const fetch = vi.fn().mockResolvedValue(new Response(JSON.stringify({ cid })));
97
- const geoWithFetch = createGeoClient({ network, fetch });
98
- const updateSettings = geo.daoSpaces.proposeUpdateVotingSettings({
99
- authorSpaceId: editorSpaceId,
100
- spaceId: daoSpaceId,
101
- daoSpaceAddress: deployments.daoSpace,
102
- proposalId,
103
- votingSettings,
104
- });
105
- const decodedProposal = decodeFunctionData({
106
- abi: SpaceRegistryAbi,
107
- data: updateSettings.calldata,
108
- });
109
- const [, , proposalAction, proposalTopic, proposalData] = decodedProposal.args;
110
- const [, votingMode, actions] = decodeAbiParameters([
111
- { type: 'bytes16', name: 'proposalId' },
112
- { type: 'uint8', name: 'votingMode' },
113
- {
114
- type: 'tuple[]',
115
- name: 'actions',
116
- components: [
117
- { type: 'address', name: 'to' },
118
- { type: 'uint256', name: 'value' },
119
- { type: 'bytes', name: 'data' },
120
- ],
121
- },
122
- ], proposalData);
123
- const decodedAction = decodeFunctionData({
124
- abi: DaoSpaceAbi,
125
- data: actions[0]?.data ?? '0x',
126
- });
127
- expect(updateSettings.to).toBe(deployments.spaceRegistry);
128
- expect(proposalAction).toBe(PROPOSAL_CREATED_ACTION);
129
- expect(proposalTopic).toBe(bytes16ToBytes32LeftAligned(proposalId));
130
- expect(votingMode).toBe(0);
131
- expect(actions[0]?.to).toBe(deployments.daoSpace);
132
- expect(decodedAction.functionName).toBe('updateVotingSettings');
133
- const { ops } = Ops.entities.create({ name: 'Local v2 edit entity' });
134
- const editProposal = await geoWithFetch.daoSpaces.proposeEdit({
135
- name: 'Local v2 edit',
136
- ops,
137
- author: authorId,
138
- daoSpaceAddress: deployments.daoSpace,
139
- callerSpaceId: editorSpaceId,
140
- daoSpaceId,
141
- proposalId,
142
- });
143
- const decodedEditProposal = decodeFunctionData({
144
- abi: SpaceRegistryAbi,
145
- data: editProposal.calldata,
146
- });
147
- const [, , editProposalAction, , editProposalData] = decodedEditProposal.args;
148
- const [, editVotingMode, editActions] = decodeAbiParameters([
149
- { type: 'bytes16', name: 'proposalId' },
150
- { type: 'uint8', name: 'votingMode' },
151
- {
152
- type: 'tuple[]',
153
- name: 'actions',
154
- components: [
155
- { type: 'address', name: 'to' },
156
- { type: 'uint256', name: 'value' },
157
- { type: 'bytes', name: 'data' },
158
- ],
159
- },
160
- ], editProposalData);
161
- const decodedEditAction = decodeFunctionData({
162
- abi: DaoSpaceAbi,
163
- data: editActions[0]?.data ?? '0x',
164
- });
165
- const [editContentUri, editMetadata] = decodeAbiParameters([
166
- { type: 'bytes', name: 'editsContentUri' },
167
- { type: 'bytes', name: 'editsMetadata' },
168
- ], decodedEditAction.args?.[2]);
169
- expect(editProposalAction).toBe(PROPOSAL_CREATED_ACTION);
170
- expect(editVotingMode).toBe(1);
171
- expect(editActions[0]?.to).toBe(deployments.daoSpace);
172
- expect(decodedEditAction.functionName).toBe('ping');
173
- expect(decodedEditAction.args?.[0]).toBe(EDITS_PUBLISHED_ACTION);
174
- expect(decodedEditAction.args?.[1]).toBe(EMPTY_TOPIC);
175
- expect(hexToString(editContentUri)).toBe(cid);
176
- expect(editMetadata).toBe('0x');
177
- const vote = geo.daoSpaces.voteProposal({
178
- authorSpaceId: editorSpaceId,
179
- spaceId: daoSpaceId,
180
- proposalId,
181
- versionId: 2,
182
- vote: 'YES',
183
- });
184
- const decodedVote = decodeFunctionData({
185
- abi: SpaceRegistryAbi,
186
- data: vote.calldata,
187
- });
188
- const [, , voteAction, voteTopic, voteData] = decodedVote.args;
189
- const [decodedProposalId, versionId, voteOption] = decodeAbiParameters([
190
- { type: 'bytes16', name: 'proposalId' },
191
- { type: 'uint8', name: 'versionId' },
192
- { type: 'uint8', name: 'voteOption' },
193
- ], voteData);
194
- expect(vote.to).toBe(deployments.spaceRegistry);
195
- expect(voteAction).toBe(PROPOSAL_VOTED_ACTION);
196
- expect(voteTopic).toBe(bytes16ToBytes32LeftAligned(proposalId));
197
- expect(decodedProposalId).toBe(proposalId);
198
- expect(versionId).toBe(2);
199
- expect(voteOption).toBe(VOTE_OPTION_VALUES.YES);
200
- });
201
- });
202
- describeLocalSource('local-geobrowser contracts v2 source compatibility', () => {
203
- it('confirms edit publishing is a DAO ping fast-path action in local contracts', () => {
204
- const daoSpaceSource = readLocalContractSource('contracts/DAOSpace.sol');
205
- const actionsSource = readLocalContractSource('ActionsConstants.sol');
206
- expect(actionsSource).toContain("EDITS_PUBLISHED = keccak256('GOVERNANCE.EDITS_PUBLISHED')");
207
- expect(daoSpaceSource).toContain('$_.actionIsFastPathValid[IDAOSpace.ping.selector] = true;');
208
- expect(daoSpaceSource).not.toContain('actionIsFastPathValid[IDAOSpace.publish.selector]');
209
- expect(daoSpaceSource).toContain("_ping(ActionsConstants.EDITS_PUBLISHED, '', _publishEditsData)");
210
- });
211
- });
212
- describeLocalRpc('local-geobrowser deployed contracts v2 compatibility', () => {
213
- it('checks the deployed DAO fast-path selector allowlist', async () => {
214
- const deployments = readDeployments();
215
- if (!localRpcUrl) {
216
- throw new Error('Set GEO_LOCAL_GEOBROWSER_RPC_URL or deployments.rpcUrl for local-geobrowser RPC checks.');
217
- }
218
- const publicClient = createPublicClient({ transport: http(localRpcUrl) });
219
- const pingSelector = encodeFunctionData({
220
- abi: DaoSpaceAbi,
221
- functionName: 'ping',
222
- args: [EDITS_PUBLISHED_ACTION, EMPTY_TOPIC, '0x'],
223
- }).slice(0, 10);
224
- const publishSelector = '0x6b47f61a';
225
- await expect(publicClient.readContract({
226
- address: deployments.daoSpace,
227
- abi: DaoSpaceAbi,
228
- functionName: 'actionIsFastPathValid',
229
- args: [pingSelector],
230
- })).resolves.toBe(true);
231
- await expect(publicClient.readContract({
232
- address: deployments.daoSpace,
233
- abi: DaoSpaceAbi,
234
- functionName: 'actionIsFastPathValid',
235
- args: [publishSelector],
236
- })).resolves.toBe(false);
237
- });
238
- });
239
- //# sourceMappingURL=local-geobrowser.e2e.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-geobrowser.e2e.test.js","sourceRoot":"","sources":["../../../src/contracts-v2/local-geobrowser.e2e.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { ProposeUpdateVotingSettingsParams, ProposeUpdateVotingSettingsResult } from './types.js';
2
- /**
3
- * Creates a proposal to update DAO voting settings.
4
- *
5
- * @deprecated Use `createGeoClient({ network }).daoSpaces.proposeUpdateVotingSettings(...)`.
6
- */
7
- export declare function proposeUpdateVotingSettings(params: ProposeUpdateVotingSettingsParams): ProposeUpdateVotingSettingsResult;
8
- //# sourceMappingURL=propose-update-voting-settings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"propose-update-voting-settings.d.ts","sourceRoot":"","sources":["../../../src/dao-space/propose-update-voting-settings.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAEvG;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,iCAAiC,GACxC,iCAAiC,CAUnC"}
@@ -1,19 +0,0 @@
1
- import { createGeoClient } from '../client.js';
2
- import { resolveGeoNetwork } from '../networks.js';
3
- import { ensure0xPrefix, isBytes16Hex } from './constants.js';
4
- /**
5
- * Creates a proposal to update DAO voting settings.
6
- *
7
- * @deprecated Use `createGeoClient({ network }).daoSpaces.proposeUpdateVotingSettings(...)`.
8
- */
9
- export function proposeUpdateVotingSettings(params) {
10
- const { network = 'TESTNET', ...args } = params;
11
- if (!isBytes16Hex(ensure0xPrefix(args.authorSpaceId))) {
12
- throw new Error(`authorSpaceId must be bytes16 hex (32 hex chars). Received: ${args.authorSpaceId}`);
13
- }
14
- if (!isBytes16Hex(ensure0xPrefix(args.spaceId))) {
15
- throw new Error(`spaceId must be bytes16 hex (32 hex chars). Received: ${args.spaceId}`);
16
- }
17
- return createGeoClient({ network: resolveGeoNetwork(network) }).daoSpaces.proposeUpdateVotingSettings(args);
18
- }
19
- //# sourceMappingURL=propose-update-voting-settings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"propose-update-voting-settings.js","sourceRoot":"","sources":["../../../src/dao-space/propose-update-voting-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9D;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CACzC,MAAyC;IAEzC,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAChD,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,+DAA+D,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,yDAAyD,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;AAC9G,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=propose-update-voting-settings.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"propose-update-voting-settings.test.d.ts","sourceRoot":"","sources":["../../../src/dao-space/propose-update-voting-settings.test.ts"],"names":[],"mappings":""}
@@ -1,118 +0,0 @@
1
- import { decodeAbiParameters, decodeFunctionData } from 'viem';
2
- import { describe, expect, it } from 'vitest';
3
- import { TESTNET } from '../../contracts.js';
4
- import { DaoSpaceAbi, SpaceRegistryAbi } from '../abis/index.js';
5
- import { PROPOSAL_CREATED_ACTION } from './constants.js';
6
- import { proposeUpdateVotingSettings } from './propose-update-voting-settings.js';
7
- describe('proposeUpdateVotingSettings', () => {
8
- const validAuthorSpaceId = '0x0eed5491b917cf58b33ac81255fe7ae9';
9
- const validSpaceId = '0xabcdef12345678901234567890abcdef';
10
- const validDaoSpaceAddress = '0x1234567890123456789012345678901234567890';
11
- const validVotingSettings = {
12
- partialPercentageSupportThreshold: 60,
13
- universalPercentageSupportThreshold: 90,
14
- flatSupportThreshold: 2,
15
- quorum: 1,
16
- durationInDays: 3,
17
- disableFastPathAccessForNewMembers: true,
18
- executionGracePeriodInDays: 14,
19
- };
20
- it('should return correct structure', () => {
21
- const result = proposeUpdateVotingSettings({
22
- authorSpaceId: validAuthorSpaceId,
23
- spaceId: validSpaceId,
24
- daoSpaceAddress: validDaoSpaceAddress,
25
- votingSettings: validVotingSettings,
26
- });
27
- expect(result).toHaveProperty('to');
28
- expect(result).toHaveProperty('calldata');
29
- expect(result).toHaveProperty('proposalId');
30
- });
31
- it('should return the correct contract address (Space Registry)', () => {
32
- const { to } = proposeUpdateVotingSettings({
33
- authorSpaceId: validAuthorSpaceId,
34
- spaceId: validSpaceId,
35
- daoSpaceAddress: validDaoSpaceAddress,
36
- votingSettings: validVotingSettings,
37
- });
38
- expect(to).toBe(TESTNET.SPACE_REGISTRY_ADDRESS);
39
- });
40
- it('should encode a v2 updateVotingSettings DAO action', () => {
41
- const result = proposeUpdateVotingSettings({
42
- authorSpaceId: validAuthorSpaceId,
43
- spaceId: validSpaceId,
44
- daoSpaceAddress: validDaoSpaceAddress,
45
- votingSettings: validVotingSettings,
46
- });
47
- const decodedEnter = decodeFunctionData({
48
- abi: SpaceRegistryAbi,
49
- data: result.calldata,
50
- });
51
- const [, , action, , data] = decodedEnter.args;
52
- const [, votingMode, actions] = decodeAbiParameters([
53
- { type: 'bytes16', name: 'proposalId' },
54
- { type: 'uint8', name: 'votingMode' },
55
- {
56
- type: 'tuple[]',
57
- name: 'actions',
58
- components: [
59
- { type: 'address', name: 'to' },
60
- { type: 'uint256', name: 'value' },
61
- { type: 'bytes', name: 'data' },
62
- ],
63
- },
64
- ], data);
65
- const updateSettingsAction = actions[0];
66
- expect(updateSettingsAction).toBeDefined();
67
- if (!updateSettingsAction) {
68
- throw new Error('Expected updateVotingSettings action');
69
- }
70
- const decodedAction = decodeFunctionData({
71
- abi: DaoSpaceAbi,
72
- data: updateSettingsAction.data,
73
- });
74
- expect(action).toBe(PROPOSAL_CREATED_ACTION);
75
- expect(votingMode).toBe(0);
76
- expect(updateSettingsAction.to).toBe(validDaoSpaceAddress);
77
- expect(decodedAction.functionName).toBe('updateVotingSettings');
78
- expect(decodedAction.args?.[0]).toEqual({
79
- partialPercentageSupportThreshold: 6000000n,
80
- universalPercentageSupportThreshold: 9000000n,
81
- flatSupportThreshold: 2n,
82
- quorum: 1n,
83
- duration: 259200n,
84
- disableFastPathAccessForNewMembers: true,
85
- executionGracePeriod: 1209600n,
86
- });
87
- });
88
- it('should reject FAST voting mode', () => {
89
- expect(() => proposeUpdateVotingSettings({
90
- authorSpaceId: validAuthorSpaceId,
91
- spaceId: validSpaceId,
92
- daoSpaceAddress: validDaoSpaceAddress,
93
- votingSettings: validVotingSettings,
94
- votingMode: 'FAST',
95
- })).toThrow('proposeUpdateVotingSettings only supports SLOW voting mode');
96
- });
97
- it('should validate voting settings before encoding calldata', () => {
98
- expect(() => proposeUpdateVotingSettings({
99
- authorSpaceId: validAuthorSpaceId,
100
- spaceId: validSpaceId,
101
- daoSpaceAddress: validDaoSpaceAddress,
102
- votingSettings: {
103
- ...validVotingSettings,
104
- universalPercentageSupportThreshold: 101,
105
- },
106
- })).toThrow('universalPercentageSupportThreshold must be between 0 and 100');
107
- expect(() => proposeUpdateVotingSettings({
108
- authorSpaceId: validAuthorSpaceId,
109
- spaceId: validSpaceId,
110
- daoSpaceAddress: validDaoSpaceAddress,
111
- votingSettings: {
112
- ...validVotingSettings,
113
- quorum: -1,
114
- },
115
- })).toThrow('quorum must be a non-negative integer');
116
- });
117
- });
118
- //# sourceMappingURL=propose-update-voting-settings.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"propose-update-voting-settings.test.js","sourceRoot":"","sources":["../../../src/dao-space/propose-update-voting-settings.test.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import type { Chain } from 'viem';
2
- import type { GeoNetworkConfig, Networkish } from './types.js';
3
- type LocalGeobrowserDeployments = {
4
- spaceRegistry: `0x${string}`;
5
- daoSpaceFactory: `0x${string}`;
6
- daoSpace?: `0x${string}`;
7
- owner?: `0x${string}`;
8
- rpcUrl?: string;
9
- };
10
- export type E2ETestEnvironment = {
11
- network: GeoNetworkConfig;
12
- networkish: Networkish;
13
- privateKey: `0x${string}`;
14
- rpcUrl: string;
15
- apiOrigin: string;
16
- chain: Chain;
17
- contracts: {
18
- SPACE_REGISTRY_ADDRESS: `0x${string}`;
19
- DAO_SPACE_FACTORY_ADDRESS: `0x${string}`;
20
- };
21
- localGeobrowserPath?: string;
22
- localGeobrowserDeployments?: LocalGeobrowserDeployments;
23
- };
24
- export declare function createE2ETestEnvironment(): E2ETestEnvironment;
25
- export {};
26
- //# sourceMappingURL=e2e-test-environment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"e2e-test-environment.d.ts","sourceRoot":"","sources":["../../src/e2e-test-environment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/D,KAAK,0BAA0B,GAAG;IAChC,aAAa,EAAE,KAAK,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,KAAK,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE;QACT,sBAAsB,EAAE,KAAK,MAAM,EAAE,CAAC;QACtC,yBAAyB,EAAE,KAAK,MAAM,EAAE,CAAC;KAC1C,CAAC;IACF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;CACzD,CAAC;AAgHF,wBAAgB,wBAAwB,IAAI,kBAAkB,CAuE7D"}
@@ -1,150 +0,0 @@
1
- import { readFileSync } from 'node:fs';
2
- import { defineGeoNetworkConfig, GeoTestnetConfig } from './networks.js';
3
- const DEFAULT_LOCAL_GEOBROWSER_PRIVATE_KEY = '0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a';
4
- const INDEXED_LOCAL_GEOBROWSER_DAO_FACTORIES = {
5
- // First deterministic local-geobrowser deployment. The running hermes-substream
6
- // may still be compiled against this registry after contracts are redeployed.
7
- '0xe7f1725e7734ce288f8367e1bb143e90bb3f0512': '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9',
8
- };
9
- function requireHexPrivateKey(value, source) {
10
- if (!value) {
11
- throw new Error(`${source} is required for e2e tests.`);
12
- }
13
- if (!value.startsWith('0x')) {
14
- throw new Error(`${source} must be a hex string starting with 0x.`);
15
- }
16
- return value;
17
- }
18
- function requireEnv(value, source) {
19
- if (!value) {
20
- throw new Error(`${source} is required for local-geobrowser e2e tests. Set GEO_E2E_NETWORK=TESTNET to run against testnet.`);
21
- }
22
- return value;
23
- }
24
- function requireNetworkRpcUrl(network) {
25
- const rpcUrl = network.chain?.rpcUrl;
26
- if (!rpcUrl) {
27
- throw new Error(`Geo network "${network.name}" is missing an RPC URL`);
28
- }
29
- return rpcUrl;
30
- }
31
- function requireNetworkContract(network, name) {
32
- const address = network.contracts?.[name];
33
- if (!address) {
34
- throw new Error(`Geo network "${network.name}" is missing ${name}`);
35
- }
36
- return address;
37
- }
38
- function createChain(network, rpcUrl) {
39
- const chainConfig = network.chain;
40
- if (!chainConfig) {
41
- throw new Error(`Geo network "${network.name}" is missing chain config`);
42
- }
43
- return {
44
- id: chainConfig.id,
45
- name: chainConfig.name,
46
- nativeCurrency: {
47
- name: 'Ethereum',
48
- symbol: 'ETH',
49
- decimals: 18,
50
- },
51
- rpcUrls: {
52
- default: { http: [rpcUrl] },
53
- public: { http: [rpcUrl] },
54
- },
55
- };
56
- }
57
- function readLocalGeobrowserDeployments() {
58
- if (process.env.GEO_E2E_NETWORK === 'TESTNET') {
59
- return undefined;
60
- }
61
- const localGeobrowserPath = requireEnv(process.env.GEO_LOCAL_GEOBROWSER_PATH, 'GEO_LOCAL_GEOBROWSER_PATH');
62
- const deploymentsPath = process.env.GEO_LOCAL_GEOBROWSER_DEPLOYMENTS ?? `${localGeobrowserPath}/.deployments.json`;
63
- try {
64
- return {
65
- path: localGeobrowserPath,
66
- deployments: JSON.parse(readFileSync(deploymentsPath, 'utf8')),
67
- };
68
- }
69
- catch {
70
- throw new Error(`Could not read local-geobrowser deployments from ${deploymentsPath}. Set GEO_LOCAL_GEOBROWSER_DEPLOYMENTS to override the path.`);
71
- }
72
- }
73
- function readIndexedLocalSpaceRegistry(localGeobrowserPath) {
74
- try {
75
- const source = readFileSync(`${localGeobrowserPath}/gaia/hermes-substream/src/lib.rs`, 'utf8');
76
- const match = /\nconst SPACE_REGISTRY_ADDRESS:[\s\S]*?=\s*\[([\s\S]*?)\];/.exec(source);
77
- const bytes = match?.[1]?.match(/0x[0-9a-fA-F]{2}/g);
78
- if (!bytes || bytes.length !== 20) {
79
- return undefined;
80
- }
81
- return `0x${bytes.map(byte => byte.slice(2)).join('')}`;
82
- }
83
- catch {
84
- return undefined;
85
- }
86
- }
87
- export function createE2ETestEnvironment() {
88
- const local = readLocalGeobrowserDeployments();
89
- if (local) {
90
- const rpcUrl = process.env.GEO_LOCAL_GEOBROWSER_RPC_URL ?? local.deployments.rpcUrl ?? 'http://localhost:8545';
91
- const apiOrigin = process.env.GEO_LOCAL_GEOBROWSER_API_ORIGIN ?? 'http://localhost:3000';
92
- const indexedSpaceRegistry = readIndexedLocalSpaceRegistry(local.path);
93
- const spaceRegistryAddress = process.env.GEO_LOCAL_GEOBROWSER_SPACE_REGISTRY_ADDRESS ??
94
- indexedSpaceRegistry ??
95
- local.deployments.spaceRegistry;
96
- const daoSpaceFactoryAddress = process.env.GEO_LOCAL_GEOBROWSER_DAO_SPACE_FACTORY_ADDRESS ??
97
- (spaceRegistryAddress.toLowerCase() === local.deployments.spaceRegistry.toLowerCase()
98
- ? local.deployments.daoSpaceFactory
99
- : (INDEXED_LOCAL_GEOBROWSER_DAO_FACTORIES[spaceRegistryAddress.toLowerCase()] ??
100
- local.deployments.daoSpaceFactory));
101
- const network = defineGeoNetworkConfig({
102
- id: 'LOCAL_GEOBROWSER',
103
- name: 'Local Geobrowser',
104
- apiOrigin,
105
- chain: {
106
- id: Number(process.env.GEO_LOCAL_GEOBROWSER_CHAIN_ID ?? 1337),
107
- name: 'Anvil',
108
- rpcUrl,
109
- },
110
- contracts: {
111
- SPACE_REGISTRY_ADDRESS: spaceRegistryAddress,
112
- DAO_SPACE_FACTORY_ADDRESS: daoSpaceFactoryAddress,
113
- },
114
- });
115
- return {
116
- network,
117
- networkish: network,
118
- privateKey: requireHexPrivateKey(process.env.GEO_LOCAL_GEOBROWSER_PRIVATE_KEY ??
119
- process.env.GEO_E2E_PRIVATE_KEY ??
120
- DEFAULT_LOCAL_GEOBROWSER_PRIVATE_KEY, 'GEO_LOCAL_GEOBROWSER_PRIVATE_KEY'),
121
- rpcUrl,
122
- apiOrigin,
123
- chain: createChain(network, rpcUrl),
124
- contracts: {
125
- SPACE_REGISTRY_ADDRESS: spaceRegistryAddress,
126
- DAO_SPACE_FACTORY_ADDRESS: daoSpaceFactoryAddress,
127
- },
128
- localGeobrowserPath: local.path,
129
- localGeobrowserDeployments: local.deployments,
130
- };
131
- }
132
- const rpcUrl = process.env.GEO_E2E_RPC_URL ?? requireNetworkRpcUrl(GeoTestnetConfig);
133
- const network = defineGeoNetworkConfig({
134
- ...GeoTestnetConfig,
135
- chain: GeoTestnetConfig.chain ? { ...GeoTestnetConfig.chain, rpcUrl } : undefined,
136
- });
137
- return {
138
- network,
139
- networkish: 'TESTNET',
140
- privateKey: requireHexPrivateKey(process.env.GEO_E2E_PRIVATE_KEY ?? process.env.PRIVATE_KEY, 'PRIVATE_KEY'),
141
- rpcUrl,
142
- apiOrigin: network.apiOrigin,
143
- chain: createChain(network, rpcUrl),
144
- contracts: {
145
- SPACE_REGISTRY_ADDRESS: requireNetworkContract(network, 'SPACE_REGISTRY_ADDRESS'),
146
- DAO_SPACE_FACTORY_ADDRESS: requireNetworkContract(network, 'DAO_SPACE_FACTORY_ADDRESS'),
147
- },
148
- };
149
- }
150
- //# sourceMappingURL=e2e-test-environment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"e2e-test-environment.js","sourceRoot":"","sources":["../../src/e2e-test-environment.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=legacy-api-surface.e2e.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy-api-surface.e2e.test.d.ts","sourceRoot":"","sources":["../../src/legacy-api-surface.e2e.test.ts"],"names":[],"mappings":""}